public function checkCode() { Helpers::normalizeCode($this->code); if (!($this->exercise = Exercise::model()->findByAttributes(array('code' => trim($this->code))))) { $this->addError('code', Yii::t('swu', 'The code you entered does not exist.')); } }
public function sendCodes($controller) { if (!($student = Student::model()->findByAttributes(array('email' => $this->email)))) { return false; } $exercises = Exercise::model()->with('assignment')->sortByDuedate()->findAllByAttributes(array('student_id' => $student->id)); foreach ($exercises as $exercise) { $exercise->link = Yii::app()->controller->createAbsoluteSslUrl('exercise/info', array('k' => $exercise->generateAckKey())); } $options = array(); if (Helpers::getYiiParam('addOriginatingIP')) { $options['originating_IP'] = sprintf('[%s]', Yii::app()->request->userHostAddress); } return MailTemplate::model()->mailFromTemplate('send_codes', array($student->email => $student->name), array('student' => $student, 'exercises' => $exercises), $options); }
public function checkCode() { if ($this->getError('verifyCode')) { return; // we don't provide any information about the code if the captcha is not valid } Helpers::normalizeCode($this->code); if ($this->exercise = Exercise::model()->findByAttributes(array('code' => trim($this->code)))) { if (!$this->byteacher and $this->exercise->duedate < date('Y-m-d H:m:s', time() - $this->exercise->assignment->grace * 24 * 60 * 60)) { $this->addError('code', Yii::t('swu', 'The code provided is not valid anymore (time expired on %date%).', array('%date%' => $this->exercise->duedate))); return; } } elseif ($this->code) { $this->addError('code', Yii::t('swu', 'The code provided is not valid.')); return; } }
public function removeExercises($ids) { $result = array('removed' => array(), 'left' => array()); $exercises = Exercise::model()->ofAssignment($this->id)->forStudents($ids)->with('files')->findAll(); foreach ($exercises as $exercise) { $id = $exercise->id; if ($exercise && sizeof($exercise->files) > 0) { $result['left'][] = $id; continue; // we won't delete exercises when files are uploaded } try { $exercise->delete(); $result['removed'][] = $id; } catch (Exception $e) { $result['left'][] = $id; // this should never happen } } return $result; }
public function loadModelByCode($code) { return $model = Exercise::model()->findByAttributes(array('code' => $code)); }
public function getExercises() { return Exercise::model()->forStudent($this->id)->with('assignment')->findAll(); }