Skip to content
Snippets Groups Projects
Select Git revision
  • 8e5ccf666ca716cc24e05e704da7319c78e2b3de
  • main default protected
2 results

example1.py

Blame
  • Forked from SOFT Core / SOFT 161 and 162 / Testability Examples
    Source project has a limited visibility.
    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);
    	}
    }