$members_fields = array(
'id_adh' => array(
- 'label' => _T("Member number:"),
+ 'label' => _T("Member id:"),
'propname' => 'id',
'required' => false,
'visible' => FieldsConfig::NOBODY,
'position' => 25,
'category' => FieldsCategories::ADH_CATEGORY_CONTACT
),
+ 'num_adh' => array(
+ 'label' => _T("Member number:"),
+ 'propname' => 'number',
+ 'required' => false,
+ 'visible' => FieldsConfig::MANAGER,
+ 'position' => 26,
+ 'category' => FieldsCategories::ADH_CATEGORY_IDENTITY
+ ),
'list_adh_name' => array(
'label' => _T("Name"),
'propname' => 'sname',
*
* PHP version 5
*
- * Copyright © 2014-2020 The Galette Team
+ * Copyright © 2014-2021 The Galette Team
*
* This file is part of Galette (http://galette.tuxfamily.org).
*
* @package Galette
*
* @author Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2014-2020 The Galette Team
+ * @copyright 2014-2021 The Galette Team
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
* @link http://galette.tuxfamily.org
* @since 0.8.2dev 2014-11-11
if ($search !== null) {
$filters->filter_str = $search;
if (is_numeric($search)) {
- $filters->field_filter = Members::FILTER_NUMBER;
+ $filters->field_filter = Members::FILTER_ID;
}
}
gpgid text DEFAULT NULL,
fingerprint varchar(255) DEFAULT NULL,
parent_id int(10) unsigned DEFAULT NULL,
+ num_adh varchar(255) DEFAULT NULL,
PRIMARY KEY (id_adh),
UNIQUE (login_adh),
FOREIGN KEY (id_statut) REFERENCES galette_statuts (id_statut) ON DELETE RESTRICT ON UPDATE CASCADE,
gpgid text DEFAULT NULL,
fingerprint character varying(255) DEFAULT NULL,
parent_id integer DEFAULT NULL REFERENCES galette_adherents(id_adh) ON DELETE RESTRICT ON UPDATE CASCADE,
+ num_adh character varying(255) DEFAULT NULL,
PRIMARY KEY (id_adh)
);
-- add index for faster search on login_adh (auth)
-- cleanup fields config
DELETE FROM galette_fields_config WHERE field_id IN ('url_adh', 'icq_adh', 'msn_adh', 'jabber_adh');
+-- add num_adh column
+ALTER TABLE galette_adherents ADD COLUMN num_adh varchar(255) DEFAULT NULL;
+
UPDATE galette_database SET version = 0.960;
\ No newline at end of file
-- cleanup fields config table
DELETE FROM galette_fields_config WHERE field_id IN ('url_adh', 'icq_adh', 'msn_adh', 'jabber_adh');
+-- add num_adh column
+ALTER TABLE galette_adherents ADD COLUMN num_adh character varying (255) DEFAULT NULL;
+
UPDATE galette_database SET version = 0.960;
\ No newline at end of file
* @property string $days_remaining
* @property-read integer $parent_id
* @property Social $social Social networks/Contact
+ * @property string $number Member number
*
*/
class Adherent
private $_children;
private $_duplicate = false;
private $_socials;
+ private $_number;
private $_row_classes;
$this->_due_date = $r->date_echeance;
$this->_others_infos = $r->info_public_adh;
$this->_others_infos_admin = $r->info_adh;
+ $this->_number = $r->num_adh;
if ($r->parent_id !== null) {
$this->_parent = (int)$r->parent_id;
$values['parent_id'] = new Expression('NULL');
}
+ if (!$this->_number) {
+ $values['num_adh'] = new Expression('NULL');
+ }
+
//fields that cannot be null
$notnull = [
'_surname' => 'prenom_adh',
'title' => _T("Member's ID"),
'pattern' => '/{ID_ADH}/',
],
+ 'adh_num' => [
+ 'title' => _T("Member number"),
+ 'pattern' => '/{NUM_ADH}/',
+ ],
'adh_name' => [
'title' => _T("Name"),
'pattern' => '/{NAME_ADH}/',
array(
'adh_title' => $member->stitle,
'adh_id' => $member->id,
+ 'adh_num' => $member->number,
'adh_name' => $member->sfullname,
'adh_last_name' => $member->name,
'adh_first_name' => $member->surname,
*
* PHP version 5
*
- * Copyright © 2009-2014 The Galette Team
+ * Copyright © 2009-2021 The Galette Team
*
* This file is part of Galette (http://galette.tuxfamily.org).
*
* @package Galette
*
* @author Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2009-2014 The Galette Team
+ * @copyright 2009-2021 The Galette Team
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
* @link http://galette.tuxfamily.org
* @since march, 3rd 2009
* @package Galette
*
* @author Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2009-2014 The Galette Team
+ * @copyright 2009-2021 The Galette Team
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
* @link http://galette.tuxfamily.org
*
}
} else {
Analog::log(
- '[MembersList] Unable to get proprety `' . $name . '`',
+ '[MembersList] Unable to get property `' . $name . '`',
Analog::WARNING
);
}
{
$filter_options = array(
Members::FILTER_NAME => _T("Name"),
+ Members::FILTER_NUMBER => _T("Member number"),
Members::FILTER_COMPANY_NAME => _T("Company name"),
Members::FILTER_ADDRESS => _T("Address"),
Members::FILTER_MAIL => _T("Email,URL,IM"),
);
if ($prefs->pref_show_id) {
- $filter_options[Members::FILTER_NUMBER] = _T("Member number");
+ $filter_options[Members::FILTER_ID] = _T("Member ID");
}
$view->assign(
case 7:
$email .= $member->job;
break;
+ case 8:
+ $email .= $member->number;
+ break;
}
// Select strip color according to status
public const FILTER_DC_PUBINFOS = 9;
public const FILTER_W_PUBINFOS = 10;
public const FILTER_WO_PUBINFOS = 11;
- public const FILTER_NUMBER = 12;
+ public const FILTER_ID = 12;
+ public const FILTER_NUMBER = 13;
public const MEMBERSHIP_ALL = 0;
public const MEMBERSHIP_UP2DATE = 3;
);
break;
case self::FILTER_NUMBER:
+ $select->where->equalTo('a.num_adh', $this->filters->filter_str);
+ break;
+ case self::FILTER_ID:
$select->where->equalTo('a.id_adh', $this->filters->filter_str);
break;
}
{if $preferences->pref_show_id}
<th class="id_row">
<a href="{path_for name="members" data=["option" => "order", "value" => "Galette\Repository\Members::ORDERBY_ID"|constant]}">
- {_T string="Mbr num"}
+ {_T string="Mbr id"}
{if $filters->orderby eq constant('galette\Repository\Members::ORDERBY_ID')}
{if $filters->ordered eq constant('Galette\Filters\MembersList::ORDER_ASC')}
<img src="{base_url}/{$template_subdir}images/down.png" width="10" height="6" alt=""/>
<option value="5" {if $pref.pref_card_address eq 5}selected="selected"{/if}>{_T string="Zip - Town"}</option>
<option value="6" {if $pref.pref_card_address eq 6}selected="selected"{/if}>{_T string="Nickname"}</option>
<option value="7" {if $pref.pref_card_address eq 7}selected="selected"{/if}>{_T string="Profession"}</option>
+ <option value="8" {if $pref.pref_card_address eq 8}selected="selected"{/if}>{_T string="Member nubmer"}</option>
</select>
<span class="exemple">{_T string="(Choose address printed below name)"}</span>
</p>
$this->array($categorized)
->hasSize(3);
$this->array($categorized[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY])
- ->hasSize(12);
+ ->hasSize(13);
$this->array($categorized[\Galette\Entity\FieldsCategories::ADH_CATEGORY_GALETTE])
->hasSize(11);
$this->array($categorized[\Galette\Entity\FieldsCategories::ADH_CATEGORY_CONTACT])
$this->boolean($town['required'])->isFalse();
$this->integer($town['visible'])->isIdenticalTo(\Galette\Entity\FieldsConfig::NOBODY);
- $gsm2 = $fields[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY][12];
+ $gsm2 = $fields[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY][13];
$this->array($gsm2)->isIdenticalTo($gsm);
}
$categorized = $fields_config->getCategorizedFields();
$this->integer(
count($categorized[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY])
- )->isIdenticalTo(12);
+ )->isIdenticalTo(13);
//new object instanciation should add missing field back
$fields_config = new \Galette\Entity\FieldsConfig(
$this->object($elements[0])->isInstanceOf('\stdClass');
$this->integer($elements[0]->id)->isIdenticalTo(1);
- $this->array($elements[0]->elements)->hasSize(7);
+ $this->array($elements[0]->elements)->hasSize(8);
$this->object($elements[1])->isInstanceOf('\stdClass');
$this->integer($elements[1]->id)->isIdenticalTo(3);
$this->object($elements['fieldsets'][0])->isInstanceOf('\stdClass');
$this->integer($elements['fieldsets'][0]->id)->isIdenticalTo(1);
- $this->array($elements['fieldsets'][0]->elements)->hasSize(10);
+ $this->array($elements['fieldsets'][0]->elements)->hasSize(11);
$this->object($elements['fieldsets'][1])->isInstanceOf('\stdClass');
$this->integer($elements['fieldsets'][1]->id)->isIdenticalTo(3);
$this->boolean($town['required'])->isFalse();
$this->integer($town['visible'])->isIdenticalTo(\Galette\Entity\FieldsConfig::NOBODY);
- $gsm2 = $fields[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY][10]; //12 in FieldsConfig but 10 here
+ $gsm2 = $fields[\Galette\Entity\FieldsCategories::ADH_CATEGORY_IDENTITY][11]; //13 in FieldsConfig but 11 here
$this->array($gsm2)->isIdenticalTo($gsm);
// /copied from FieldsConfig::testSetFields to ensure it works as expected from here.
}
$expected = $main_expected + [
'adh_title' => '/{TITLE_ADH}/',
'adh_id' => '/{ID_ADH}/',
+ 'adh_num' => '/{NUM_ADH}/',
'adh_name' => '/{NAME_ADH}/',
'adh_last_name' => '/{LAST_NAME_ADH}/',
'adh_first_name' => '/{FIRST_NAME_ADH}/',
$this->array($legend['main']['patterns'])->hasSize(8);
$this->array($legend['member']['patterns'])
- ->hasSize(26)
+ ->hasSize(27)
->hasKeys(['label_dynfield_' . $adf->getId() . '_adh', 'dynfield_' . $adf->getId() . '_adh']);
$this->array($legend['contribution']['patterns'])
->hasSize(14)
*
* PHP version 5
*
- * Copyright © 2017 The Galette Team
+ * Copyright © 2017-2021 The Galette Team
*
* This file is part of Galette (http://galette.tuxfamily.org).
*
* @package GaletteTests
*
* @author Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2017 The Galette Team
+ * @copyright 2017-2021 The Galette Team
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
* @version SVN: $Id$
* @link http://galette.tuxfamily.org
* @name Members
* @package GaletteTests
* @author Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2017 The Galette Team
+ * @copyright 2017-2021 The Galette Team
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
* @link http://galette.tuxfamily.org
* @since 2017-04-15
//search on member number
$filters = new \Galette\Filters\MembersList();
$filters->filter_str = $this->mids[2];
- $filters->field_filter = \Galette\Repository\Members::FILTER_NUMBER;
+ $filters->field_filter = \Galette\Repository\Members::FILTER_ID;
$members = new \Galette\Repository\Members($filters);
$list = $members->getList();