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.