Author: sevein
Date: Mon Jul 18 17:47:09 2011
New Revision: 9321
Log:
Add padding and accession_counter support
Modified:
trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
trunk/plugins/qtAccessionPlugin/modules/accession/templates/editSuccess.php
Modified: trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php
==============================================================================
--- trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php Mon Jul
18 17:46:04 2011 (r9320)
+++ trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php Mon Jul
18 17:47:09 2011 (r9321)
@@ -26,26 +26,34 @@
protected function insert($connection = null)
{
+ $this->identifier = self::generateAccessionIdentifier(true);
+
if (!isset($this->slug))
{
$this->slug = QubitSlug::slugify($this->__get('identifier',
array('sourceCulture' => true)));
}
- return parent::insert($connection);
+ parent::insert($connection);
}
- public static function getLatestAccession()
+ public static function getAccessionNumber($incrementCounter)
{
- $criteria = new Criteria;
- $criteria->addDescendingOrderByColumn(QubitObject::CREATED_AT);
- $criteria->setLimit(1);
+ $setting = QubitSetting::getSettingByName('accession_counter');
+
+ if ($incrementCounter)
+ {
+ $setting->value = $setting->getValue(array('sourceCulture' => true)) + 1;
+ $setting->save();
+
+ return $setting->getValue(array('sourceCulture' => true));
+ }
- return QubitObject::get($criteria)->offsetGet(0);
+ return $setting->getValue(array('sourceCulture' => true)) + 1;
}
- public static function generateAccessionNumber()
+ public static function generateAccessionIdentifier($incrementCounter = false)
{
- return preg_replace_callback('/([#%])([A-z]+)/', function ($match)
+ return preg_replace_callback('/([#%])([A-z]+)/', function($match) use
($incrementCounter)
{
if ('%' == $match[1])
{
@@ -53,17 +61,17 @@
}
else if ('#' == $match[1])
{
- switch($match[2])
+ if (0 < preg_match('/^i+$/', $match[2], $matches))
{
- case 'i':
+ $pad = strlen($matches[0]);
+ $number = QubitAccession::getAccessionNumber($incrementCounter);
- $latest = QubitAccession::getLatestAccession();
-
- return $latest->id;
-
- default:
-
- return $match[2];
+ return str_pad($number, $pad, 0, STR_PAD_LEFT);
+ // return sprintf('%0' . $pad . 'd', $number);
+ }
+ else
+ {
+ return $match[2];
}
}
}, sfConfig::get('app_accession_mask'));
Modified:
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
==============================================================================
---
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
Mon Jul 18 17:46:04 2011 (r9320)
+++
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
Mon Jul 18 17:47:09 2011 (r9321)
@@ -166,7 +166,7 @@
$dt = new DateTime;
$this->form->setDefault('date', $dt->format('Y-m-d'));
}
-
+
$this->form->setValidator('date', new sfValidatorString);
$this->form->setWidget('date', new sfWidgetFormInput);
@@ -179,11 +179,11 @@
if (!isset($this->resource->id))
{
$dt = new DateTime;
- $this->form->setDefault('identifier',
QubitAccession::generateAccessionNumber());
+ $this->form->setDefault('identifier',
QubitAccession::generateAccessionIdentifier());
}
$this->form->setValidator('identifier', new sfValidatorString);
- $this->form->setWidget('identifier', new sfWidgetFormInput);
+ $this->form->setWidget('identifier', new sfWidgetFormInput(array(),
array('disabled' => 'disabled')));
break;
@@ -264,6 +264,9 @@
break;
+ case 'identifier':
+ break;
+
default:
return parent::processField($field);
}
Modified:
trunk/plugins/qtAccessionPlugin/modules/accession/templates/editSuccess.php
==============================================================================
--- trunk/plugins/qtAccessionPlugin/modules/accession/templates/editSuccess.php
Mon Jul 18 17:46:04 2011 (r9320)
+++ trunk/plugins/qtAccessionPlugin/modules/accession/templates/editSuccess.php
Mon Jul 18 17:47:09 2011 (r9321)
@@ -15,7 +15,7 @@
<?php echo $form->identifier
->label(__('Accession number').' <span class="form-required"
title="'.__('This is a mandatory element.').'">*</span>')
->renderRow() ?>
-
+
<?php echo $form->date
->label(__('Acquisition date').' <span class="form-required"
title="'.__('This is a mandatory element.').'">*</span>')
->renderRow(array('class' => 'date-widget', 'icon' =>
image_path('calendar.png'))) ?>
--
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.