Author: david
Date: Mon Oct 10 19:19:01 2011
New Revision: 10008

Log:
Fix code for getting creation dates

Modified:
   trunk/apps/qubit/modules/informationobject/actions/fileListAction.class.php
   trunk/lib/model/QubitInformationObject.php

Modified: 
trunk/apps/qubit/modules/informationobject/actions/fileListAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/fileListAction.class.php 
Mon Oct 10 17:26:06 2011        (r10007)
+++ trunk/apps/qubit/modules/informationobject/actions/fileListAction.class.php 
Mon Oct 10 19:19:01 2011        (r10008)
@@ -72,14 +72,14 @@
         {
           $parentIsad = new sfIsadPlugin($item->parent);
           $isad = new sfIsadPlugin($item);
-          $creationEvent = self::getCreationEvent($item);
+          $creationDates = self::getCreationDates($item);
 
           $this->results[$parentIsad->__toString()][] = array(
             'resource' => $item,
             'referenceCode' => $isad->referenceCode,
             'title' => $item->getTitle(array('cultureFallback' => true)),
-            'dates' => 
Qubit::renderDateStartEnd($creationEvent->getDate(array('cultureFallback' => 
true)), $creationEvent->startDate, $creationEvent->endDate),
-            'startDate' => $creationEvent->startDate,
+            'dates' => (isset($creationDates)) ? 
Qubit::renderDateStartEnd($creationDates->getDate(array('cultureFallback' => 
true)), $creationDates->startDate, $creationDates->endDate) : ' ',
+            'startDate' => (isset($creationDates)) ? $creationDates->startDate 
: ' ',
             'accessConditions' => 
$item->getAccessConditions(array('cultureFallback' => true)),
             'locations' => self::getLocationString($item)
           );
@@ -102,23 +102,26 @@
     return implode('; ', $locations);
   }
 
-  public function getCreationEvent($resource)
+  public function getCreationDates($resource)
   {
-    if (0 == count($creationEvents = $resource->getCreationEvents()))
+    $creationEvents = $resource->getCreationEvents();
+
+    if (0 == count($creationEvents))
     {
-      // Creation date will inherit down the hierarchy
-      foreach ($resource->getAncestors() as $item)
+      if (isset($resource->parent))
       {
-        if (0 < count($creationEvents = $item->getCreationEvents()))
-        {
-          break;
-        }
+        return self::getCreationDates($resource->parent);
       }
     }
-
-    if (0 < count($creationEvents))
+    else
     {
-      return $creationEvents[0];
+      foreach ($creationEvents as $item)
+      {
+        if (null != $item->getDate(array('cultureFallback' => true)) || null 
!= $item->startDate)
+        {
+          return $item;
+        }
+      }
     }
   }
 }

Modified: trunk/lib/model/QubitInformationObject.php
==============================================================================
--- trunk/lib/model/QubitInformationObject.php  Mon Oct 10 17:26:06 2011        
(r10007)
+++ trunk/lib/model/QubitInformationObject.php  Mon Oct 10 19:19:01 2011        
(r10008)
@@ -500,7 +500,13 @@
 
   public function getCreationEvents()
   {
-    return $this->getActorEvents($options = array('eventTypeId' => 
QubitTerm::CREATION_ID));
+    $criteria = new Criteria;
+    $criteria->add(QubitEvent::INFORMATION_OBJECT_ID, $this->id);
+    $criteria->add(QubitEvent::TYPE_ID, QubitTerm::CREATION_ID);
+
+    $criteria->addDescendingOrderByColumn(QubitEvent::START_DATE);
+
+    return QubitEvent::get($criteria);
   }
 
   /**

-- 
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.com/group/qubit-commits?hl=en.

Reply via email to