Skip to content
Snippets Groups Projects
NewController.php 3.14 KiB
Newer Older
<?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()
	{
        $subject = $this->getRequest()->getParam('subject');
        $courseNumber = $this->getRequest()->getParam('courseNumber');
        $courseLetter = $this->getRequest()->getParam('courseLetter');
        
        if (!$subject || !$courseNumber) {
        	return;
        }
        
        $course = Courses_CourseModel::findByCourseCode($subject, $courseNumber, $courseLetter);
        $activeRequests = Courses_CourseModel::findActiveRequestByCourseCode($subject, $courseNumber, $courseLetter);
        if ($course) {
        	$render = 'found';
	        if ($subject != $course->getSubject()) {
	            $this->view->crosslisting = true;
	        } else {
	            $this->view->crosslisting = false;
	        }
            $this->view->course = $course;
        } else {
        	$render = 'create';
        }
        
        $this->view->subject = $subject;
        $this->view->courseLetter = $courseLetter;
        $this->view->courseNumber = $courseNumber;
        $this->view->activeRequest = (count($activeRequests) > 0);
        $this->render($render);
	}
	
	public function searchPostAction()
	{
		$subject = $this->getRequest()->getParam('subject');
		$courseNumber = $this->getRequest()->getParam('courseNumber');
		$courseLetter = $this->getRequest()->getParam('courseLetter');
		
	    $redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
                     . '/courses/new/search';
        if ($subject) {
            $redirectUrl .= '/subject/' . $subject;
        }
        if ($courseNumber) {
            $redirectUrl .= '/courseNumber/' . $courseNumber;
        }
        if ($courseLetter) {
            $redirectUrl .= '/courseLetter/' . $courseLetter;
        }
        $this->getResponse()->setRedirect($redirectUrl);
	}
	
	public function createAction()
	{
        $type = $this->getRequest()->getParam('type');
        $subject = $this->getRequest()->getParam('subject');
        $courseNumber = $this->getRequest()->getParam('courseNumber');
        $courseLetter = $this->getRequest()->getParam('courseLetter');
		
        $request = Requests_RequestModel::fetchNew();
        $request->setType($type);
        $request->setModule('courses');
        $request->setOwner(Auth_UserModel::findCurrentUser());
        $parentCourse = Courses_CourseModel::findByCourseCode($subject, $courseNumber, $courseLetter);
        if ($parentCourse) {
        	$course = clone $parentCourse;
        } else {
        	$course = Courses_CourseModel::fetchNew();
        	$course->setCourseCode($subject, $courseNumber, $courseLetter);
        }
        
        $session = new Zend_Session_Namespace('Edit Request');
        $session->parentCourse = $parentCourse;
        $session->course = $course;
        $session->request = $request;
        unset($session->currentSavedRequestId);
        
        $this->_redirect('/courses/edit');
	}
}