Author: sevein
Date: Thu Jul 14 15:17:21 2011
New Revision: 9314
Log:
First approach to accession number field
Modified:
trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
Modified: trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php
==============================================================================
--- trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php Thu Jul
14 14:19:55 2011 (r9313)
+++ trunk/plugins/qtAccessionPlugin/lib/model/QubitAccession.php Thu Jul
14 15:17:21 2011 (r9314)
@@ -33,4 +33,39 @@
return parent::insert($connection);
}
+
+ public static function getLatestAccession()
+ {
+ $criteria = new Criteria;
+ $criteria->addDescendingOrderByColumn(QubitObject::CREATED_AT);
+ $criteria->setLimit(1);
+
+ return QubitObject::get($criteria)->offsetGet(0);
+ }
+
+ public static function generateAccessionNumber()
+ {
+ return preg_replace_callback('/([#%])([A-z]+)/', function ($match)
+ {
+ if ('%' == $match[1])
+ {
+ return strftime('%'.$match[2]);
+ }
+ else if ('#' == $match[1])
+ {
+ switch($match[2])
+ {
+ case 'i':
+
+ $latest = QubitAccession::getLatestAccession();
+
+ return $latest->id;
+
+ default:
+
+ 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
Thu Jul 14 14:19:55 2011 (r9313)
+++
trunk/plugins/qtAccessionPlugin/modules/accession/actions/editAction.class.php
Thu Jul 14 15:17:21 2011 (r9314)
@@ -159,18 +159,34 @@
break;
case 'date':
- // If it is a *new* accession, set current date as default
+ $this->form->setDefault('date', $this->resource['date']);
+
if (!isset($this->resource->id))
{
$dt = new DateTime;
$this->form->setDefault('date', $dt->format('Y-m-d'));
- $this->form->setValidator('date', new sfValidatorString);
- $this->form->setWidget('date', new sfWidgetFormInput);
-
- break;
}
+
+ $this->form->setValidator('date', new sfValidatorString);
+ $this->form->setWidget('date', new sfWidgetFormInput);
+
+ break;
case 'identifier':
+
+ $this->form->setDefault('identifier', $this->resource['identifier']);
+
+ if (!isset($this->resource->id))
+ {
+ $dt = new DateTime;
+ $this->form->setDefault('identifier',
QubitAccession::generateAccessionNumber());
+ }
+
+ $this->form->setValidator('identifier', new sfValidatorString);
+ $this->form->setWidget('identifier', new sfWidgetFormInput);
+
+ break;
+
case 'receivedExtentUnits':
case 'title':
$this->form->setDefault($name, $this->resource[$name]);
--
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.