From bb24e5d376a3a75a0f2b92e72e00f733ca53a643 Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Tue, 1 Jul 2008 16:36:48 +0000 Subject: [PATCH] Raw dump of courses in iACE Committee now available at /iace in tab separated values format --- .../iace/controllers/IndexController.php | 87 +++++++++++++++++++ .../requests/models/ApprovalRoleModel.php | 33 ++++++- library/Unl/Controller/Action.php | 9 +- 3 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 application/modules/iace/controllers/IndexController.php diff --git a/application/modules/iace/controllers/IndexController.php b/application/modules/iace/controllers/IndexController.php new file mode 100644 index 00000000..813ea30c --- /dev/null +++ b/application/modules/iace/controllers/IndexController.php @@ -0,0 +1,87 @@ +<?php + +class Iace_IndexController extends App_Controller_Action +{ + + public function indexAction() + { + $this->_disableLayoutAndView(); + + $iAceRole = Requests_ApprovalRoleModel::find(114); + $requests = Requests_RequestModel::findByWatchingRole($iAceRole); + $proposedCourses = Courses_CourseModel::findLatestOfRequest($requests); + $parentCourses = Courses_CourseModel::findParentOfRequest($requests); + echo '' + . 'Course Code' . "\t" + . 'Title' . "\t" + . 'Crosslistings' . "\t" + . 'Activities' . "\t" + . 'Credits' . "\t" + . 'Grading Type' . "\t" + . 'DF Removal' . "\t" + . 'Campuses' . "\t" + . 'DelivelyMethods' . "\t" + . 'Terms Offered' . "\t" + . 'Effective Semester' . "\t" + . 'Prerequisite' . "\t" + . 'Notes' . "\t" + . 'Description' . "\t" + . 'Grad Credits' . "\t" + . 'Grad Notes' . "\t" + . 'Grad Prerequisites' . "\t" + . 'Request Type' . "\t" + . 'Justification' . "\t" + . 'ACE Outcomes' . "\t" + . 'ACE Reinforcements' . "\t" + . "\n"; + foreach ($requests as $request) { + $parentCourse = $parentCourses[$request->getId()]; + $proposedCourse = $proposedCourses[$request->getId()]; + $course = $proposedCourse; + + $gradTieIn = $course->getGradTieIn(); + $aceOutcomes = $course->getAceOutcomes(); + $aceOutcomeText = ''; + foreach ($aceOutcomes as $aceOutcome) { + $aceOutcomeText .= $aceOutcome['name'] . ':' + . $aceOutcome['justification'] . ':' + . $aceOutcome['studentWork'] . ':' + . $aceOutcome['assesmentPlan'] . ';'; + } + $aceOutcomeText = strtr($aceOutcomeText, array("\n" => ' ', "\r" => ' ', "\t" => ' ')); + + $aceReinforcements = $course->getAceReinforcements(); + $aceReinforcementText = ''; + foreach ($aceReinforcements as $aceReinforcement) { + $aceReinforcementText .= $aceReinforcement['name'] . ':' + . $aceReinforcement['description'] . ';'; + } + $aceReinforcementText = strtr($aceReinforcementText, array("\n" => ' ', "\r" => ' ', "\t" => ' ')); + + echo '' + . $course->getCourseCode() . "\t" + . $course->getTitle() . "\t" + . $course->getCrosslistingsText() . "\t" + . $course->getActivityText() . "\t" + . $course->getCreditsText() . "\t" + . $course->getGradingType() . "\t" + . $course->getDfRemoval() . "\t" + . implode(', ', $course->getCampuses()) . "\t" + . implode(', ', $course->getDeliveryMethods()) . "\t" + . implode(', ', $course->getTermsOffered()) . "\t" + . $course->getEffectiveSemester() . "\t" + . $course->getPrerequisite() . "\t" + . $course->getNotes() . "\t" + . $course->getDescription() . "\t" + . $gradTieIn['credits'] . "\t" + . $gradTieIn['notes'] . "\t" + . $gradTieIn['prerequisites'] . "\t" + . $request->getType() . "\t" + . $request->getJustification() . "\t" + . $aceOutcomeText . "\t" + . $aceReinforcementText . "\t" + . "\n"; + } + } + +} \ No newline at end of file diff --git a/application/modules/requests/models/ApprovalRoleModel.php b/application/modules/requests/models/ApprovalRoleModel.php index 80ab878d..6d2702fd 100644 --- a/application/modules/requests/models/ApprovalRoleModel.php +++ b/application/modules/requests/models/ApprovalRoleModel.php @@ -2,7 +2,38 @@ class Requests_ApprovalRoleModel extends Unl_Model { - + + static public function find($id) + { + $db = Zend_Registry::get('db'); + $select = new Zend_Db_Select($db); + + $select->from(array('r' => 'creqApprovalBodyRoles')); + + if (Unl_Util::isArray($id)) { + if (count($id) == 0) { + return new Unl_Model_Collection(__CLASS__); + } + $select->where('approvalBodyRoleId IN(?)', $id); + } else { + $select->where('approvalBodyRoleId = ?', $id); + } + $records = $select->query()->fetchAll(); + $objects = new Unl_Model_Collection(__CLASS__); + foreach ($records as $record) { + $object = Unl_Model_Registry::getInstance()->getOrAdd(new self($record)); + $objects[$object->getId()] = $object; + } + + // if we were passed an array of users, return an array for each user + if (Unl_Util::isArray($id)) { + return $objects; + // otherwise, return an array of groups for the single user we were passed + } else { + return $objects[$id]; + } + } + static public function findByUser($user) { $db = Zend_Registry::get('db'); diff --git a/library/Unl/Controller/Action.php b/library/Unl/Controller/Action.php index 7ff65886..5508ba80 100644 --- a/library/Unl/Controller/Action.php +++ b/library/Unl/Controller/Action.php @@ -18,10 +18,15 @@ class Unl_Controller_Action extends Zend_Controller_Action protected function _redirect($appUrl, $code = 302) { - $this->_helper->layout->disableLayout(); - $this->getFrontController()->setParam('noViewRenderer', true); + $this->_disableLayoutAndView(); $redirectUrl = $this->getFrontController()->getBaseUrl() . $appUrl; $this->getResponse()->setRedirect($redirectUrl, $code); } + + protected function _disableLayoutAndView() + { + $this->_helper->layout->disableLayout(); + $this->getFrontController()->setParam('noViewRenderer', true); + } } -- GitLab