[dev] [commit] r911 - phplib/models templates/admin templates/common

automailer at dexonline.ro automailer at dexonline.ro
Wed Jul 17 12:12:37 EEST 2013


Author: cata
Date: Wed Jul 17 12:12:37 2013
New Revision: 911

Log:
Fix some broken admin report counters.
Migrate some smarty code to v3.
TODO: test that it works well in v2 too.

Modified:
   phplib/models/Definition.php
   templates/admin/definitionList.ihtml
   templates/common/errorMessage.ihtml

Modified: phplib/models/Definition.php
==============================================================================
--- phplib/models/Definition.php	Tue Jul 16 11:33:31 2013	(r910)
+++ phplib/models/Definition.php	Wed Jul 17 12:12:37 2013	(r911)
@@ -40,10 +40,11 @@
       ->find_many();
   }
 
-  // Counts the unassociated definitions in the active or temporary statuses.
   public static function countUnassociated() {
-    $all = Model::factory('Definition')->count();
-    return $all - self::countAssociated() - self::countByStatus(ST_DELETED);
+    // Deleted definitions are always unassociated, so we don't report those
+    $query = sprintf("select * from Definition where status != %s and id not in (select distinct definitionId from LexemDefinitionMap)",
+                     ST_DELETED);
+    return count(ORM::for_table('Definition')->raw_query($query, null)->find_many());
   }
 
   public static function countByStatus($status) {
@@ -209,11 +210,11 @@
         ->raw_query("select * from Definition where lexicon $collate $regexp and status = " . ST_DELETED . " and createDate between $beginTime and $endTime " .
                     "$sourceClause $userClause order by lexicon, sourceId limit 500", null)->find_many();
     } else {
-      return Model::factory('Definition')
-        ->raw_query("select distinct Definition.* from Lexem join LexemDefinitionMap on Lexem.id = LexemDefinitionMap.lexemId " .
-                    "join Definition on LexemDefinitionMap.definitionId = Definition.id where formNoAccent $regexp " .
-                    "and Definition.status = $status and Definition.createDate >= $beginTime and Definition.createDate <= $endTime " .
-                    "$sourceClause $userClause order by lexicon, sourceId limit 500", null)->find_many();
+      $query = "select distinct Definition.* from Lexem join LexemDefinitionMap on Lexem.id = LexemDefinitionMap.lexemId " .
+        "join Definition on LexemDefinitionMap.definitionId = Definition.id where formNoAccent $regexp " .
+        "and Definition.status = $status and Definition.createDate >= $beginTime and Definition.createDate <= $endTime " .
+        "$sourceClause $userClause order by lexicon, sourceId limit 500";
+      return Model::factory('Definition')->raw_query($query, null)->find_many();
     }
   }
 

Modified: templates/admin/definitionList.ihtml
==============================================================================
--- templates/admin/definitionList.ihtml	Tue Jul 16 11:33:31 2013	(r910)
+++ templates/admin/definitionList.ihtml	Wed Jul 17 12:12:37 2013	(r911)
@@ -6,8 +6,8 @@
       Sursa: {$row->source->shortName|escape} |
       Trimisă de {$row->user->nick|escape},
       {$row->definition->createDate|date_format:"%e %b %Y"} |
-      {assign var=status value=`$row->definition->status`}
-      {assign var=statusName value=`$allStatuses[$status]`}
+      {assign var=status value=$row->definition->status}
+      {assign var=statusName value=$allStatuses[$status]}
       Starea: {$statusName} |
 
       <a href="definitionEdit.php?definitionId={$row->definition->id}">Editează</a>

Modified: templates/common/errorMessage.ihtml
==============================================================================
--- templates/common/errorMessage.ihtml	Tue Jul 16 11:33:31 2013	(r910)
+++ templates/common/errorMessage.ihtml	Wed Jul 17 12:12:37 2013	(r911)
@@ -1,4 +1,4 @@
-{if $errorMessage}
+{if isset($errorMessage)}
   <table class="errorMessage">
     {if is_array($errorMessage)}
       {foreach from=$errorMessage item=em}


More information about the Dev mailing list