Author: david
Date: Wed Oct 21 13:58:32 2009
New Revision: 3788

Log:
Filter non-preferred terms from term treeview. Fixes issue #1077.

Modified:
   trunk/apps/qubit/modules/term/actions/contextMenuComponent.class.php

Modified: trunk/apps/qubit/modules/term/actions/contextMenuComponent.class.php
==============================================================================
--- trunk/apps/qubit/modules/term/actions/contextMenuComponent.class.php        
Wed Oct 21 11:47:04 2009        (r3787)
+++ trunk/apps/qubit/modules/term/actions/contextMenuComponent.class.php        
Wed Oct 21 13:58:32 2009        (r3788)
@@ -79,17 +79,23 @@
   {
     $this->termTree[] = $node;
 
-    if (0 < count($children = $node->getChildren(array('sortBy' => 'name'))))
+    $criteria = new Criteria;
+    $criteria->add(QubitTerm::PARENT_ID, $node->id);
+    $criteria->add(QubitTerm::TAXONOMY_ID, $this->term->taxonomyId);
+    $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 
'QubitTerm');
+    $criteria->addAscendingOrderByColumn('name');
+
+    // Exclude non-preferred terms
+    $criteria->addJoin(QubitTerm::ID, QubitRelation::OBJECT_ID, 
Criteria::LEFT_JOIN);
+    $criterion1 = $criteria->getNewCriterion(QubitRelation::TYPE_ID, 
QubitTerm::TERM_RELATION_EQUIVALENCE_ID, Criteria::NOT_EQUAL);
+    $criterion2 = $criteria->getNewCriterion(QubitRelation::TYPE_ID, null, 
Criteria::ISNULL);
+    $criterion1->addOr($criterion2);
+    $criteria->add($criterion1);
+
+    if (0 < count($children = QubitTerm::get($criteria)))
     {
       foreach ($children as $child)
       {
-        // Omit children from different taxonomies
-        // TODO: Is there a better way to get children filtering by taxonomy?
-        if ($this->term->taxonomy->id != $child->taxonomy->id)
-        {
-          continue;
-        }
-
         // Recurse
         if (in_array($child->id, $lineage))
         {

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to