Author: sevein
Date: Thu May  3 16:15:06 2012
New Revision: 11617

Log:
Add created_at and updated_at fields in ES for QubitObject(s)

Modified:
   branches/2.0/plugins/qtElasticSearchPlugin/lib/QubitMapping.class.php
   
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitActorMapping.class.php
   branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoActor.class.php
   
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoInformationObject.class.php
   
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitRepositoryMapping.class.php
   
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitTermMapping.class.php
   
branches/2.0/plugins/qtElasticSearchPlugin/lib/qtElasticSearchPlugin.class.php

Modified: branches/2.0/plugins/qtElasticSearchPlugin/lib/QubitMapping.class.php
==============================================================================
--- branches/2.0/plugins/qtElasticSearchPlugin/lib/QubitMapping.class.php       
Thu May  3 15:49:09 2012        (r11616)
+++ branches/2.0/plugins/qtElasticSearchPlugin/lib/QubitMapping.class.php       
Thu May  3 16:15:06 2012        (r11617)
@@ -44,6 +44,16 @@
           'include_in_all' => false))));
   }
 
+  public static function getTimestampProperties()
+  {
+    return array(
+      'createdAt' => array(
+          'type' => 'date'
+        ),
+      'updatedAt' => array(
+          'type' => 'date'));
+  }
+
   public static function getI18nFields($class)
   {
     // use reflection on i18n object to get property list from class constants

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitActorMapping.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitActorMapping.class.php
    Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitActorMapping.class.php
    Thu May  3 16:15:06 2012        (r11617)
@@ -37,36 +37,7 @@
         'type' => 'integer',
         'index' => 'not_analyzed',
         'include_in_all' => false))
-      + self::getI18nProperties();
-  }
-
-  static function serialize($object)
-  {
-    $serialized = array();
-
-    $serialized['slug'] = $object->slug;
-    $serialized['entityTypeId'] = $object->entityTypeId;
-
-
-/*
-    // TODO: Add other forms of name
-    foreach ($object->otherNames as $otherName)
-    {
-      $otherNameI18ns = array();
-
-      foreach ($objectI18ns as $culture => $objectI18n)
-      {
-        $otherNameI18ns[] = array('name' => 
$otherName->getName(array('culture' => $culture)), 'culture' => $culture);
-      }
-
-      $serialized['otherNames'][] = array('id' => $otherName->id, 'i18n' => 
$otherNameI18ns);
-    }
-*/
-
-    $serialized['sourceCulture'] = $object->sourceCulture;
-    $objectI18ns = $object->actorI18ns->indexBy('culture');
-    $serialized['i18n'] = self::serializeI18ns($object, $objectI18ns);
-
-    return $serialized;
+      + self::getI18nProperties()
+      + self::getTimestampProperties();
   }
 }

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoActor.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoActor.class.php    
    Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoActor.class.php    
    Thu May  3 16:15:06 2012        (r11617)
@@ -98,10 +98,14 @@
     {
       $sql = 'SELECT
                 actor.*,
-                slug.slug
+                slug.slug,
+                object.created_at,
+                object.updated_at
               FROM '.QubitActor::TABLE_NAME.' actor
               JOIN '.QubitSlug::TABLE_NAME.' slug
                 ON actor.id = slug.object_id
+              JOIN '.QubitObject::TABLE_NAME.' object
+                ON actor.id = object.id
               WHERE actor.id = :id';
 
       self::$statements['actor'] = self::$conn->prepare($sql);
@@ -175,6 +179,9 @@
     $serialized['sourceCulture'] = $this->source_culture;
     $serialized['i18n'] = $i18ns;
 
+    $serialized['createdAt'] = Elastica_Util::convertDate($this->created_at);
+    $serialized['updatedAt'] = Elastica_Util::convertDate($this->updated_at);
+
     return $serialized;
   }
 }

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoInformationObject.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoInformationObject.class.php
    Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitPdoInformationObject.class.php
    Thu May  3 16:15:06 2012        (r11617)
@@ -101,10 +101,14 @@
          slug.slug,
          pubstat.status_id as publication_status_id,
          do.id as digital_object_id,
-         do.media_type_id as media_type_id
+         do.media_type_id as media_type_id,
+         object.created_at,
+         object.updated_at
        FROM '.QubitInformationObject::TABLE_NAME.' io
        JOIN '.QubitSlug::TABLE_NAME.' slug
          ON io.id = slug.object_id
+       JOIN '.QubitObject::TABLE_NAME.' object
+         ON io.id = object.id
        JOIN '.QubitStatus::TABLE_NAME.' pubstat
          ON io.id = pubstat.object_id
        LEFT JOIN '.QubitDigitalObject::TABLE_NAME.' do
@@ -861,6 +865,9 @@
     $serialized['sourceCulture'] = $this->source_culture;
     $serialized['i18n'] = $i18ns;
 
+    $serialized['createdAt'] = Elastica_Util::convertDate($this->created_at);
+    $serialized['updatedAt'] = Elastica_Util::convertDate($this->updated_at);
+
     return $serialized;
   }
 

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitRepositoryMapping.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitRepositoryMapping.class.php
       Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitRepositoryMapping.class.php
       Thu May  3 16:15:06 2012        (r11617)
@@ -43,7 +43,8 @@
       'contact' => array(
         'type' => 'object',
         'properties' => QubitContactInformationMapping::getProperties()))
-      + self::getI18nProperties();
+      + self::getI18nProperties()
+      + self::getTimestampProperties();
   }
 
   static function serialize($object)

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitTermMapping.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitTermMapping.class.php 
    Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/model/QubitTermMapping.class.php 
    Thu May  3 16:15:06 2012        (r11617)
@@ -37,7 +37,8 @@
         'type' => 'integer',
         'index' => 'not_analyzed',
         'include_in_all' => false))
-      + self::getI18nProperties();
+      + self::getI18nProperties()
+      + self::getTimestampProperties();
   }
 
   static function serialize($object)
@@ -50,6 +51,9 @@
     $objectI18ns = $object->termI18ns->indexBy('culture');
     $serialized['i18n'] = self::serializeI18ns($object, $objectI18ns);
 
+    $serialized['createdAt'] = Elastica_Util::convertDate($object->createdAt);
+    $serialized['updatedAt'] = Elastica_Util::convertDate($object->updatedAt);
+
     return $serialized;
   }
 }

Modified: 
branches/2.0/plugins/qtElasticSearchPlugin/lib/qtElasticSearchPlugin.class.php
==============================================================================
--- 
branches/2.0/plugins/qtElasticSearchPlugin/lib/qtElasticSearchPlugin.class.php  
    Thu May  3 15:49:09 2012        (r11616)
+++ 
branches/2.0/plugins/qtElasticSearchPlugin/lib/qtElasticSearchPlugin.class.php  
    Thu May  3 16:15:06 2012        (r11617)
@@ -246,14 +246,6 @@
       $total = $total + $this->addTerms($options);
     }
 
-    // information objects
-    if (!in_array('ios', $skips))
-    {
-      self::$counter = 0;
-      $this->logger->log('Indexing Information Objects...', 'qtElasticSearch');
-      $total = $total + $this->populateInformationObjects($options);
-    }
-
     // actors
     if (!in_array('actors', $skips))
     {
@@ -262,6 +254,14 @@
       $total = $total + $this->addActors($options);
     }
 
+    // information objects
+    if (!in_array('ios', $skips))
+    {
+      self::$counter = 0;
+      $this->logger->log('Indexing Information Objects...', 'qtElasticSearch');
+      $total = $total + $this->populateInformationObjects($options);
+    }
+
     // if there are still documents in the batch queue, send them
     if ($this->batchMode && count($this->batchDocs) > 0)
     {
@@ -392,14 +392,15 @@
       self::$conn = Propel::getConnection();
     }
 
-    $sql  = 'SELECT
-                  term.id';
+    $sql  = 'SELECT term.id';
     $sql .= ' FROM '.QubitTerm::TABLE_NAME.' term';
+    $sql .= ' JOIN '.QubitObject::TABLE_NAME.' object ON (term.id = 
object.id)';
     $sql .= ' WHERE term.taxonomy_id IN (:subject, :place)';
     $sql .= ' AND term.id != '.QubitTerm::ROOT_ID;
 
-    $terms = QubitPdo::fetchAll($sql, array(':subject' => 
QubitTaxonomy::SUBJECT_ID,
-                                             ':place' => 
QubitTaxonomy::PLACE_ID));
+    $terms = QubitPdo::fetchAll($sql, array(
+      ':subject' => QubitTaxonomy::SUBJECT_ID,
+      ':place' => QubitTaxonomy::PLACE_ID));
     $numRows = count($terms);
 
     // Loop through results, and add to search index

-- 
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