mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 09:35:00 +00:00
import workflow log
This commit is contained in:
parent
409fd62f11
commit
491e5e8f23
|
@ -67,6 +67,34 @@ function getRevAppLog($reviews) { /* {{{ */
|
|||
return $newreviews;
|
||||
} /* }}} */
|
||||
|
||||
function getWorkflowLog($workflowlogs) { /* {{{ */
|
||||
global $logger, $dms, $objmap;
|
||||
|
||||
$newlogs = array();
|
||||
foreach($workflowlogs as $i=>$log) {
|
||||
if(!array_key_exists($log['attributes']['user'], $objmap['users'])) {
|
||||
unset($initversion['workflowlogs'][$i]);
|
||||
$logger->warning("User for workflow log cannot be mapped");
|
||||
} else {
|
||||
$log['attributes']['user'] = $dms->getUser($objmap['users'][$log['attributes']['user']]);
|
||||
if(!array_key_exists($log['attributes']['workflow'], $objmap['workflows'])) {
|
||||
unset($initversion['workflowlogs'][$i]);
|
||||
$logger->warning("Workflow for workflow log cannot be mapped");
|
||||
} else {
|
||||
$log['attributes']['workflow'] = $dms->getWorkflow($objmap['workflows'][$log['attributes']['workflow']]);
|
||||
if(!array_key_exists($log['attributes']['transition'], $objmap['workflowtransitions'])) {
|
||||
unset($initversion['workflowlogs'][$i]);
|
||||
$logger->warning("Workflow transition for workflow log cannot be mapped");
|
||||
} else {
|
||||
$log['attributes']['transition'] = $dms->getWorkflowTransition($objmap['workflowtransitions'][$log['attributes']['transition']]);
|
||||
$newlogs[] = $log['attributes'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $newlogs;
|
||||
} /* }}} */
|
||||
|
||||
function insert_user($user) { /* {{{ */
|
||||
global $logger, $dms, $debug, $sections, $defaultUser, $objmap;
|
||||
|
||||
|
@ -302,10 +330,12 @@ function insert_workflow($workflow) { /* {{{ */
|
|||
}
|
||||
}
|
||||
}
|
||||
if(!$newWorkflow->addTransition($state, $action, $nextstate, $tusers, $tgroups)) {
|
||||
if(!($newWorkflowTransition = $newWorkflow->addTransition($state, $action, $nextstate, $tusers, $tgroups))) {
|
||||
$logger->err("Could not add workflow because transition could not be added");
|
||||
return false;
|
||||
}
|
||||
if($newWorkflowTransition)
|
||||
$objmap['workflowtransitions'][$transition['id']] = $newWorkflowTransition->getID();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -460,8 +490,6 @@ function insert_document($document) { /* {{{ */
|
|||
$logger->warning("Workflowstate ".$initversion['workflow']['state']." cannot be mapped");
|
||||
}
|
||||
}
|
||||
if($initversion['workflowlogs']) {
|
||||
}
|
||||
|
||||
$version_attributes = array();
|
||||
if(isset($initversion['user_attributes'])) {
|
||||
|
@ -552,6 +580,15 @@ function insert_document($document) { /* {{{ */
|
|||
$newVersion->rewriteApprovalLog($newapprovals);
|
||||
}
|
||||
|
||||
if($initversion['workflowlogs']) {
|
||||
$newworkflowlogs = getWorkflowLog($initversion['workflowlogs']);
|
||||
if(!$newVersion->rewriteWorkflowLog($newworkflowlogs)) {
|
||||
$logger->err("Could not rewrite workflow log of version '".$newVersion->getVersion()."' of document '".$newDocument->getName()."'");
|
||||
$logger->debug($dms->getDB()->getErrorMsg());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$newDocument->setDate(dateToTimestamp($document['attributes']['date']));
|
||||
$newDocument->setDefaultAccess($document['attributes']['defaultaccess']);
|
||||
$newDocument->setInheritAccess($document['attributes']['inheritaccess']);
|
||||
|
@ -656,6 +693,7 @@ function insert_document($document) { /* {{{ */
|
|||
|
||||
$logger->info("Added version '".$version['version']."' of document '".$document['attributes']['name']."'");
|
||||
$newVersion = $result->getContent();
|
||||
unlink($filename);
|
||||
if($workflowstate)
|
||||
$newVersion->setWorkflowState($workflowstate);
|
||||
$newVersion->setDate(dateToTimestamp($version['attributes']['date']));
|
||||
|
@ -680,7 +718,14 @@ function insert_document($document) { /* {{{ */
|
|||
$newVersion->rewriteApprovalLog($newapprovals);
|
||||
}
|
||||
|
||||
unlink($filename);
|
||||
if($version['workflowlogs']) {
|
||||
$newworkflowlogs = getWorkflowLog($version['workflowlogs']);
|
||||
if(!$newVersion->rewriteWorkflowLog($newworkflowlogs)) {
|
||||
$logger->err("Could not rewrite workflow log of version '".$newVersion->getVersion()."' of document '".$newDocument->getName()."'");
|
||||
$logger->debug($dms->getDB()->getErrorMsg());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($document['notifications']['users']) && $document['notifications']['users']) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user