Select Git revision
example1.py
Forked from
SOFT Core / SOFT 161 and 162 / Testability Examples
Source project has a limited visibility.
-
Brady James Garvin authoredBrady James Garvin authored
NewController.php 6.28 KiB
<?php
class Courses_NewController extends Creq_Controller_Action
{
public function indexAction()
{
//disable new requests
$this->_helper->getHelper('FlashMessenger')->addMessage(
"If you would like to submit a change please contact your college catalog editor or Nicolette Brenton at 402-472-4030 or brenton@unl.edu."
);
$this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages();
$redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
. '/courses/new/search';
$this->getResponse()->setRedirect($redirectUrl);
}
public function searchAction()
{
//disable new requests
$this->_helper->getHelper('FlashMessenger')->addMessage(
"If you would like to submit a change please contact your college catalog editor or Nicolette Brenton at 402-472-4030 or brenton@unl.edu."
);
$this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages();
/*
$filter = array(
'subject' => array('Alpha', 'StringToUpper'),
'courseNumber' => array('Digits'),
'courseLetter' => array('Alpha', 'StringToUpper'),
'id' => array('Digits')
);
$in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
//if (!$in->id || (!$in->subject || !$in->courseNumber)) {
if (!$in->subject || !$in->courseNumber) {
return;
}
if($in->id){
$course = Courses_CourseModel::find($in->id);
}
else{
$course = Courses_CourseModel::findByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
}
$activeRequests = Courses_CourseModel::findActiveRequestByCourseCode($course->getSubject(), $course->getCourseNumber(), $course->getCourseLetter());
if (count($activeRequests) > 0) {
$render = 'conflict';
} else if ($course) {
$render = 'found';
if ($in->subject != $course->getSubject()) {
$this->view->crosslisting = true;
} else {
$this->view->crosslisting = false;
}
$this->view->course = $course;
} else {
$render = 'create';
}
$user = Auth_UserModel::findCurrentUser();
$groups = Auth_GroupModel::findByUser($user);
$this->view->isAdmin = false;
foreach ($groups as $group) {
if ($group->getName() != 'root') {
continue;
}
$this->view->isAdmin = true;
}
$this->view->subject = $course->getSubject();
$this->view->courseLetter = $course->getCourseLetter();
$this->view->courseNumber = $course->getCourseNumber;
$this->view->activeRequests = $activeRequests;
if ($course instanceof Courses_CourseModel) {
$this->view->isAce = $course->isAce();
$this->view->isUndergrad = $course->isUndergraduateLevel();
$this->view->isGrad = $course->isGraduateLevel();
}
$this->render($render);
*/
}
public function searchPostAction()
{
$this->redirect('/courses/new');
$filter = array(
'subject' => array('Alpha', 'StringToUpper'),
'courseNumber' => array('Digits'),
'courseLetter' => array('Alpha', 'StringToUpper')
);
$in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
$redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
. '/courses/new/search';
if ($in->subject) {
$redirectUrl .= '/subject/' . $in->subject;
}
if ($in->courseNumber) {
$redirectUrl .= '/courseNumber/' . $in->courseNumber;
}
if ($in->courseLetter) {
$redirectUrl .= '/courseLetter/' . $in->courseLetter;
}
$this->getResponse()->setRedirect($redirectUrl);
}
public function createAction()
{
$this->redirect('/courses/new');
$filter = array(
'type' => array('StringTrim'),
'subject' => array('Alpha', 'StringToUpper'),
'courseNumber' => array('Digits'),
'courseLetter' => array('Alpha', 'StringToUpper')
);
$in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
$user = Auth_UserModel::findCurrentUser();
$userRoles = Auth_GroupModel::findByUser($user);
if ($in->type == 'AdminEdit' && !in_array(1, $userRoles->getId())) {
throw new Exception('Only administrators are allowed to create Admin Edits!');
}
$request = Requests_RequestModel::fetchNew();
$request->setType($in->type);
$request->setModule('courses');
$user = Auth_UserModel::findCurrentUser();
$request->setOwner($user);
$parentCourse = Courses_CourseModel::findByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
if ($parentCourse) {
$course = clone $parentCourse;
if ($request->getType() == 'AdminEdit') {
if ($in->fork == 'yes') {
$course->setCourseId(NULL);
}
if ($in->remove == 'yes') {
$course->setRemoved();
}
}
} else {
$course = Courses_CourseModel::fetchNew();
$course->setCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
}
if (in_array($request->getType(), array('RemoveCourse'))) {
$course->setRemoved();
}
if (in_array($request->getType(), array('RemoveACEFromCourse', 'RemoveACEAndChangeCourse'))) {
$course->removeAce();
}
if (in_array($request->getType(), array('ChangeCourse', 'AddACEAndChangeCourse', 'RemoveACEAndChangeCourse', 'SeparateGrad', 'RecertifyACEAndChangeCourse', 'ChangeACEAndChangeCourse'))) {
$course->setDfRemoval(TRUE);
}
$course->setEffectiveSemester(Creq_Terms::getNextTermCode());
$id = bin2hex(openssl_random_pseudo_bytes('16'));
$session = new Zend_Session_Namespace('Edit Request ' . $id);
$session->parentCourse = $parentCourse;
$session->course = $course;
$session->request = $request;
unset($session->currentSavedRequestId);
$this->_redirect('/courses/edit/index/id/' . $id);
}
}