]> git.agnieray.net Git - galette.git/commitdiff
User can now set pref_statut in preferences
authorJérémy Hieulle <jeremy.hieulle@orange.fr>
Tue, 7 Nov 2017 11:40:08 +0000 (12:40 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Sat, 23 Dec 2017 08:04:04 +0000 (09:04 +0100)
Allow users to set a default status used when adding new members.
Closes #963

galette/includes/dependencies.php
galette/includes/routes/management.routes.php
galette/lib/Galette/Core/Preferences.php
galette/lib/Galette/Entity/Adherent.php
galette/templates/default/preferences.tpl

index 7e8e27cb86720319ef1ed572d9800451e7af8f87..71210903cefab8a4a9730f2557ebdebae12ca457 100644 (file)
@@ -118,6 +118,7 @@ $container['view'] = function ($c) {
     $smarty->assign('preferences', $c->preferences);
     $smarty->assign('pref_slogan', $c->preferences->pref_slogan);
     $smarty->assign('pref_theme', $c->preferences->pref_theme);
+    $smarty->assign('pref_statut', $c->preferences->pref_statut);
     $smarty->assign(
         'pref_editor_enabled',
         $c->preferences->pref_editor_enabled
index b3b81d8133ed3960f4649d44034653172c81d1e4..b676d65ad9e5a32af5d554c4146c11c23736ef66 100644 (file)
@@ -61,6 +61,7 @@ use Galette\Entity\Texts;
 use Galette\Core\Install;
 use Zend\Db\Adapter\Adapter;
 use Galette\Core\PluginInstall;
+use Galette\Entity\Status;
 
 //galette's dashboard
 $app->get(
@@ -114,6 +115,7 @@ $app->get(
             'pref_lang'             => 1,
             'pref_numrows'          => 1,
             'pref_log'              => 1,
+            'pref_statut'           => 1,
             'pref_etiq_marges_v'    => 1,
             'pref_etiq_marges_h'    => 1,
             'pref_etiq_hspace'      => 1,
@@ -162,6 +164,7 @@ $app->get(
         $d->close();
 
         $m = new Members();
+        $s = new Status($this->zdb);
 
         // display page
         $this->view->render(
@@ -182,6 +185,7 @@ $app->get(
                 'required'              => $required,
                 'languages'             => $this->i18n->getList(),
                 'themes'                => $themes,
+                'statuts'               => $s->getList(),
                 'require_tabs'          => true,
                 'color_picker'          => true,
                 'require_dialog'        => true
index f0e2c3622a3e11a6128516d6991a26f24160acf2..3df3fe274cf999dfd08e8d468af076e3a8172367 100644 (file)
@@ -39,6 +39,7 @@ namespace Galette\Core;
 
 use Analog\Analog;
 use Galette\Entity\Adherent;
+use Galette\Entity\Status;
 use Galette\Core\Db;
 use Galette\IO\PdfMembersCards;
 
@@ -95,6 +96,7 @@ class Preferences
         'pref_lang'        =>    I18n::DEFAULT_LANG,
         'pref_numrows'        =>    30,
         'pref_log'        =>    2,
+        'pref_statut'        =>    Status::DEFAULT_STATUS,
         /* Preferences for mails */
         'pref_email_nom'    =>    'Galette',
         'pref_email'        =>    'mail@domain.com',
index 021af79cebfd28ba935c40dbd4a144f0493c74a7..91e5cca4921df5e0e16e6c40691a9bb30bef8729 100644 (file)
@@ -181,7 +181,7 @@ class Adherent
                 $this->_active = true;
                 $this->_language = $i18n->getID();
                 $this->_creation_date = date("Y-m-d");
-                $this->_status = Status::DEFAULT_STATUS;
+                $this->_status = $this->getDefaultStatus();
                 $this->_title = null;
                 $this->_gender = self::NC;
                 $gp = new Password($this->zdb);
@@ -432,6 +432,26 @@ class Adherent
         $this->_managed_groups = Groups::loadManagedGroups($this->_id);
     }
 
+    /**
+     * Retrieve status from preferences
+     *
+     * @return pref_statut
+     *
+     */
+    private function getDefaultStatus()
+    {
+        global $preferences;
+        if ($preferences->pref_statut != '') {
+            return $preferences->pref_statut;
+        } else {
+            Analog::log(
+                'Unable to get pref_statut; is it defined in preferences?',
+                Analog::ERROR
+            );
+            return Status::DEFAULT_STATUS;
+        }
+    }
+
     /**
      * Check for dues status
      *
index 9fc87992329fdd85973f9fffcc816c136ada771d..2ce3566af8f76f01da8e612dfdbf53ed79ecf7ea 100644 (file)
                         <option value="2" {if $pref.pref_log eq 2}selected="selected"{/if}>{_T string="Detailed"}</option>
                     </select>
                 </p>
+                <p>
+                    <label for="pref_statut" class="bline">{_T string="Default membership status:"}</label>
+                    <select name="pref_statut" id="pref_statut">
+                        {html_options options=$statuts selected=$pref.pref_statut}
+                    </select>
+                </p>
                 <p>
                     <label for="pref_membership_ext" class="bline">{_T string="Default membership extension:"}</label>
                     <input type="text" name="pref_membership_ext" id="pref_membership_ext" value="{$pref.pref_membership_ext}" maxlength="2"{if isset($required.pref_membership_ext) and $required.pref_membership_ext eq 1} required="required"{/if}/>