[Fusionforge-commits] FusionForge branch master updated. v6.0.5-1901-g53c2915

Franck Villaume nerville at libremir.placard.fr.eu.org
Sun Jun 4 19:01:53 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  53c2915714915decb558928365455708698c7521 (commit)
      from  1c851724c48c51f0c655ff0e4cc98b00bcc59ebf (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=53c2915714915decb558928365455708698c7521

commit 53c2915714915decb558928365455708698c7521
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Sun Jun 4 19:01:32 2017 +0200

    forge cli: more import functions

diff --git a/src/bin/forge b/src/bin/forge
index 8aa8e86..a612c42 100755
--- a/src/bin/forge
+++ b/src/bin/forge
@@ -638,9 +638,19 @@ class CliActions {
 										$ndocObject = document_get_object($ndocid);
 										foreach ($stream_file['associatedToArray'] as $associatedToElement) {
 											if (isset($associatedToElement['Artifact']) && forge_get_config('use_tracker') && $new_group->usesTracker()) {
-												//TODO: compute it!
+												foreach ($associatedToElement['Artifact'] as $refatid) {
+													foreach ($refatid as $refaid) {
+														$nrefaid = $this->getMappingId($refaid, 'artifact');
+														$nrefartf = artifact_get_object($nrefaid);
+														if (!$ndocObject->addAssociationTo($nrefartf)) {
+															echo $ndocObject->getErrorMessage()."\n";
+															db_rollback();
+															return false;
+														}
+													}
+												}
 											}
-											if (isset($associatedToElement['Document'][$stream['setup']['data_array']['group_id']]) && forge_get_config('use_docman') && $new_group->usesTracker() && is_array($associatedToElement['Document'][$stream['setup']['data_array']['group_id']])) {
+											if (isset($associatedToElement['Document'][$stream['setup']['data_array']['group_id']]) && $new_group->usesTracker() && is_array($associatedToElement['Document'][$stream['setup']['data_array']['group_id']])) {
 												foreach ($associatedToElement['Document'][$stream['setup']['data_array']['group_id']] as $refdocid) {
 													$nrefdocid = $this->getMappingId($refdocid, 'document');
 													$nrefdocObject = document_get_object($nrefdocid);
@@ -660,6 +670,47 @@ class CliActions {
 							}
 						}
 					}
+					if (forge_get_config('use_tracker') && isset($stream['trackers']) && is_array($stream['trackers']) {
+						foreach ($stream['trackers'] as $stream_tracker) {
+							if (isset($stream_tracker['data']) && is_array($stream_tracker['data'])) {
+								foreach ($stream_tracker['data'] as $stream_artifact) {
+									if (isset($stream_artifact['associatedToArray']) && is_array($stream_artifact['associatedToArray'])) {
+										$nartfid = $this->getMappingId($stream_artifact['data_array']['artifact_id'], 'artifact');
+										$nartfObject = artifact_get_object($nartfid);
+										foreach ($stream_file['associatedToArray'] as $associatedToElement) {
+											if (isset($associatedToElement['Artifact']) && $new_group->usesTracker()) {
+												foreach ($associatedToElement['Artifact'] as $refatid) {
+													foreach ($refatid as $refaid) {
+														$nrefaid = $this->getMappingId($refaid, 'artifact');
+														$nrefartf = artifact_get_object($nrefaid);
+														if (!$nartfObject->addAssociationTo($nrefartf)) {
+															echo $nartfObject->getErrorMessage()."\n";
+															db_rollback();
+															return false;
+														}
+													}
+												}
+											}
+											if (isset($associatedToElement['Document'][$stream['setup']['data_array']['group_id']]) && forge_get_config('use_docman') && $new_group->usesTracker() && is_array($associatedToElement['Document'][$stream['setup']['data_array']['group_id']])) {
+												foreach ($associatedToElement['Document'][$stream['setup']['data_array']['group_id']] as $refdocid) {
+													$nrefdocid = $this->getMappingId($refdocid, 'document');
+													$nrefdocObject = document_get_object($nrefdocid);
+													if (!$nartfObject->addAssociationTo($nrefdocObject)) {
+														echo $nartfObject->getErrorMessage()."\n";
+														db_rollback();
+														return false;
+													}
+												}
+											}
+											if (isset($associatedToElement['FRSRelease']) && forge_get_config('use_frs') && $new_group->usesFRS() && is_array($associatedToElement['FRSRelease'])) {
+												//TODO: compute it!
+											}
+										}
+									}
+								}
+							}
+						}
+					}
 				}
 				//setup homepage
 				if (isset($stream['setup']['homepage'])) {
@@ -910,6 +961,16 @@ class CliActions {
 		return $surveyDump;
 	}
 
+	function surveyImport($file, $format = 'json') {
+		global $importRefMapping;
+		$stream = $this->loadFile($file, $format);
+		if (!$stream) {
+			return false;
+		}
+		echo _('surveyImport to be implemented');
+		return true;
+	}
+
 	function forumDump($fid, $format = 'json') {
 		$forumDump['id'] = $fid;
 		$forum = forum_get_object($fid);
@@ -924,6 +985,16 @@ class CliActions {
 		return $forumDump;
 	}
 
+	function forumImport($file, $format = 'json') {
+		global $importRefMapping;
+		$stream = $this->loadFile($file, $format);
+		if (!$stream) {
+			return false;
+		}
+		echo _('forumImport to be implemented');
+		return true;
+	}
+
 	function trackerDump($atid, $format = 'json') {
 		$trackerDump['id'] = $atid;
 		$at = artifactType_get_object($atid);
@@ -1130,9 +1201,10 @@ class CliActions {
 				$importData['nopermcheck'] = true;
 				$importData['nonotice'] = true;
 				$importData['time'] = $version['createdate'];
+				$description = $this->parseStringForReference($version['description']);
 				if ($firstversion == true) {
 					$d = new Document($group);
-					if (!$d->create($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $version['description'], $stream['data_array']['stateid'], $version['vcomment'], $importData)) {
+					if (!$d->create($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $description, $stream['data_array']['stateid'], $version['vcomment'], $importData)) {
 						echo $version['filename'].':'.$d->getErrorMessage()."\n";
 						db_rollback();
 						return false;
@@ -1140,7 +1212,7 @@ class CliActions {
 						$firstversion = false;
 					}
 				} else {
-					if (!$d->update($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $version['description'], $stream['data_array']['stateid'], 0, $version['current_version'], 1, $importData, $version['vcomment'])) {
+					if (!$d->update($version['filename'], $filedatatype, $filedataname, $doc_group_id, $version['title'], $description, $stream['data_array']['stateid'], 0, $version['current_version'], 1, $importData, $version['vcomment'])) {
 						echo $version['filename'].':'.$d->getErrorMessage()."\n";
 						db_rollback();
 						return false;
@@ -1552,6 +1624,16 @@ class CliActions {
 		return $pmDump;
 	}
 
+	function pmImport($file, $format = 'json') {
+		global $importRefMapping;
+		$stream = $this->loadFile($file, $format);
+		if (!$stream) {
+			return false;
+		}
+		echo _('pmImport to be implemented');
+		return true;
+	}
+
 	private function print_result($arrayDump, $format = 'json') {
 		if (in_array($format, array('json', 'raw', 'return'))) {
 			$lformat = $format;

-----------------------------------------------------------------------

Summary of changes:
 src/bin/forge | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 86 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list