public function _postInsert(TA_Model_Observed_Interface $subject, $msg) { $conference = Zend_Registry::get('conference'); $submitModel = new Core_Model_Submit(); $userModel = new Core_Model_User(); $values['review'] = $subject->toArray(); $values['submission'] = $submitModel->getSubmissionById($values['review']['submission_id'])->toArray(); $values['user'] = $userModel->getUserById($values['review']['user_id'])->getSafeUser(); $mailer = new TA_Controller_Action_Helper_SendEmail(); $mailer->sendEmail(array('to_email' => $conference['email'], 'html' => true, 'subject' => 'CORE Observer: ' . __CLASS__, 'template' => 'review/postinsert'), $values); }
public function _postInsert(TA_Model_Observed_Interface $subject, $msg) { $conference = Zend_Registry::get('conference'); $userModel = new Core_Model_User(); $user = $userModel->getUserById($subject->user_id); $submitModel = new Core_Model_Submit(); $submission = $submitModel->getSubmissionById($subject->submission_id); $viewParams = $submission->toArray(); $viewParams['fname'] = $user->fname; $viewParams['lname'] = $user->lname; $mailer = new TA_Controller_Action_Helper_SendEmail(); $mailer->sendEmail(array('to_email' => $user->email, 'subject' => 'CORE Observer: ' . __CLASS__, 'template' => 'review/observer'), $viewParams); }
/** * Send email to tiebreakers * */ private function _mailTiebreakers($subject) { $config = Zend_Registry::get('config'); if ($config->core->observer->tiebreaker->notify == 1) { $submitModel = new Core_Model_Submit(); $submission = $submitModel->getSubmissionById($subject->submission_id); $users = $submission->getUsers(true); $viewParams = $submission->toArray(); $mailer = new TA_Controller_Action_Helper_SendEmail(); foreach ($users as $user) { $viewParams['fname'] = $user->fname; $viewParams['lname'] = $user->lname; $mailer->sendEmail(array('to_email' => $user->email, 'subject' => 'CORE Review needed', 'template' => 'review/tiebreaker'), $viewParams); } } }
public function init() { $this->setAction('/core/presentation/new'); $title = new Zend_Form_Element_Text('title'); $title->setLabel('Title')->setRequired(true)->addValidator(new Zend_Validate_Db_NoRecordExists(array('table' => 'presentations', 'field' => 'title')))->setAttrib('class', 'medium')->setDescription('Must be between 2 and 100 characters, only letters, numbers and spaces allowed')->setDecorators(array('Composite')); $abstract = new Zend_Form_Element_Textarea('abstract'); $abstract->setLabel('Abstract')->setRequired(true)->setAttrib('class', 'medium')->setDecorators(array('Composite')); $authors = new Zend_Form_Element_Textarea('authors'); $authors->setLabel('Authors')->setAttrib('class', 'medium')->addFilter('Null')->addFilter('StringTrim')->setDescription('You can add multiple authors by putting each author on a new line')->setDecorators(array('Composite')); $submissionModel = new Core_Model_Submit(); $submission = new Zend_Form_Element_Select('submission_id'); $submission->setLabel('Submission')->addMultiOption('', '---')->addFilter('Null')->addMultiOptions($submissionModel->getSubmissionsForSelect(null))->setAttrib('class', 'medium')->setDecorators(array('Composite')); $logo = new Zend_Form_Element_Select('image'); $logo->setLabel('Logo')->addMultiOption('', '---')->addFilter('Null')->addMultiOptions(array('geant' => 'geant'))->setAttrib('class', 'medium')->setDecorators(array('Composite')); $this->addElements(array($title, $abstract, $authors)); // @todo: by no means secure, you can still manually change the POST array // to bypass this if (Zend_Auth::getInstance()->getIdentity()->isAdmin()) { $this->addElements(array($submission, $logo)); } $this->addElement('submit', 'submit', array('label' => 'Submit', 'decorators' => $this->_buttonElementDecorator)); }
/** * Import submissions to presentations * The title of a submission is used as the title of a presentation * */ public function importAction() { $request = $this->getRequest(); $submissionModel = new Core_Model_Submit(); $conference = Zend_Registry::get('conference'); // No post; display form if (!$request->isPost()) { $this->view->importForm = $this->_presentationModel->getForm('submitImport')->setDefaults(array('status' => 1, 'submit_start' => $conference['submit_start']->get('dd/MM/yyyy'), 'submit_end' => $conference['submit_end']->get('dd/MM/yyyy'))); return $this->render('formImport'); } if ($import = $this->_presentationModel->linkSubmissions($submissionModel->getAcceptedSubmissions($request->getPost()), $request->getPost())) { $this->_helper->flashMessenger('Succesfully imported ' . count($import) . ' submissions'); $eventlogModel = new Core_Model_Eventlog(); $eventlogModel->saveEventlog(array('event_type' => __METHOD__, 'timestamp' => 'now()')); } else { $this->_helper->flashMessenger('No submissions to import'); } // everything went OK, redirect return $this->_helper->redirector->gotoRoute(array('controller' => 'presentation', 'action' => 'list'), 'grid'); }
/** * Create a new review * */ public function newAction() { $request = $this->getRequest(); // No post; display form if (!$request->isPost()) { $submitModel = new Core_Model_Submit(); $this->view->submission = $submitModel->getAllSubmissionDataById($request->getParam('id')); return $this->displayForm(); } // try to persist data if ($this->_reviewModel->saveReview($request->getPost()) === false) { return $this->displayForm(); } // everything went OK, redirect to list action $this->_helper->flashMessenger('Thank you for your review'); return $this->_helper->redirector->gotoRoute(array('controller' => 'submit', 'action' => 'list'), 'grid'); }