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

ApprovalAction that will _finally_ set courses to be official. To be used at the end of a chain.

parent dfa8f1bf
Branches
Tags
No related merge requests found
<?php
require_once 'ApprovalActionRow/Interface.php';
/**
* @foreignKey approvalActionId
* @tableClass ApprovalActionsMakeOfficial
*
*/
class ApprovalActionMakeOfficial extends ApprovalAction
implements Application_ApprovalActionRow_Interface
{
public function _init()
{
parent::_init();
}
public function getResultStatusStrings()
{
return $this->getTable()->getResultStatusStrings();
}
public function consider(Request $request, ApprovalChain $parentChain)
{
// set the current generation to "official" status
$courseGeneration = $request->getCourseGeneration();
$courseGeneration->type = 'official';
$courseGeneration->save();
$parentChain->advance($request);
}
public function updateFromForm($formData)
{
// no user configurable options
//$this->result = $formData['result'];
}
/**
* Let the action know that a user has made a decsion so that the approval
* process may continue.
*
* @param Request $request
* @param User $user
* @param string $decision
*/
public function userMadeDecision(Request $request, User $user, $decision)
{
// does not interact with users.
}
public function getUserDecision(Request $request, User $user)
{
// does not interact with users.
return null;
}
}
\ No newline at end of file
<?php
require_once 'ApprovalActionTable/Interface.php';
class ApprovalActionsMakeOfficial extends Nmc_Db_Table
implements Application_ApprovalActionTable_Interface
{
protected $_primary = 'approvalActionId';
protected $_rowClass = 'ApprovalActionMakeOfficial';
/**
* The one true instance
*
* @var ApprovalActionsMakeOfficial
*/
static protected $_instance;
/**
* Return the one true instance
*
* @return ApprovalActionsMakeOfficial
*/
static public function getInstance($config = array())
{
if (!self::$_instance) {
self::$_instance = new ApprovalActionsMakeOfficial($config);
}
return self::$_instance;
}
public function getActionName()
{
return 'Make Official';
}
public function getResultStatusStrings()
{
return array();
}
public function getEditTemplate()
{
return 'approval_actions/ApprovalActionMakeOfficial.xhtml';
}
public function fetchNew($formData = null)
{
if (!$formData) {
return parent::fetchNew();
}
$new = parent::fetchNew();
$new->className = 'ApprovalActionMakeOfficial';
//$new->result = $formData['result'];
return $new;
}
}
\ No newline at end of file
...@@ -183,6 +183,7 @@ class CourseGenerations extends Nmc_Db_Table ...@@ -183,6 +183,7 @@ class CourseGenerations extends Nmc_Db_Table
$eagerData['db'] = $assetsTable->getAdapter(); $eagerData['db'] = $assetsTable->getAdapter();
$eagerData['table'] = $assetsTable; $eagerData['table'] = $assetsTable;
$eagerData['data'] = array_intersect_key($resultDatum, array_flip($assetsTableInfo['cols'])); $eagerData['data'] = array_intersect_key($resultDatum, array_flip($assetsTableInfo['cols']));
$eagerData['stored'] = true;
$eagerAssetRow = new Asset($eagerData); $eagerAssetRow = new Asset($eagerData);
...@@ -190,6 +191,7 @@ class CourseGenerations extends Nmc_Db_Table ...@@ -190,6 +191,7 @@ class CourseGenerations extends Nmc_Db_Table
$eagerData['db'] = $detailsTable->getAdapter(); $eagerData['db'] = $detailsTable->getAdapter();
$eagerData['table'] = $detailsTable; $eagerData['table'] = $detailsTable;
$eagerData['data'] = array_intersect_key($resultDatum, array_flip($detailsTableInfo['cols'])); $eagerData['data'] = array_intersect_key($resultDatum, array_flip($detailsTableInfo['cols']));
$eagerData['stored'] = true;
$eagerDetailRow = new CourseDetail($eagerData); $eagerDetailRow = new CourseDetail($eagerData);
......
<em>This space intentionally left blank</em>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment