Author: mcantelon
Date: Mon Apr  2 13:25:24 2012
New Revision: 11339

Log:
Refactored publication status setting and added ability to set description 
status id.

Modified:
   trunk/lib/task/import/csvImportTask.class.php

Modified: trunk/lib/task/import/csvImportTask.class.php
==============================================================================
--- trunk/lib/task/import/csvImportTask.class.php       Mon Apr  2 00:04:10 
2012        (r11338)
+++ trunk/lib/task/import/csvImportTask.class.php       Mon Apr  2 13:25:24 
2012        (r11339)
@@ -61,7 +61,6 @@
       'app_defaultPubStatus',
       QubitTerm::PUBLICATION_STATUS_PUBLISHED_ID
     );
-    $defaultStatusTypeId = QubitTerm::STATUS_TYPE_PUBLICATION_ID;
 
     // create note term if it doesn't yet exist
     QubitFlatfileImport::createOrFetchTerm(
@@ -71,6 +70,8 @@
 
     // Load taxonomies into variables to avoid use of magic numbers
     $termData = QubitFlatfileImport::loadTermsFromTaxonomies(array(
+      QubitTaxonomy::DESCRIPTION_STATUS_ID   => 'descriptionStatusTypes',
+      QubitTaxonomy::PUBLICATION_STATUS_ID   => 'pubStatusTypes',
       QubitTaxonomy::NOTE_TYPE_ID            => 'noteTypes',
       QubitTaxonomy::RAD_NOTE_ID             => 'radNoteTypes',
       QubitTaxonomy::RAD_TITLE_NOTE_ID       => 'titleNoteTypes',
@@ -94,20 +95,22 @@
       /* the status array is a place to put data that should be accessible
          from closure logic using the getStatus method */
       'status' => array(
-        'options'              => $options,
-        'sourceName'           => $sourceName,
-        'defaultStatusId'      => $defaultStatusId,
-        'defaultStatusTypeId'  => $defaultStatusTypeId,
-        'materialTypes'        => $termData['materialTypes'],
-        'copyrightStatusTypes' => $termData['copyrightStatusTypes'],
-        'copyrightActTypes'    => $termData['copyrightActTypes'],
-        'physicalObjectTypes'  => $termData['physicalObjectTypes']
+        'options'                => $options,
+        'sourceName'             => $sourceName,
+        'defaultStatusId'        => $defaultStatusId,
+        'descriptionStatusTypes' => $termData['descriptionStatusTypes'],
+        'pubStatusTypes'         => $termData['pubStatusTypes'],
+        'materialTypes'          => $termData['materialTypes'],
+        'copyrightStatusTypes'   => $termData['copyrightStatusTypes'],
+        'copyrightActTypes'      => $termData['copyrightActTypes'],
+        'physicalObjectTypes'    => $termData['physicalObjectTypes']
       ),
 
       /* import columns that map directory to QubitInformationObject 
properties */
       'standardColumns' => array(
         'title',
         'identifier',
+        'status',
         'accruals',
         'scopeAndContent',
         'extentAndMedium',
@@ -209,6 +212,8 @@
       'variableColumns' => array(
         'legacyId',
         'parentId',
+        'descriptionStatus',
+        'publicationStatus',
         'copyrightStatus',
         'copyrightExpires',
         'copyrightHolder',
@@ -237,6 +242,7 @@
       /* import logic to execute before saving information object */
       'preSaveLogic' => function(&$self)
       {
+        /*
         if (isset($self->rowStatusVars['physicalStorageLocation']))
         {
           $physLocation = 
trim($self->rowStatusVars['physicalStorageLocation']);
@@ -246,12 +252,31 @@
             $self->rowStatusVars['physicalObjectLocation'] = $physLocation;
           }
         }
+        */
 
-        // set to default status
-        $self->object->setStatus(array(
-          'statusId' => $self->getStatus('defaultStatusId'),
-          'typeId'   => $self->getStatus('defaultStatusTypeId')
-        ));
+        // set description status
+        if (isset($self->rowStatusVars['descriptionStatus']))
+        {
+          $statusTermId = array_search(
+            $self->rowStatusVars['descriptionStatus'],
+            $self->status['descriptionStatusTypes']
+          );
+
+          $self->object->descriptionStatusId = $statusTermId;
+        }
+
+        // set publication status
+        if (isset($self->rowStatusVars['publicationStatus']))
+        {
+          $pubStatusTermId = array_search(
+            $self->rowStatusVars['publicationStatus'],
+            $self->status['pubStatusTypes']
+          );
+        } else {
+          $pubStatusTermId = $self->status['defaultStatusId'];
+        }
+
+        $self->object->setPublicationStatus($pubStatusTermId);
 
         if (isset($self->rowStatusVars['parentId']) && 
!$self->rowStatusVars['parentId'])
         {

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