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 ...@@ -11,25 +11,77 @@ class ReportsController extends Nmc_Controller_Action
public function approvedCoursesAction() public function approvedCoursesAction()
{ {
$in = $this->getRequest(); $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 = 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( $votes = ApproverVotes::getInstance()->fetchByRequestAndAction(
$request, $request,
$uccVote $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()); '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 = $this->getResponse();
$out->setBody($view->render('unlModernWrapper.xhtml')); $out->setBody($view->render('unlModernWrapper.xhtml'));
......
...@@ -141,6 +141,26 @@ class Requests extends Nmc_Db_Table ...@@ -141,6 +141,26 @@ class Requests extends Nmc_Db_Table
return $this->findAll($requestIds); 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 <?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) { foreach ($this->requestData as $requestDatum) {
$request = $requestDatum['request']; $request = $requestDatum['request'];
$voteTally = $requestDatum['voteTally']; $voteTally = $requestDatum['voteTally'];
$course = $request->getCourseGeneration();
?> ?>
<div class="request clear"> <div class="request clear">
<h2>Request Type: <?php echo $request->type->name; ?></h2> <h2>Request Type: <?php echo $request->type->name; ?></h2>
<h2>Effective Semester: <?php echo $course->effectiveSemester; ?></h2>
<?php <?php
//$newCourse = $request->course;
$course = $request->getCourseGeneration();
if ($request->type->name == 'ChangeCourse') { if ($request->type->name == 'ChangeCourse') {
$newCourse = $course; $newCourse = $course;
$oldCourse = $course->getParentGeneration(true); $oldCourse = $course->getParentGeneration(true);
...@@ -21,6 +66,12 @@ foreach ($this->requestData as $requestDatum) { ...@@ -21,6 +66,12 @@ foreach ($this->requestData as $requestDatum) {
<h2>Current</h2> <h2>Current</h2>
<?php echo $this->bulletinEntryDiff($oldCourse, $newCourse, $request); ?> <?php echo $this->bulletinEntryDiff($oldCourse, $newCourse, $request); ?>
</div> </div>
<?php
} else if ($request->type->name == 'RemoveCourse') {
?>
<div class="removedCourse">
<?php echo $this->bulletinEntry($course->getParentGeneration(true)); ?>
</div>
<?php <?php
} else { } else {
?> ?>
...@@ -41,7 +92,7 @@ foreach ($this->requestData as $requestDatum) { ...@@ -41,7 +92,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="syllabus"> <div id="syllabus">
<h2>Syllabus:</h2> <h2>Syllabus:</h2>
<a href="/Request/GetFile/<?php echo $syllabus->file; ?>"> <a href="/Request/GetFile/<?php echo $syllabus->file; ?>">
<?php echo $syllabus->title; ?> <?php echo htmlentities($syllabus->title, null, 'utf8'); ?>
</a> </a>
</div> </div>
<?php } ?> <?php } ?>
...@@ -54,7 +105,7 @@ foreach ($this->requestData as $requestDatum) { ...@@ -54,7 +105,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="crosslistMemo"> <div id="crosslistMemo">
<h2>Crosslist Memo</h2> <h2>Crosslist Memo</h2>
<a href="/Request/GetFile/<?php echo $crosslistMemo->file; ?>"> <a href="/Request/GetFile/<?php echo $crosslistMemo->file; ?>">
<?php echo $crosslistMemo->title; ?> <?php echo htmlentities($crosslistMemo->title, null, 'utf8'); ?>
</a> </a>
</div> </div>
<?php } ?> <?php } ?>
...@@ -67,7 +118,7 @@ foreach ($this->requestData as $requestDatum) { ...@@ -67,7 +118,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="isNarrative"> <div id="isNarrative">
<h2>IS Narrative</h2> <h2>IS Narrative</h2>
<a href="/Request/GetFile/<?php echo $ISNarrative->file; ?>"> <a href="/Request/GetFile/<?php echo $ISNarrative->file; ?>">
<?php echo $ISNarrative->title; ?> <?php echo htmlentities($ISNarrative->title, null, 'utf8'); ?>
</a> </a>
</div> </div>
<?php } ?> <?php } ?>
...@@ -80,7 +131,7 @@ foreach ($this->requestData as $requestDatum) { ...@@ -80,7 +131,7 @@ foreach ($this->requestData as $requestDatum) {
<div id="additionalDocumentation"> <div id="additionalDocumentation">
<h2>Additional Documentation</h2> <h2>Additional Documentation</h2>
<a href="/Request/GetFile/<?php echo $additionalDocumentation->file; ?>"> <a href="/Request/GetFile/<?php echo $additionalDocumentation->file; ?>">
<?php echo $additionalDocumentation->title; ?> <?php echo htmlentities($additionalDocumentation->title, null, 'utf8'); ?>
</a> </a>
</div> </div>
<?php } ?> <?php } ?>
...@@ -94,3 +145,4 @@ foreach ($this->requestData as $requestDatum) { ...@@ -94,3 +145,4 @@ foreach ($this->requestData as $requestDatum) {
</div> </div>
<?php <?php
} }
}
\ No newline at end of file
...@@ -31,6 +31,11 @@ ...@@ -31,6 +31,11 @@
padding-left: 5px; padding-left: 5px;
} }
.removedCourse {
color: #c00;
text-decoration: line-through;
}
#container #maincontent #creqMain div.request { #container #maincontent #creqMain div.request {
border-bottom: 3px dotted #a00; border-bottom: 3px dotted #a00;
margin-bottom: 10px; margin-bottom: 10px;
...@@ -40,10 +45,12 @@ div.bulletinEntry { ...@@ -40,10 +45,12 @@ div.bulletinEntry {
border: 2px solid #888; border: 2px solid #888;
background-color: #ddd; background-color: #ddd;
margin-bottom: 2px; margin-bottom: 2px;
padding: 2px;
} }
div.justification { #container #maincontent #creqMain div.justification {
border: 2px solid #ccc; border: 2px solid #ccc;
padding: 2px;
} }
#container div.justification h2 { #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