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.