[Fusionforge-commits] r8792 - trunk/gforge/deb-specific

Roland Mas lolando at libremir.placard.fr.eu.org
Wed Feb 10 16:54:02 CET 2010


Author: lolando
Date: 2010-02-10 16:54:02 +0100 (Wed, 10 Feb 2010)
New Revision: 8792

Modified:
   trunk/gforge/deb-specific/db-upgrade.pl
Log:
Added static code to populate tracker workflows

Modified: trunk/gforge/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge/deb-specific/db-upgrade.pl	2010-02-10 15:16:38 UTC (rev 8791)
+++ trunk/gforge/deb-specific/db-upgrade.pl	2010-02-10 15:54:02 UTC (rev 8792)
@@ -2828,10 +2828,86 @@
     &update_with_sql("20090507-add_project_query","4.8.99-3");
     &update_with_sql("20090507-browse_list","4.8.99-4");
 
+    $version = &get_db_version ;
+    $target = "4.8.99-5" ;
+    if (&is_lesser ($version, $target)) {
+	&debug ("Initialising tracker workflows") ;
+
+	
+	$query = "SELECT group_id, artifact_group_list.group_artifact_id, element_id, artifact_extra_field_elements.extra_field_id
+		FROM artifact_extra_field_list, artifact_extra_field_elements, artifact_group_list
+		WHERE artifact_extra_field_list.extra_field_id=artifact_extra_field_elements.extra_field_id
+		AND artifact_group_list.group_artifact_id = artifact_extra_field_list.group_artifact_id
+		AND field_type=7" ;
+	# &debug ($query) ;
+	$sth = $dbh->prepare ($query) ;
+	$sth->execute () ;
+	while (@array = $sth->fetchrow_array) {
+	    my $gid = $array[0];
+	    my $gaid = $array[1];
+	    my $eid = $array[2];
+
+	    my $query2 = "SELECT extra_field_id
+				FROM artifact_extra_field_list 
+				WHERE group_artifact_id=$gaid
+                                AND field_type = 7
+				ORDER BY field_type ASC" ;
+	    my $sth2 = $dbh->prepare ($query2) ;
+	    $sth2->execute () ;
+	    
+	    if (my @array2 = $sth2->fetchrow_array) {
+		my $efid = $array2[0];
+		$sth2->finish () ;
+
+		$query2 = "SELECT element_id,element_name,status_id
+				FROM artifact_extra_field_elements
+				WHERE extra_field_id = $efid
+				ORDER BY element_pos ASC, element_id ASC" ;
+		# debug $query2;
+		$sth2 = $dbh->prepare ($query2) ;
+		$sth2->execute () ;
+		while (@array2 = $sth2->fetchrow_array) {
+		    my $eid2 = $array2[0];
+		    if ($eid2 != $eid) {
+			my $query3 = "INSERT INTO artifact_workflow_event
+				(group_artifact_id, field_id, from_value_id, to_value_id)
+				VALUES ($gaid, $efid, $eid, $eid2)";
+			# debug $query3;
+			my $sth3 = $dbh->prepare ($query3) ;
+			$sth3->execute () ;
+			$sth3->finish () ;
+			$query3 = "INSERT INTO artifact_workflow_event
+				(group_artifact_id, field_id, from_value_id, to_value_id)
+				VALUES ($gaid, $efid, $eid2, $eid)";
+			# debug $query3;
+			$sth3 = $dbh->prepare ($query3) ;
+			$sth3->execute () ;
+			$sth3->finish () ;
+		    }
+		}
+		$sth2->finish () ;
+		my $query3 = "INSERT INTO artifact_workflow_event
+				(group_artifact_id, field_id, from_value_id, to_value_id)
+				VALUES ($gaid, $efid, 100, $eid)";
+		# debug $query3;
+		my $sth3 = $dbh->prepare ($query3) ;
+		$sth3->execute () ;
+		$sth3->finish () ;
+	    }
+	}
+	$sth->finish () ;
+
+	@reqlist = () ;
+	&update_db_version ($target) ;
+	&debug ("Committing.") ;
+	$dbh->commit () ;
+    }
+
+
     ########################### INSERT HERE #################################
 
     &debug ("It seems your database $action went well and smoothly. That's cool.") ;
-    &debug ("Please enjoy using GForge.") ;
+    &debug ("Please enjoy using FusionForge.") ;
 
     # There should be a commit at the end of every block above.
     # If there is not, then it might be symptomatic of a problem.




More information about the Fusionforge-commits mailing list