Author: sevein
Date: Tue Jul 10 17:35:07 2012
New Revision: 11893

Log:
Migrating QuitMigrate110 to arUpgrader110 (SQL), TODO 63, 70 and 74

Modified:
   trunk/lib/task/migrate/arUpgrader110.class.php

Modified: trunk/lib/task/migrate/arUpgrader110.class.php
==============================================================================
--- trunk/lib/task/migrate/arUpgrader110.class.php      Tue Jul 10 17:32:18 
2012        (r11892)
+++ trunk/lib/task/migrate/arUpgrader110.class.php      Tue Jul 10 17:35:07 
2012        (r11893)
@@ -34,55 +34,599 @@
   {
     switch ($version)
     {
+      // Add accession module menu entry, internal taxonomies,
+      // terms and settings
       case 62:
+        // Add accession mask user setting
+        $setting = new QubitSetting;
+        $setting->name  = 'accession_mask';
+        $setting->value = '%Y-%m-%d/#i';
+        $setting->editable = 1;
+        $setting->deleteable = 0;
+        $setting->sourceCulture = 'en';
+        $setting->culture = 'en';
+        $setting->save();
+
+        // Add accession counter setting
+        $setting = new QubitSetting;
+        $setting->name  = 'accession_counter';
+        $setting->value = '0';
+        $setting->editable = 1;
+        $setting->deleteable = 0;
+        $setting->sourceCulture = 'en';
+        $setting->culture = 'en';
+        $setting->save();
+
+        // Update add button, accession is now the default action
+        $node = QubitMenu::getByName('add');
+        $node->path = 'accession/add';
+        $node->save();
+
+        // Create accession menu node
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::ADD_EDIT_ID;
+        $node->name = 'addAccessionRecord';
+        $node->path = 'accession/add';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Accession records',
+          'es' => 'Registros de adhesiones',
+          'fr' => 'Registre des entrées',
+          'pl' => 'Nabytki',
+          'sl' => 'Zapisi o prevzemu') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "addInformationObject"
+        if (null !== $target = QubitMenu::getByName('addInformationObject'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // Create manage menu node
+        $node = new QubitMenu;
+        $node->id = QubitMenu::MANAGE_ID;
+        $node->parentId = QubitMenu::MAIN_MENU_ID;
+        $node->name = 'manage';
+        $node->path = 'accession/browse';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Manage',
+          'es' => 'Administrar',
+          'fr' => 'Gérer',
+          'pl' => 'Zarządzanie',
+          'sl' => 'Upravljaj') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "taxonomies"
+        if (null !== $target = QubitMenu::getByName('taxonomies'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // Create manage accession menu node
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::MANAGE_ID;
+        $node->name = 'accessions';
+        $node->path = 'accession/browse';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Accession records',
+          'es' => 'Registros de adhesiones',
+          'fr' => 'Registre des entrées',
+          'pl' => 'Nabytki',
+          'sl' => 'Zapisi o prevzemu') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "taxonomies"
+        if (null !== $target = QubitMenu::getByName('taxonomies'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // Create manage donor menu node
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::MANAGE_ID;
+        $node->name = 'donors';
+        $node->path = 'donor/browse';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Donors',
+          'es' => 'Donantes',
+          'fr' => 'Donateurs',
+          'nl' => 'Schenkers',
+          'pl' => 'Przekazujący (materiały archiwalne)',
+          'sl' => 'Donatorji') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "taxonomies"
+        if (null !== $target = QubitMenu::getByName('taxonomies'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // Create manage rightsholder menu node
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::MANAGE_ID;
+        $node->name = 'rightsholders';
+        $node->path = 'rightsholder/browse';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Rights holders',
+          'es' => 'Titulares de derechos',
+          'fr' => 'Détenteurs de droits',
+          'nl' => 'Houders van rechten',
+          'pl' => 'Posiadacze praw',
+          'sl' => 'Imetniki pravic') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "taxonomies"
+        if (null !== $target = QubitMenu::getByName('taxonomies'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // New type of relation: accession
+        $term = new QubitTerm;
+        $term->id = QubitTerm::ACCESSION_ID;
+        $term->parentId = QubitTerm::ROOT_ID;
+        $term->taxonomyId = QubitTerm::RELATION_TYPE_ID;
+        $term->sourceCulture = 'en';
+        $termI18n = new QubitTermI18n;
+        $termI18n->name = 'Accession';
+        $termI18n->culture = 'en';
+        $term->termI18ns[] = $termI18n;
+        QubitMigrate::addTerm($term, $configuration);
+
+        // New type of relation: right
+        $term = new QubitTerm;
+        $term->id = QubitTerm::RIGHT_ID;
+        $term->parentId = QubitTerm::ROOT_ID;
+        $term->taxonomyId = QubitTerm::RELATION_TYPE_ID;
+        $term->sourceCulture = 'en';
+        $termI18n = new QubitTermI18n;
+        $termI18n->name = 'Right';
+        $termI18n->culture = 'en';
+        $term->termI18ns[] = $termI18n;
+        QubitMigrate::addTerm($term, $configuration);
+
+        // New type of relation: donor
+        $term = new QubitTerm;
+        $term->id = QubitTerm::DONOR_ID;
+        $term->parentId = QubitTerm::ROOT_ID;
+        $term->taxonomyId = QubitTerm::RELATION_TYPE_ID;
+        $term->sourceCulture = 'en';
+        $termI18n = new QubitTermI18n;
+        $termI18n->name = 'Donor';
+        $termI18n->culture = 'en';
+        $term->termI18ns[] = $termI18n;
+        QubitMigrate::addTerm($term, $configuration);
+
+        // Accession resource type taxonomy and its terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::ACCESSION_RESOURCE_TYPE_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Accession resource type';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy, $configuration);
+
+        foreach (array(
+          'Public transfer',
+          'Private transfer',
+          'Acquisition type') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::ACCESSION_RESOURCE_TYPE_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        foreach (array(
+          'Deposit',
+          'Gift',
+          'Purchase',
+          'Transfer') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::ACCESSION_ACQUISITION_TYPE_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Processing priority taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::ACCESSION_PROCESSING_PRIORITY_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Processing priority';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy, $configuration);
+
+        foreach (array(
+          'High',
+          'Medium',
+          'Low') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::ACCESSION_PROCESSING_PRIORITY_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Processing status taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::ACCESSION_PROCESSING_STATUS_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Processing status';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy, $configuration);
+
+        foreach (array(
+          'Complete',
+          'Incomplete',
+          'In-Progress') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::ACCESSION_PROCESSING_STATUS_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Deaccession scope taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::DEACCESSION_SCOPE_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Deaccession scope';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy, $configuration);
+
+        foreach (array(
+          'Whole',
+          'Part') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::DEACCESSION_SCOPE_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Right act taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::RIGHT_ACT_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Rights act';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy);
+
+        foreach (array(
+          'Delete',
+          'Discover',
+          'Display',
+          'Disseminate',
+          'Migrate',
+          'Modify',
+          'Replicate') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::RIGHT_ACT_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Right basis taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::RIGHT_BASIS_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Rights basis';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy);
+
+        foreach (array(
+          'Copyright',
+          'License',
+          'Statute',
+          'Policy',
+          'Donor') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::RIGHT_BASIS_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
+
+        // Copyright status taxonomy and terms
+        $taxonomy = new QubitTaxonomy;
+        $taxonomy->id = QubitTaxonomy::COPYRIGHT_STATUS_ID;
+        $taxonomy->sourceCulture = 'en';
+        $taxonomyI18n = new QubitTaxonomyI18n;
+        $taxonomyI18n->name = 'Copyright status';
+        $taxonomyI18n->culture = 'en';
+        QubitMigrate::addTaxonomy($taxonomy);
+
+        foreach (array(
+          'Under copyright',
+          'Public domain',
+          'Unknown') as $item)
+        {
+          $term = new QubitTerm;
+          $term->parentId = QubitTerm::ROOT_ID;
+          $term->taxonomyId = QubitTaxonomy::RIGHT_BASIS_ID;
+          $term->sourceCulture = 'en';
+          $termI18n = new QubitTermI18n;
+          $termI18n->name = $item;
+          $termI18n->culture = 'en';
+          $term->termI18ns[] = $termI18n;
+          QubitMigrate::addTerm($term, $configuration);
+        }
 
         break;
 
+      // Migrate relation notes for date and description to relation_i18n table
       case 63:
+        // TODO
 
         break;
 
+      // Prior to revision 9340 all checksums were md5 and the algorithm was 
not
+      // recorded
       case 64:
+        $sql  = 'UPDATE '.QubitDigitalObject::TABLE_NAME;
+        $sql += ' SET '.QubitDigitalObject::CHECKSUM_TYPE.' = "md5"';
+        $sql += ' WHERE CHAR_LENGTH('.QubitDigitalObject::CHECKSUM_TYPE.') > 
0';
+        QubitPdo::modify($sql);
 
         break;
 
+      // Add menu node, see also r9373
       case 65:
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::IMPORT_ID;
+        $node->name = 'importCsv';
+        $node->path = 'object/importSelect?type=csv';
+        $node->sourceCulture = 'en';
+        $nodeI18n = new QubitMenuI18n;
+        $nodeI18n->culture = 'en';
+        $nodeI18n->label= 'CSV';
+        $node->menuI18ns[] = $nodeI18n;
+        $node->save();
 
         break;
 
+      // Add global replace menu node
       case 66:
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::ADMIN_ID;
+        $node->name = 'globalReplace';
+        $node->path = 'search/globalReplace';
+        $node->sourceCulture = 'en';
+        $nodeI18n = new QubitMenuI18n;
+        $nodeI18n->culture = 'en';
+        $nodeI18n->label = 'Global search/replace';
+        $node->menuI18ns[] = $nodeI18n;
+        $node->save();
 
         break;
 
+      // Add setting for repository upload quota
       case 67:
+        $setting = new QubitSetting;
+        $setting->name  = 'repository_quota';
+        $setting->editable = 1;
+        $setting->deleteable = 0;
+        $setting->sourceCulture = 'en';
+        $setting->value = '-1';
+        $setting->culture = 'en';
+        $setting->save();
 
         break;
 
+      // Add separator character setting
       case 68:
+        $setting = new QubitSetting;
+        $setting->name  = 'separator_character';
+        $setting->editable = 1;
+        $setting->deleteable = 0;
+        $setting->sourceCulture = 'en';
+        $setting->value = '-';
+        $setting->culture = 'en';
+        $setting->save();
 
         break;
 
+      // Add themes menu and update plugins menu path
       case 69:
+        // Create manage donor menu node
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::ADMIN_ID;
+        $node->name = 'themes';
+        $node->path = 'sfPluginAdminPlugin/themes';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Themes',
+          'es' => 'Temas',
+          'fr' => 'Thèmes',
+          'nl' => 'Thema\'s',
+          'pl' => 'Motywy',
+          'sl' => 'Teme') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "settings"
+        if (null !== $target = QubitMenu::getByName('settings'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
+
+        // Update path of plugins ndoe
+        $node = QubitMenu::getByName('plugins');
+        $node->path = 'sfPluginAdminPlugin/plugins';
+        $node->save();
 
         break;
 
+      // Move digital objects to repository specific paths like r9503
       case 70:
+        // TODO
 
         break;
 
+      // Add default value for repository.upload_limit column
       case 71:
+        $sql = 'UPDATE '.QubitRepository::TABLE_NAME.' SET upload_limit = 
"-1"';
+        QubitPdo::modify($sql);
 
         break;
 
+      // Add physical object menu
       case 72:
+        $node = new QubitMenu;
+        $node->parentId = QubitMenu::MANAGE_ID;
+        $node->name = 'browsePhysicalObjects';
+        $node->path = 'physicalobject/browse';
+        $node->sourceCulture = 'en';
+
+        foreach (array(
+          'en' => 'Physical storage',
+          'es' => 'Almacenamiento físico',
+          'fr' => 'Localisation physique',
+          'nl' => 'Bergplaats',
+          'pl' => 'Składowanie w ujęciu fizycznym',
+          'sl' => 'Fizična hramba') as $key => $value)
+        {
+          $nodeI18n = new QubitMenuI18n;
+          $nodeI18n->culture = $key;
+          $nodeI18n->label= $value;
+
+          $node->menuI18ns[] = $nodeI18n;
+        }
+
+        $node->save();
+
+        // Introduce it before "rightsholders"
+        if (null !== $target = QubitMenu::getByName('rightsholders'))
+        {
+          $node->moveToPrevSiblingOf($target);
+        }
 
         break;
 
+      // Migrate to sfCaribou theme to users that are currently using sfClassic
       case 73:
+        if (null !== $setting = QubitSetting::getByName('plugins'))
+        {
+          $plugin = 'sfClassicPlugin';
+          $replacement = 'sfCaribouPlugin';
+
+          $settings = unserialize($setting->getValue('sourceCulture' => true));
+
+          // Find plugin
+          if (-1 < ($index = array_search($plugin, $settings)))
+          {
+            // Replace
+            $settings[$index] = $replacement;
+
+            // Save
+            $setting->setValue(serialize($settings), array('sourceCulture' => 
true));
+          }
+        }
 
         break;
 
+      // Ensure all information objects get an explicit publication status
       case 74:
+        // TODO
 
         break;
 

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