public function doMassAction($user_id, $items, $values) { $query = Doctrine_Query::create()->select('id')->from('Specimens s'); $query->andWhere('s.id in (select fct_filter_encodable_row(?,?,?))', array(implode(',', $items), 'spec_ref', $user_id)); $results = $query->execute(); foreach ($results as $result) { $maintenance = new CollectionMaintenance(); $maintenance->fromArray($values); $maintenance->setRecordId($result->getId()); $maintenance->setReferencedRelation("specimens"); $maintenance->save(); } }
public function executeEditMaintenance(sfWebRequest $request) { if ($this->getUser()->isA(Users::REGISTERED_USER)) { $this->forwardToSecureAction(); } //We edit a maintenance if ($request->getParameter('id', null) !== null) { $maint = Doctrine::getTable('CollectionMaintenance')->find($request->getParameter('id')); } elseif ($request->getParameter('rid', null) !== null) { $maint = new CollectionMaintenance(); $maint->setRecordId($request->getParameter('rid')); $maint->setReferencedRelation('specimens'); } $this->forward404unless($maint); $this->form = new CollectionMaintenanceForm($maint); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('collection_maintenance')); if ($this->form->isValid()) { try { $this->form->save(); return $this->renderText('ok'); } catch (Doctrine_Exception $ne) { $e = new DarwinPgErrorParser($ne); $error = new sfValidatorError(new savedValidator(), $e->getMessage()); $this->form->getErrorSchema()->addError($error); } } } }