]> git.agnieray.net Git - galette.git/commitdiff
Refactor Titles
authorJohan Cwiklinski <johan@x-tnd.be>
Tue, 21 Mar 2023 14:43:30 +0000 (15:43 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Wed, 22 Mar 2023 07:05:43 +0000 (08:05 +0100)
galette/lib/Galette/Controllers/Crud/MembersController.php
galette/lib/Galette/Controllers/Crud/TitlesController.php
galette/lib/Galette/Core/Install.php
galette/lib/Galette/IO/CsvIn.php
galette/lib/Galette/IO/MembersCsv.php
galette/lib/Galette/Repository/Titles.php
tests/Galette/Entity/tests/units/Title.php

index cf8f85f6512b4ff789369177745ec5c0f9c34b4f..ba6511edefd2a6ba391405f57372762c10a67b25 100644 (file)
@@ -160,6 +160,9 @@ class MembersController extends CrudController
 
         $gaptcha = new Gaptcha($this->i18n);
         $this->session->gaptcha = $gaptcha;
+
+        $titles = new Titles($this->zdb);
+
         // display page
         $this->view->render(
             $response,
@@ -173,7 +176,7 @@ class MembersController extends CrudController
                 'osocials'          => new Social($this->zdb),
                 // pseudo random int
                 'time'              => time(),
-                'titles_list'       => Titles::getList($this->zdb),
+                'titles_list'       => $titles->getList(),
                 'fieldsets'         => $form_elements['fieldsets'],
                 'hidden_elements'   => $form_elements['hiddens'],
                 //self_adh specific
@@ -1145,6 +1148,8 @@ class MembersController extends CrudController
 
         //Status
         $statuts = new Status($this->zdb);
+        //Titles
+        $titles = new Titles($this->zdb);
 
         //Groups
         $groups = new Groups($this->zdb, $this->login);
@@ -1192,7 +1197,7 @@ class MembersController extends CrudController
                 'self_adh'          => false,
                 // pseudo random int
                 'time'              => time(),
-                'titles_list'       => Titles::getList($this->zdb),
+                'titles_list'       => $titles->getList(),
                 'statuts'           => $statuts->getList(),
                 'groups'            => $groups_list,
                 'fieldsets'         => $form_elements['fieldsets'],
@@ -1245,6 +1250,8 @@ class MembersController extends CrudController
 
         //Status
         $statuts = new Status($this->zdb);
+        //Titles
+        $titles = new Titles($this->zdb);
 
         // display page
         $this->view->render(
@@ -1262,7 +1269,7 @@ class MembersController extends CrudController
                 'data'          => $data,
                 'member'        => $member,
                 'fieldsets'     => $form_elements['fieldsets'],
-                'titles_list'   => Titles::getList($this->zdb),
+                'titles_list'   => $titles->getList(),
                 'statuts'       => $statuts->getList(),
                 'require_mass'  => true
             )
@@ -1340,6 +1347,8 @@ class MembersController extends CrudController
 
         //Status
         $statuts = new Status($this->zdb);
+        //Titles
+        $titles = new Titles($this->zdb);
 
         // display page
         $this->view->render(
@@ -1355,7 +1364,7 @@ class MembersController extends CrudController
                 'form_url'      => $this->routeparser->urlFor('massstoremembers'),
                 'cancel_uri'    => $this->routeparser->urlFor('members'),
                 'data'          => $data,
-                'titles_list'   => Titles::getList($this->zdb),
+                'titles_list'   => $titles->getList(),
                 'statuts'       => $statuts->getList(),
                 'changes'       => $changes
             )
index 9aeee14c7febce8d5501390660b15504ad8b6981..4fc2256544ade541ce94b72eec965a31d7c1ee02 100644 (file)
@@ -102,7 +102,7 @@ class TitlesController extends CrudController
      */
     public function list(Request $request, Response $response, $option = null, $value = null): Response
     {
-        $titles = Titles::getList($this->zdb);
+        $titles = new Titles($this->zdb);
 
         // display page
         $this->view->render(
@@ -110,7 +110,7 @@ class TitlesController extends CrudController
             'pages/configuration_titles.html.twig',
             [
                 'page_title'        => _T("Titles management"),
-                'titles_list'       => $titles
+                'titles_list'       => $titles->getList()
             ]
         );
         return $response;
index 82e874fe30548aa0f602f96b9dbb0f499969d361..9fab1b9d06c84e043278653255a2b76497eb9ef2 100644 (file)
@@ -1142,7 +1142,7 @@ define('PREFIX_DB', '" . $this->_db_prefix . "');
             $login = new \Galette\Core\Login($zdb, $i18n);
             //$fc = new \Galette\Entity\FieldsCategories();
             $texts = new \Galette\Entity\Texts($preferences);
-            $titles = new \Galette\Repository\Titles();
+            $titles = new \Galette\Repository\Titles($zdb);
 
             $models = new \Galette\Repository\PdfModels($zdb, $preferences, $login);
 
@@ -1173,7 +1173,7 @@ define('PREFIX_DB', '" . $this->_db_prefix . "');
             $this->proceedReport(_T("Mails texts"), $res);
 
             //Install titles
-            $res = $titles->installInit($zdb);
+            $res = $titles->installInit();
             $this->proceedReport(_T("Titles"), $res);
 
             //Install PDF models
index 97a12aabd6d0c9c1fa0c33d39aabd75c6ef3f2fd..dec852ea1bdb0fa7a86fc3ab7eceb70800de34a5 100644 (file)
@@ -45,9 +45,7 @@ use Galette\Entity\Adherent;
 use Galette\Entity\ImportModel;
 use Galette\Entity\FieldsConfig;
 use Galette\Entity\Status;
-use Galette\Entity\Title;
 use Galette\Repository\Titles;
-use Galette\IO\FileTrait;
 use Galette\Repository\Members;
 
 /**
@@ -333,7 +331,8 @@ class CsvIn extends Csv implements FileInterface
                     if ($this->_fields[$col] == 'titre_adh' && !empty($column)) {
                         if ($this->titles === null) {
                             //load existing titles
-                            $this->titles = Titles::getList($this->zdb);
+                            $titles = new Titles($this->zdb);
+                            $this->titles = $titles->getList();
                         }
                         if (!isset($this->titles[$column])) {
                             $this->addError(
index 9e5868156c2c3eb45d593ebf5a7db4ca1b387bf7..8166205c681a20a2d3ef140998a23b53168842e0 100644 (file)
@@ -159,8 +159,8 @@ class MembersCsv extends CsvOut
         $s = new Status($this->zdb);
         $statuses = $s->getList();
 
-        $t = new Titles();
-        $titles = $t->getList($this->zdb);
+        $t = new Titles($this->zdb);
+        $titles = $t->getList();
 
         foreach ($members_list as &$member) {
             if (isset($member->id_statut)) {
index 7d749c4cfa90c1409fe785341a30c5bc615de216..2289d9da527cf0408ff9b4d2ee51791242dedbb9 100644 (file)
@@ -76,36 +76,29 @@ class Titles
         )
     );
 
+    private Db $zdb;
+
     /**
-     * Get the list of all titles as an array
+     * Default constructor
      *
      * @param Db $zdb Database instance
-     *
-     * @return array
      */
-    public static function getArrayList(Db $zdb)
+    public function __construct(Db $zdb)
     {
-        $otitles = self::getList($zdb);
-        $titles = array();
-        foreach ($otitles as $t) {
-            $titles[$t->id] = $t->short;
-        }
-        return $titles;
+        $this->zdb = $zdb;
     }
 
     /**
      * Get the list of all titles
      *
-     * @param Db $zdb Database instance
-     *
      * @return Title[]
      */
-    public static function getList(Db $zdb)
+    public function getList()
     {
-        $select = $zdb->select(self::TABLE);
+        $select = $this->zdb->select(self::TABLE);
         $select->order(self::PK);
 
-        $results = $zdb->execute($select);
+        $results = $this->zdb->execute($select);
 
         $pols = array();
         foreach ($results as $r) {
@@ -119,19 +112,17 @@ class Titles
     /**
      * Set default titles at install time
      *
-     * @param Db $zdb Database instance
-     *
      * @return boolean
      * @throws Throwable
      */
-    public function installInit(Db $zdb)
+    public function installInit()
     {
         try {
             //first, we drop all values
-            $delete = $zdb->delete(self::TABLE);
-            $zdb->execute($delete);
+            $delete = $this->zdb->delete(self::TABLE);
+            $this->zdb->execute($delete);
 
-            $insert = $zdb->insert(self::TABLE);
+            $insert = $this->zdb->insert(self::TABLE);
             $insert->values(
                 array(
                     'id_title'      => ':id',
@@ -139,9 +130,9 @@ class Titles
                     'long_label'    => ':long'
                 )
             );
-            $stmt = $zdb->sql->prepareStatementForSqlObject($insert);
+            $stmt = $this->zdb->sql->prepareStatementForSqlObject($insert);
 
-            $zdb->handleSequence(
+            $this->zdb->handleSequence(
                 self::TABLE,
                 count(self::$defaults)
             );
index 202ebe10f096d8c675beef80227f4ef8f20a4c43..e72ef6f804483f12f6861f6e74457584137566c7 100644 (file)
@@ -115,8 +115,8 @@ class Title extends atoum
         $zdb = $this->zdb;
 
         $titles = new \Galette\Repository\Titles($this->zdb);
-        if (count($titles->getList($this->zdb)) === 0) {
-            $res = $titles->installInit($this->zdb);
+        if (count($titles->getList()) === 0) {
+            $res = $titles->installInit();
             $this->boolean($res)->isTrue();
         }