public function execute(CommandContext $context) { $term = new Term(Term::getSelectedTerm()); $term->setDocusignTemplate($context->get('template')); $term->setDocusignUnder18Template($context->get('under18_template')); $term->save(); $cmd = CommandFactory::getCommand('ShowEditTerm'); $cmd->redirect(); }
public function execute(CommandContext $context) { if (!UserStatus::isAdmin() || !Current_User::allow('hms', 'banner_queue')) { PHPWS_Core::initModClass('hms', 'exception/PermissionException.php'); throw new PermissionException('You do not have permission to enable/disable the Banner queue.'); } if (is_null($this->term)) { $this->term = $context->get('term'); } $term = $this->term; if (is_null($term)) { throw new InvalidArgumentException('No term was specified to DisableBannerQueue'); } $term = new Term($term); if (!$term->getBannerQueue()) { NQ::Simple('hms', hms\NotificationView::ERROR, 'The Banner Queue is not enabled for ' . Term::toString($term->term) . '.'); } else { if ($term->getQueueCount() < 1) { NQ::Simple('hms', hms\NotificationView::WARNING, 'The Banner Queue was already empty for ' . Term::toString($term->term) . '.'); $term->setBannerQueue(FALSE); $term->save(); NQ::Simple('hms', hms\NotificationView::SUCCESS, 'Banner Queue has been disabled for ' . Term::toString($term->term) . '.'); } else { PHPWS_Core::initModClass('hms', 'BannerQueue.php'); $result = BannerQueue::processAll($term->term); if ($result === TRUE) { NQ::Simple('hms', hms\NotificationView::SUCCESS, 'Banner Queue has been processed for ' . Term::toString($term->term) . '.'); $term->setBannerQueue(FALSE); $term->save(); NQ::Simple('hms', hms\NotificationView::SUCCESS, 'Banner Queue has been disabled for ' . Term::toString($term->term) . '.'); } else { // TODO: This is just awful. $text = 'The following failures occurred reporting to Banner:<br /><br /><ul>'; foreach ($result as $error) { $text .= "<li>{$error['username']}: ({$error['code']}) - {$error['message']}</li>"; } $text .= '</ul>The queue was not disabled.'; NQ::Simple('hms', hms\NotificationView::ERROR, $text); } } } $cmd = CommandFactory::getCommand('ShowEditTerm'); $cmd->redirect(); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Term(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Term'])) { $model->attributes = $_POST['Term']; if ($model->save()) { $this->redirect(array('admin')); } } $cs = Yii::app()->getClientScript(); $js = $this->generateJs(); $cs->registerScript('term_', $js, CClientScript::POS_READY); $this->render('create', array('model' => $model, 'listData' => array(0 => '-- Chọn cấp cha --'))); }
public function execute(CommandContext $context) { if (!UserStatus::isAdmin() || !Current_User::allow('hms', 'banner_queue')) { PHPWS_Core::initModClass('hms', 'exception/PermissionException.php'); throw new PermissionException('You do not have permission to enable/disable the Banner queue.'); } if (is_null($this->term)) { $this->term = $context->get('term'); } $term = $this->term; if (is_null($term)) { throw new InvalidArgumentException('No term was specified to DisableBannerQueue'); } $term = new Term($term); $term->setBannerQueue(TRUE); $term->save(); NQ::Simple('hms', hms\NotificationView::SUCCESS, 'Banner Queue has been enabled for ' . Term::toString($term->term) . '.'); CommandContext::goBack(); }
/** * Performs the work of inserting or updating the row in the database. * * If the object is new, it inserts it; otherwise an update is performed. * All related objects are also updated in this method. * * @param PropelPDO $con * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. * @throws PropelException * @see save() */ protected function doSave(PropelPDO $con) { $affectedRows = 0; // initialize var to track total num of affected rows if (!$this->alreadyInSave) { $this->alreadyInSave = true; // We call the save method on the following object(s) if they // were passed to this object by their coresponding set // method. This object relates to these object(s) by a // foreign key reference. if ($this->aTerm !== null) { if ($this->aTerm->isModified() || $this->aTerm->isNew()) { $affectedRows += $this->aTerm->save($con); } $this->setTerm($this->aTerm); } if ($this->isNew() || $this->isModified()) { // persist changes if ($this->isNew()) { $this->doInsert($con); } else { $this->doUpdate($con); } $affectedRows += 1; $this->resetModified(); } if ($this->coursesScheduledForDeletion !== null) { if (!$this->coursesScheduledForDeletion->isEmpty()) { CourseQuery::create()->filterByPrimaryKeys($this->coursesScheduledForDeletion->getPrimaryKeys(false))->delete($con); $this->coursesScheduledForDeletion = null; } } if ($this->collCourses !== null) { foreach ($this->collCourses as $referrerFK) { if (!$referrerFK->isDeleted()) { $affectedRows += $referrerFK->save($con); } } } $this->alreadyInSave = false; } return $affectedRows; }
public function addTerm($term_name, $category = false) { if (is_numeric($term_name)) { $term = TermPeer::retrieveByPk($term_name); } else { $slug = sfPropelActAsSluggableBehaviorUtils::stripText(ForgeToolkit::normalizeTag($term_name), '_'); $term = TermPeer::retrieveBySlug($slug); } if (!$term) { $term = new Term(); $term->setTitle(ForgeToolkit::normalizeTag($term_name)); $term->setCategory(false); $term->save(); } try { $rel = new TermRelationship(); $rel->setTerm($term); $rel->setPlugin($this); $rel->save(); } catch (PropelException $e) { // avoid duplicates } }
public function execute(CommandContext $context) { if (!UserStatus::isAdmin() || !Current_User::allow('hms', 'edit_terms')) { PHPWS_Core::initModClass('hms', 'exception/PermissionException.php'); throw new PermissionException('You do not have permission to edit terms.'); } $successCmd = CommandFactory::getCommand('ShowEditTerm'); $errorCmd = CommandFactory::getCommand('ShowCreateTerm'); $year = $context->get('year_drop'); $sem = $context->get('term_drop'); if (!isset($year) || is_null($year) || empty($year)) { NQ::simple('hms', hms\NotificationView::ERROR, 'You must provide a year.'); $errorCmd->redirect(); } if (!isset($sem) || is_null($sem) || empty($sem)) { NQ::simple('hms', hms\NotificationView::ERROR, 'You must provide a semester.'); $errorCmd->redirect(); } // Check to see if the specified term already exists if (!Term::isValidTerm($year . $sem)) { $term = new Term(NULL); $term->setTerm($year . $sem); $term->setBannerQueue(1); try { $term->save(); } catch (DatabaseException $e) { NQ::simple('hms', hms\NotificationView::ERROR, 'There was an error saving the term. Please try again or contact ESS.'); $errorCmd->redirect(); } } else { $term = new Term($year . $sem); // The term already exists, make sure there are no halls for this term $db = new PHPWS_DB('hms_residence_hall'); $db->addWhere('term', $term->getTerm()); $num = $db->count(); if (!is_null($num) && $num > 0) { NQ::simple('hms', hms\NotificationView::ERROR, 'One or more halls already exist for this term, so nothing can be copied.'); $errorCmd->redirect(); } } $text = Term::toString($term->getTerm()); $copy = $context->get('copy_pick'); $copyAssignments = false; $copyRoles = false; // If you want to copy roles and/or assignments // you must also copy the hall structure. if (isset($copy['struct'])) { // Copy hall structure if (isset($copy['assign'])) { // Copy assignments. $copyAssignments = true; } if (isset($copy['role'])) { // Copy roles. $copyRoles = true; } } else { // either $copy == 'nothing', or the view didn't specify... either way, we're done NQ::simple('hms', hms\NotificationView::SUCCESS, "{$text} term created successfully."); $successCmd->redirect(); } # Figure out which term we're copying from, if there isn't one then use the "current" term. $fromTerm = $context->get('from_term'); if (is_null($fromTerm)) { $fromTerm = Term::getCurrentTerm(); } PHPWS_Core::initModClass('hms', 'HMS_Residence_Hall.php'); PHPWS_Core::initModClass('hms', 'HousingApplication.php'); $db = new PHPWS_DB(); try { $db->query('BEGIN'); # Get the halls from the current term $halls = HMS_Residence_Hall::get_halls($fromTerm); set_time_limit(36000); foreach ($halls as $hall) { $hall->copy($term->getTerm(), $copyAssignments, $copyRoles); } $db->query('COMMIT'); } catch (Exception $e) { $db->query('ROLLBACK'); PHPWS_Error::log(print_r($e, true), 'hms'); NQ::simple('hms', hms\NotificationView::ERROR, 'There was an error copying the hall structure and/or assignments. The term was created, but nothing was copied.'); $errorCmd->redirect(); } if ($copyAssignments) { NQ::simple('hms', hms\NotificationView::SUCCESS, "{$text} term created successfully. The hall structure and assignments were copied successfully."); } else { NQ::simple('hms', hms\NotificationView::SUCCESS, "{$text} term created successfully and hall structure copied successfully."); } Term::setSelectedTerm($term->getTerm()); $successCmd->redirect(); }
/** * Update term in database. * The DB needs to be kept two terms ahead * of the current term. */ public static function doTermUpdate() { /* Keep inserting next term until there are currentTerm+3 in DB */ while (self::isTimeToUpdate()) { /* Insert new term adjacent to latest one in DB. */ $db = self::getDb(); $db->addOrder('term desc'); $result = $db->select('row'); // Get first row (Max). /* Just log if it's an error. User can resume their work.*/ if (\PHPWS_Error::logIfError($result)) { return null; } // Be quiet. if (sizeof($result) == 0) { /* If there is nothing in database insert the current Term! */ $term = new Term(); $term->term = self::timeToTerm(time()); $term->save(); } else { $termStr = strval($result['term']); $year = substr($termStr, 0, 4); $semester = substr($termStr, 4, 1); /* Increment semester. This just flips back around to 1 if semester is 4. */ $semester = intval($semester) % 4 + 1; /* If new semester is '1' then it's a new year also! */ if ($semester == 1) { //Increment year. $year = intval($year) + 1; } /* Create new term and save it */ $term = new Term(); $term->term = $year . $semester; $term->save(); } } }