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();
     }
 }
示例#2
0
 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);
             }
         }
     }
 }