Drop custom_css field in newsletters table
authorNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Mon, 3 Feb 2014 20:41:24 +0000 (21:41 +0100)
committerNicolas Iooss <nicolas.iooss_git@polytechnique.org>
Mon, 3 Feb 2014 20:43:41 +0000 (21:43 +0100)
As adding a CSS file and a template requires code modification, it's better to
compute the custom_css field in the code. Newsletter::hasCustomCss() does this.

Signed-off-by: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
include/newsletter.inc.php
modules/newsletter.php
templates/newsletter/admin_all.tpl
upgrade/1.1.12/02_drop_newsletter_custom_css.sql [new file with mode: 0644]

index 48085eb..7dd5bb3 100644 (file)
@@ -37,8 +37,6 @@ class NewsLetter
     public $cats;  // List of all categories for this NL
     public $criteria;  // PlFlagSet of allowed filters for recipient selection
 
-    protected $custom_css = false;
-
     // Base name to use instead of the group short name for NLs without a custom CSS
     const FORMAT_DEFAULT_GROUP = 'default';
 
@@ -60,7 +58,7 @@ class NewsLetter
     {
         // Load NL data
         $res = XDB::query('SELECT  nls.group_id, g.diminutif AS group_name,
-                                   nls.name AS nl_name, nls.custom_css, nls.criteria
+                                   nls.name AS nl_name, nls.criteria
                              FROM  newsletters AS nls
                         LEFT JOIN  groups AS g ON (nls.group_id = g.id)
                             WHERE  nls.id = {?}',
@@ -74,7 +72,6 @@ class NewsLetter
         $this->group_id = $data['group_id'];
         $this->group = $data['group_name'];
         $this->name = $data['nl_name'];
-        $this->custom_css = $data['custom_css'];
         $this->criteria = new PlFlagSet($data['criteria']);
 
         // Load the categories
@@ -109,7 +106,7 @@ class NewsLetter
      */
     public static function getAll($sort = 'id', $order = 'ASC')
     {
-        $res = XDB::fetchAllAssoc('SELECT  n.id, g.nom AS group_name, n.name, n.custom_css, n.criteria, g.diminutif AS group_link
+        $res = XDB::fetchAllAssoc('SELECT  n.id, g.nom AS group_name, n.name, n.criteria, g.diminutif AS group_link
                                      FROM  newsletters AS n
                                INNER JOIN  groups      AS g ON (n.group_id = g.id)
                                  ORDER BY  ' . $sort . ' ' . $order);
@@ -517,7 +514,7 @@ class NewsLetter
      */
     public function cssFile()
     {
-        if ($this->custom_css) {
+        if ($this->hasCustomCss()) {
             $base = $this->group;
         } else {
             $base = self::FORMAT_DEFAULT_GROUP;
@@ -529,7 +526,7 @@ class NewsLetter
      */
     public function tplFile()
     {
-        if ($this->custom_css) {
+        if ($this->hasCustomCss()) {
             $base = $this->group;
         } else {
             $base = self::FORMAT_DEFAULT_GROUP;
@@ -650,7 +647,16 @@ class NewsLetter
 
     public function hasCustomCss()
     {
-        return $this->custom_css;
+        switch ($this->group) {
+          case self::GROUP_XORG:
+          case self::GROUP_COMMUNITY:
+          case self::GROUP_AX:
+          case self::GROUP_EP:
+          case self::GROUP_FX:
+            return true;
+          default:
+            return false;
+        }
     }
 
     public function canSyncWithGroup()
index f3c666e..230265e 100644 (file)
@@ -225,7 +225,6 @@ class NewsletterModule extends PLModule
             'id'         => 'Id',
             'group_name' => 'Groupe',
             'name'       => 'Titre',
-            'custom_css' => 'CSS spécifique',
             'criteria'   => 'Critères actifs'
         );
         static $next_orders = array(
index 994bdf8..d073798 100644 (file)
@@ -44,7 +44,6 @@
     <td class="titre">{$nl.id}</td>
     <td>{$nl.group_name}</td>
     <td><a href="http://www.polytechnique.net/{$nl.group_link}/admin/nl">{$nl.name}</a></td>
-    <td>{if $nl.custom_css}Oui{else}Non{/if}</td>
     <td>{$nl.criteria}</td>
   </tr>
   {/foreach}
diff --git a/upgrade/1.1.12/02_drop_newsletter_custom_css.sql b/upgrade/1.1.12/02_drop_newsletter_custom_css.sql
new file mode 100644 (file)
index 0000000..302a2b8
--- /dev/null
@@ -0,0 +1,3 @@
+ALTER TABLE newsletters DROP COLUMN custom_css;
+
+-- vim:set syntax=mysql: