[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