[Fusionforge-commits] FusionForge branch master updated. v6.0.5-1664-gccdff74
Franck Villaume
nerville at libremir.placard.fr.eu.org
Mon Apr 17 17:58:09 CEST 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, master has been updated
via ccdff7430caab06df402a5da49edc1373d406909 (commit)
from f5d85829d967adcfae695ae03f747285539ca01a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=ccdff7430caab06df402a5da49edc1373d406909
commit ccdff7430caab06df402a5da49edc1373d406909
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Apr 17 17:57:21 2017 +0200
forge cli: documentImport: support review import
diff --git a/src/bin/forge b/src/bin/forge
index 0f52906..422b879 100755
--- a/src/bin/forge
+++ b/src/bin/forge
@@ -345,13 +345,16 @@ class CliActions {
}
$group_id = $stream['document']['data_array']['group_id'];
$group = group_get_object($group_id);
+ $importSerialIdRef = array();
if ($group && is_object($group) && !$group->isError() && $group->usesDocman()) {
+ db_begin();
$firstversion = true;
$path = getcwd();
- foreach ($stream['versions'] as $version) {
+ foreach ($stream['versions'] as $key => $version) {
if ($version['filetype'] != 'URL' && $version['storageref'] != null) {
if (!is_file($path.'/'.$version['storageref'])) {
echo _('Invalid file name.')."\n";
+ db_rollback();
return false;
}
$filedataname = $path.'/'.$version['storageref'];
@@ -369,6 +372,7 @@ class CliActions {
$doc_group = documentgroup_get_object_byid($doc_group_id);
if (!$doc_group || !is_object($doc_group) || $doc_group->isError()) {
echo _('Invalid document group (folder)')._(': ').$doc_group_id."\n";
+ db_rollback();
return false;
}
$importData['user'] = $version['created_by'];
@@ -379,19 +383,45 @@ class CliActions {
$d = new Document($group);
if (!$d->create($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $version['description'], $stream['document']['data_array']['stateid'], $version['vcomment'], $importData)) {
echo $d->getErrorMessage()."\n";
+ db_rollback();
return false;
} else {
$firstversion = false;
}
} else {
- if (!$d->update($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $version['description'], $stream['document']['data_array']['stateid'], 0, 0, 1, $importData, $version['vcomment'])) {
+ if (!$d->update($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $version['description'], $stream['document']['data_array']['stateid'], 0, $version['current_version'], 1, $importData, $version['vcomment'])) {
echo $d->getErrorMessage()."\n";
+ db_rollback();
return false;
}
}
- //set default versions
- //add reviews
+ $dv = new DocumentVersion($d, $key + 1);
+ $importSerialIdRef[$version['serial_id']] = $dv->getID();
}
+ if ($d && !$d->isError()) {
+ foreach($stream['reviews'] as $review) {
+ $dr = new DocumentReview($d);
+ $reviewmandatoryusers = array();
+ $reviewoptionalusers = array();
+ foreach($review['users'] as $reviewuser) {
+ if ($reviewuser['typeid'] == 1) {
+ $reviewmandatoryusers[] = $reviewuser['userid'];
+ } elseif ($reviewuser['typeid'] == 2) {
+ $reviewoptionalusers[] = $reviewuser['userid'];
+ }
+ }
+ $importData['user'] = $review['created_by'];
+ $importData['startdate'] = $review['startdate'];
+ $importData['enddate'] = $review['enddate'];
+ $importData['nonotice'] = true;
+ if (!$dr->create($importSerialIdRef[$review['serialid']], $review['title'], $review['description'], $review['enddate'], $reviewmandatoryusers, $reviewoptionalusers, false, $importData)) {
+ echo $dr->getErrorMessage()."\n";
+ db_rollback();
+ return false;
+ }
+ }
+ }
+ db_commit();
} else {
echo _('Unable to get project to inject document')._(': ').$group_id."\n";
}
-----------------------------------------------------------------------
Summary of changes:
src/bin/forge | 38 ++++++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
hooks/post-receive
--
FusionForge
More information about the Fusionforge-commits
mailing list