Author: sevein
Date: Tue Aug  2 15:58:46 2011
New Revision: 9431

Log:
Add separator character setting, used in RAD/ISAD refcode, fixes issue 1994

Modified:
   trunk/apps/qubit/modules/settings/actions/listAction.class.php
   trunk/data/fixtures/settings.yml
   trunk/lib/form/SettingsGlobalForm.class.php
   trunk/lib/task/migrate/QubitMigrate110.class.php
   trunk/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php
   trunk/plugins/sfRadPlugin/lib/sfRadPlugin.class.php

Modified: trunk/apps/qubit/modules/settings/actions/listAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/settings/actions/listAction.class.php      Tue Aug 
 2 15:57:02 2011        (r9430)
+++ trunk/apps/qubit/modules/settings/actions/listAction.class.php      Tue Aug 
 2 15:58:46 2011        (r9431)
@@ -198,6 +198,7 @@
     $hitsPerPage = QubitSetting::getSettingByName('hits_per_page');
     $accessionMask = QubitSetting::getSettingByName('accession_mask');
     $accessionCounter = QubitSetting::getSettingByName('accession_counter');
+    $separatorCharacter = 
QubitSetting::getSettingByName('separator_character');
     $inheritCodeInformationObject = 
QubitSetting::getSettingByName('inherit_code_informationobject');
     $sortTreeviewInformationObject = 
QubitSetting::getSettingByName('sort_treeview_informationobject');
     $multiRepository = QubitSetting::getSettingByName('multi_repository');
@@ -214,6 +215,7 @@
       'hits_per_page' => (isset($hitsPerPage)) ? 
$hitsPerPage->getValue(array('sourceCulture'=>true)) : null,
       'accession_mask' => (isset($accessionMask)) ? 
$accessionMask->getValue(array('sourceCulture'=>true)) : null,
       'accession_counter' => (isset($accessionCounter)) ? 
intval($accessionCounter->getValue(array('sourceCulture'=>true))) : 1,
+      'separator_character' => (isset($separatorCharacter)) ? 
$separatorCharacter->getValue(array('sourceCulture'=>true)) : null,
       'inherit_code_informationobject' => 
(isset($inheritCodeInformationObject)) ? 
intval($inheritCodeInformationObject->getValue(array('sourceCulture'=>true))) : 
1,
       'sort_treeview_informationobject' => 
(isset($sortTreeviewInformationObject)) ? 
$sortTreeviewInformationObject->getValue(array('sourceCulture'=>true)) : 0,
       'multi_repository' => (isset($multiRepository)) ? 
intval($multiRepository->getValue(array('sourceCulture'=>true))) : 1,
@@ -289,6 +291,16 @@
       }
     }
 
+    // Separator character
+    if (null !== $separatorCharacter = 
$thisForm->getValue('separator_character'))
+    {
+      $setting = QubitSetting::getSettingByName('separator_character');
+
+      // Force sourceCulture update to prevent discrepency in settings between 
cultures
+      $setting->setValue($separatorCharacter, array('sourceCulture' => true));
+      $setting->save();
+    }
+
     // Inherit Code (Information Object)
     if (null !== $inheritCodeInformationObjectValue = 
$thisForm->getValue('inherit_code_informationobject'))
     {

Modified: trunk/data/fixtures/settings.yml
==============================================================================
--- trunk/data/fixtures/settings.yml    Tue Aug  2 15:57:02 2011        (r9430)
+++ trunk/data/fixtures/settings.yml    Tue Aug  2 15:58:46 2011        (r9431)
@@ -3,7 +3,7 @@
     name: version
     editable: 0
     deleteable: 0
-    value: 67
+    value: 68
   QubitSetting_2:
     name: upload_dir
     editable: 0
@@ -341,6 +341,9 @@
   QubitSetting_accessionCounter:
     name: accession_counter
     value: 0
+  QubitSetting_separatorCharacter:
+    name: separator_character
+    value: -
   QubitSetting_perRepositoryAssetPath:
     name: per_repository_asset_path
     value: 0

Modified: trunk/lib/form/SettingsGlobalForm.class.php
==============================================================================
--- trunk/lib/form/SettingsGlobalForm.class.php Tue Aug  2 15:57:02 2011        
(r9430)
+++ trunk/lib/form/SettingsGlobalForm.class.php Tue Aug  2 15:58:46 2011        
(r9431)
@@ -46,6 +46,7 @@
       'hits_per_page' => new sfWidgetFormInput,
       'accession_mask' => new sfWidgetFormInput,
       'accession_counter' => new sfWidgetFormInput,
+      'separator_character' => new sfWidgetFormInput(array(), 
array('maxlength' => 1)),
       'inherit_code_informationobject' => new 
sfWidgetFormSelectRadio(array('choices'=>array(1=>'yes', 0=>'no')), 
array('class'=>'radio')),
       'sort_treeview_informationobject' => new 
sfWidgetFormSelectRadio(array('choices'=>array('none'=>'none', 
'title'=>'title', 'identifierTitle'=> 'identifier - title')), 
array('class'=>'radio')),
       'multi_repository' => new 
sfWidgetFormSelectRadio(array('choices'=>array(1=>'yes', 0=>'no')), 
array('class'=>'radio')),
@@ -63,6 +64,7 @@
       'hits_per_page' => __('Results per page'),
       'accession_mask' => __('Accession mask'),
       'accession_counter' => __('Accession counter'),
+      'separator_character' => __('Separator character'),
       'inherit_code_informationobject' => __('Inherit reference code 
(information object)'),
       'sort_treeview_informationobject' => __('Sort treeview (information 
object)'),
       'multi_repository' => __('Multiple repositories'),
@@ -80,6 +82,7 @@
       'hits_per_page' => __('The number of records shown per page on list 
pages'),
       // 'accession_mask' => __(''),
       // 'accession_counter' => __(''),
+      // 'separator_character' => __(''),
       'inherit_code_informationobject' => __('When set to "yes", the 
reference code string will be built using the information object identifier 
plus the identifiers of all its ancestors'),
       'sort_treeview_informationobject' => __('Determines whether to sort 
siblings in the information object treeview control and, if so, what sort 
criteria to use'),
       'multi_repository' => __('When set to "no", the repository 
name is excluded from certain displays because it will be too repetitive'),
@@ -120,6 +123,7 @@
     $this->validatorSchema['check_for_updates'] = new 
sfValidatorString(array('required' => false));
     $this->validatorSchema['upload_dir'] = new 
sfValidatorString(array('required' => false));
     $this->validatorSchema['accession_mask'] = new 
sfValidatorString(array('required' => false));
+    $this->validatorSchema['separator_character'] = new 
sfValidatorString(array('required' => false));
     $this->validatorSchema['accession_counter'] = new 
sfValidatorInteger(array('required' => false));
     $this->validatorSchema['inherit_code_informationobject'] = new 
sfValidatorInteger(array('required' => false));
     $this->validatorSchema['sort_treeview_informationobject'] = new 
sfValidatorString(array('required' => false));

Modified: trunk/lib/task/migrate/QubitMigrate110.class.php
==============================================================================
--- trunk/lib/task/migrate/QubitMigrate110.class.php    Tue Aug  2 15:57:02 
2011        (r9430)
+++ trunk/lib/task/migrate/QubitMigrate110.class.php    Tue Aug  2 15:58:46 
2011        (r9431)
@@ -64,6 +64,9 @@
 
       case 66:
         $this->addPerRepositoryPathSetting();
+
+      case 67:
+        $this->addSeparatorCharacter();
     }
 
     // Delete "stub" objects
@@ -474,6 +477,25 @@
   }
 
   /**
+   * Add separator character setting
+   *
+   * @return QubitMigrate110 SELF
+   */
+  protected function addSeparatorCharacterSetting()
+  {
+    // Add separator character
+    if (false === $this->getRowKey('QubitSetting', 'name', 
'QubitSetting_separatorCharacter'))
+    {
+      $this->data['QubitSetting']['QubitSetting_separatorCharacter'] = array(
+        'name' => 'separator_character',
+        'value' => '-'
+      );
+    }
+
+    return $this;
+  }
+
+  /**
    * Slugs are inserted when some resources are inserted, but slugs are dumped
    * separately when data is dumped. So loading slug data will try to insert
    * duplicate slugs. To work around this, turn slugs into resource properties

Modified: trunk/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php
==============================================================================
--- trunk/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php       Tue Aug  2 
15:57:02 2011        (r9430)
+++ trunk/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php       Tue Aug  2 
15:58:46 2011        (r9431)
@@ -113,7 +113,7 @@
               $repository = $item->repository;
             }
           }
-          $identifier = implode('-', $identifier);
+          $identifier = implode(sfConfig::get('app_separator_character', '-'), 
$identifier);
 
           if (isset($repository->identifier))
           {

Modified: trunk/plugins/sfRadPlugin/lib/sfRadPlugin.class.php
==============================================================================
--- trunk/plugins/sfRadPlugin/lib/sfRadPlugin.class.php Tue Aug  2 15:57:02 
2011        (r9430)
+++ trunk/plugins/sfRadPlugin/lib/sfRadPlugin.class.php Tue Aug  2 15:58:46 
2011        (r9431)
@@ -157,7 +157,7 @@
               $identifier[] = $item->identifier;
             }
           }
-          $identifier = implode('-', $identifier);
+          $identifier = implode(sfConfig::get('app_separator_character', '-'), 
$identifier);
 
           return "$countryCode$repositoryCode$identifier";
         }

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