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 <[email protected]>
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
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits