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

Copy request watchers when forking a compound ACE request

parent d091d59d
No related branches found
No related tags found
No related merge requests found
......@@ -111,6 +111,8 @@ class Courses_ApprovalActionForkAceModel extends Requests_ApprovalActionModel
$newCourses = new Unl_Model_Collection('Courses_CourseModel');
$newRequests = new Unl_Model_Collection('Requests_RequestModel');
$childParentRequestMap = array();
foreach ($requests as $request) {
// check to see what each of the new request types will be
......@@ -157,6 +159,7 @@ class Courses_ApprovalActionForkAceModel extends Requests_ApprovalActionModel
// create the new request to contain only the ACE data.
$newRequest = clone $request;
$childParentRequestMap[] = array('child' => $newRequest, 'parent' => $request);
if ($addAce) {
$newRequest->setType('AddACEToCourse');
} else {
......@@ -184,6 +187,19 @@ class Courses_ApprovalActionForkAceModel extends Requests_ApprovalActionModel
Courses_CourseModel::save($newCourses);
// Copy the watchers from the parent requests to the child requests
$db = Zend_Registry::get('db');
foreach ($childParentRequestMap as $childParentRequests) {
$parent = $childParentRequests['parent'];
$child = $childParentRequests['child'];
$sql = 'INSERT INTO creqRequestWatchers (request, watchingApprovalRole) '
. $db->quoteInto('SELECT ?, watchingApprovalRole ', $child->getId())
. 'FROM creqRequestWatchers AS w '
. $db->quoteInto('WHERE w.request=? ', $parent->getId());
;
$db->query($sql);
}
// all done... advance all requests and return them for consideration
$allRequests = $requests->merge($newRequests);
Requests_ApprovalChainModel::advance($requests);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment