Skip to content
Snippets Groups Projects
Commit ac440467 authored by Tim Steiner's avatar Tim Steiner
Browse files

Updates to UCC Approved Requests report page

parent 4b188c32
No related branches found
No related tags found
No related merge requests found
......@@ -11,25 +11,77 @@ class ReportsController extends Nmc_Controller_Action
public function approvedCoursesAction()
{
$in = $this->getRequest();
$year = $in->getParam(0);
$month = $in->getParam(1);
$requests = Requests::getInstance()->fetchAllSorted('state = "approved"', Requests::COMPLETED_REQUESTS_ONLY);
$uccVote = ApprovalActionsAbstract::getInstance()->fetchRow('name = "UCC Vote"');
$view = new Application_View();
$view->page = 'approvedCourses';
if ($year > 2000) {
$date = new Zend_Date();
$date->setYear($year);
$date->setMonth($month);
$date->setDay(1);
$date->setHour(0);
$date->setMinute(0);
$date->setSecond(0);
$startDate = $date;
$endDate = clone $date;
$endDate->addMonth(1);
$endDate->subSecond(1);
$requests = Requests::getInstance()->fetchRequestsInDateRange($startDate, $endDate);
//$requests = Requests::getInstance()->fetchAllSorted('state = "approve"', Requests::COMPLETED_REQUESTS_ONLY);
$uccVote = ApprovalActionsAbstract::getInstance()->fetchRow('name = "UCC Voting"');
$requestData = array();
$requestData['subject'] = array();
$requestData['courseNumber'] = array();
$requestData['courseLetter'] = array();
$requestData['counter'] = array();
$requestData['request'] = array();
$i = 0;
foreach ($requests as $index => $request) {
$course = $request->getCourseGeneration();
$originalCourse = $course->getParentGeneration(true);
if (!$originalCourse) {
$originalCourse = $course;
}
foreach ($requests as $request) {
$votes = ApproverVotes::getInstance()->fetchByRequestAndAction(
$request,
$uccVote
);
$requestData[] = array('request' => $request,
$requestData['subject'][] = $originalCourse->subject;
$requestData['courseNumber'][] = $originalCourse->courseNumber;
$requestData['courseLetter'][] = $originalCourse->courseLetter;
$requestData['counter'][] = $i++;
$requestData['requestData'][] = array('request' => $request,
'voteTally' => $votes->getTally());
}
$view = new Application_View();
$view->page = 'approvedCourses';
$view->requestData = $requestData;
array_multisort($requestData['subject'],
$requestData['courseNumber'],
$requestData['courseLetter'],
$requestData['counter'],
$requestData['requestData']);
$view->requestData = $requestData['requestData'];
$view->tagline = 'Requests Approved In ' . $month . '/' . $year;
}
$out = $this->getResponse();
$out->setBody($view->render('unlModernWrapper.xhtml'));
......
......@@ -141,6 +141,26 @@ class Requests extends Nmc_Db_Table
return $this->findAll($requestIds);
}
public function fetchRequestsInDateRange(Zend_Date $startDate, Zend_Date $endDate)
{
$db = $this->getAdapter();
$select = new Zend_Db_Select($db);
$select->from(ApproverVotes::getInstance()->getTableName(), 'request');
$select->where($db->quoteInto('time >= ?', $startDate->toValue()));
$select->where($db->quoteInto('time <= ?', $endDate->toValue()));
$select->group('request');
$rows = $select->query()->fetchAll();
$requestIds = array(-1);
foreach($rows as $row) {
$requestIds[] = $row['request'];
}
$where = $db->quoteInto('requestId IN (?)', $requestIds);
return $this->fetchAllSorted($where, self::COMPLETED_REQUESTS_ONLY);
}
}
?>
\ No newline at end of file
<?php if (!$this->requestData) { ?>
<h2>Select a month to report on.</h2>
<ul>
<?php
$now = new Zend_Date();
$endYear = $now->get(Zend_Date::YEAR);
$endMonth = $now->get(Zend_Date::MONTH);
$month = 9;
$year = 2007;
while ($year < $endYear || $month < $endMonth) {
?>
<li>
<a href="/Reports/ApprovedCourses/<?php echo $year; ?>/<?php echo $month; ?>">
<?php echo $month; ?>/<?php echo $year; ?>
</a>
</li>
<?php
$month++;
if ($month > 12) {
$month = 1;
$year++;
}
}
?>
</ul>
<?php } else {
foreach ($this->requestData as $requestDatum) {
$request = $requestDatum['request'];
$voteTally = $requestDatum['voteTally'];
$course = $request->getCourseGeneration();
?>
<div class="request clear">
<h2>Request Type: <?php echo $request->type->name; ?></h2>
<h2>Effective Semester: <?php echo $course->effectiveSemester; ?></h2>
<?php
//$newCourse = $request->course;
$course = $request->getCourseGeneration();
if ($request->type->name == 'ChangeCourse') {
$newCourse = $course;
$oldCourse = $course->getParentGeneration(true);
......@@ -21,6 +66,12 @@ foreach ($this->requestData as $requestDatum) {
<h2>Current</h2>
<?php echo $this->bulletinEntryDiff($oldCourse, $newCourse, $request); ?>
</div>
<?php
} else if ($request->type->name == 'RemoveCourse') {
?>
<div class="removedCourse">
<?php echo $this->bulletinEntry($course->getParentGeneration(true)); ?>
</div>
<?php
} else {
?>
......@@ -41,7 +92,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="syllabus">
<h2>Syllabus:</h2>
<a href="/Request/GetFile/<?php echo $syllabus->file; ?>">
<?php echo $syllabus->title; ?>
<?php echo htmlentities($syllabus->title, null, 'utf8'); ?>
</a>
</div>
<?php } ?>
......@@ -54,7 +105,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="crosslistMemo">
<h2>Crosslist Memo</h2>
<a href="/Request/GetFile/<?php echo $crosslistMemo->file; ?>">
<?php echo $crosslistMemo->title; ?>
<?php echo htmlentities($crosslistMemo->title, null, 'utf8'); ?>
</a>
</div>
<?php } ?>
......@@ -67,7 +118,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="isNarrative">
<h2>IS Narrative</h2>
<a href="/Request/GetFile/<?php echo $ISNarrative->file; ?>">
<?php echo $ISNarrative->title; ?>
<?php echo htmlentities($ISNarrative->title, null, 'utf8'); ?>
</a>
</div>
<?php } ?>
......@@ -80,7 +131,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="additionalDocumentation">
<h2>Additional Documentation</h2>
<a href="/Request/GetFile/<?php echo $additionalDocumentation->file; ?>">
<?php echo $additionalDocumentation->title; ?>
<?php echo htmlentities($additionalDocumentation->title, null, 'utf8'); ?>
</a>
</div>
<?php } ?>
......@@ -94,3 +145,4 @@ foreach ($this->requestData as $requestDatum) {
</div>
<?php
}
}
\ No newline at end of file
......@@ -31,6 +31,11 @@
padding-left: 5px;
}
.removedCourse {
color: #c00;
text-decoration: line-through;
}
#container #maincontent #creqMain div.request {
border-bottom: 3px dotted #a00;
margin-bottom: 10px;
......@@ -40,10 +45,12 @@ div.bulletinEntry {
border: 2px solid #888;
background-color: #ddd;
margin-bottom: 2px;
padding: 2px;
}
div.justification {
#container #maincontent #creqMain div.justification {
border: 2px solid #ccc;
padding: 2px;
}
#container div.justification h2 {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment