Skip to content
Snippets Groups Projects
Select Git revision
  • c9b0cf47cd310fadb62950a8e8275b670d8b23f7
  • master default
  • disable-new-requests
  • fix-bulletin-view-missing-notes-error
  • add-missing-queue-managers
  • projects-task-53
  • projects-task-51
  • projects-task-43
  • projects-task-24
  • projects-task-31
  • projects-task-32
  • projects-task-8
  • project-setup-docs
  • projects-task-28
  • projects-task-27
  • projects-task-9
  • projects-task-7
  • mass-update-course-codes-in-sections
  • wdn-four
  • learning-outcomes
  • additional-bulletin-pages
  • svn-redesign
  • svn-popups
  • svn-trunk
  • svn-performance
  • svn-tim
26 results

NewController.php

Blame
  • NewController.php 3.73 KiB
    <?php
    
    class Courses_NewController extends App_Controller_Action
    {
    	public function indexAction()
        {
            $redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
                         . '/courses/new/search';
            $this->getResponse()->setRedirect($redirectUrl);
    	}
    
    	public function searchAction()
    	{
            $filter = array(
                'subject'      => array('Alpha', 'StringToUpper'),
                'courseNumber' => array('Digits'),
                'courseLetter' => array('Alpha', 'StringToUpper')
            );
            $in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
    
            if (!$in->subject || !$in->courseNumber) {
            	return;
            }
    
            $course = Courses_CourseModel::findByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            $activeRequests = Courses_CourseModel::findActiveRequestByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            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';
            }
    
            $this->view->subject = $in->subject;
            $this->view->courseLetter = $in->courseLetter;
            $this->view->courseNumber = $in->courseNumber;
            $this->view->activeRequests = $activeRequests;
            $this->view->isAce = $course->isAce();
            $this->render($render);
    	}
    
    	public function searchPostAction()
    	{
            $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()
    	{
            $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());
    
            $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;
            } else {
            	$course = Courses_CourseModel::fetchNew();
            	$course->setCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            }
            
            if (in_array($request->getType(), array('RemoveCourse'))) {
            	$course->setRemoved();
            }
    
            $session = new Zend_Session_Namespace('Edit Request');
            $session->parentCourse = $parentCourse;
            $session->course = $course;
            $session->request = $request;
            unset($session->currentSavedRequestId);
    
            $this->_redirect('/courses/edit');
    	}
    }