[evolvis-commits] r17311: [#1152] Implement dynamic standard search queries for bug trackers↵ (experimental, to test)

mirabilos at evolvis.org mirabilos at evolvis.org
Mon Jul 4 15:57:43 CEST 2011


Author: mirabilos
Date: 2011-07-04 15:57:43 +0200 (Mon, 04 Jul 2011)
New Revision: 17311

Added:
   trunk/gforge_base/evolvisforge/gforge/db/20110704-std_search_filter_migrate.sql
Modified:
   trunk/gforge_base/evolvisforge/gforge/common/tracker/ArtifactType.class.php
   trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl
   trunk/gforge_base/evolvisforge/gforge/debian/changelog
   trunk/gforge_base/evolvisforge/gforge/install/db-postgresql
Log:
[#1152] Implement dynamic standard search queries for bug trackers
(experimental, to test)

Modified: trunk/gforge_base/evolvisforge/gforge/common/tracker/ArtifactType.class.php
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/common/tracker/ArtifactType.class.php	2011-07-04 13:29:14 UTC (rev 17310)
+++ trunk/gforge_base/evolvisforge/gforge/common/tracker/ArtifactType.class.php	2011-07-04 13:57:43 UTC (rev 17311)
@@ -268,16 +268,26 @@
 			$this->setError('ArtifactType: '.db_error());
 			db_rollback();
 			return false;
-		} else {
-			if (!$this->fetchData($id)) {
+
+		if (!$this->fetchData($id)) {
+			db_rollback();
+			return false;
+		}
+
+		if ($datatype == 1) {
+			/* for Bugs only */
+
+			$res = db_query("SELECT std_search_new_tracker($id);");
+			if (!$res) {
+				$this->setError('std_search_new_tracker: '.db_error());
 				db_rollback();
 				return false;
-			} else {
-				db_commit();
-				$this->Group->normalizeAllRoles () ;
-				return $id;
 			}
 		}
+
+		db_commit();
+		$this->Group->normalizeAllRoles () ;
+		return $id;
 	}
 
 	/**

Added: trunk/gforge_base/evolvisforge/gforge/db/20110704-std_search_filter_migrate.sql
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/db/20110704-std_search_filter_migrate.sql	                        (rev 0)
+++ trunk/gforge_base/evolvisforge/gforge/db/20110704-std_search_filter_migrate.sql	2011-07-04 13:57:43 UTC (rev 17311)
@@ -0,0 +1,98 @@
+-- Standard Search Queries for Trackers witch fields Severity and Resolution.
+--
+-- Copyright © 2011
+--	Mike Esser <m.esser at tarent.de>
+-- All rights reserved.
+--
+-- This file is part of FusionForge. FusionForge is free software;
+-- you can redistribute it and/or modify it under the terms of the
+-- GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the Licence, or (at your option)
+-- any later version.
+--
+-- FusionForge is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License along
+-- with FusionForge; if not, write to the Free Software Foundation, Inc.,
+-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+CREATE OR REPLACE FUNCTION std_search_new_tracker(integer) RETURNS void AS '
+DECLARE
+    curBugTracker ALIAS FOR $1;
+    valuesToSort  RECORD;
+    valueString   TEXT := '''';
+BEGIN
+    INSERT INTO artifact_query(group_artifact_id, user_id, query_name) VALUES (curBugTracker, 100, ''STD Quality Assurance'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''2'', 0, ''1'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''1'', 0, ''0'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''3'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''7'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''8'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''5'', 0, ''artifact_id'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''6'', 0, ''ASC'');
+    FOR valuesToSort IN SELECT * FROM artifact_extra_field_elements WHERE extra_field_id = (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Resolution'' AND group_artifact_id=curBugTracker) LOOP
+        -- Check if this is relevant for Quality Assurance
+        IF valuesToSort.element_name == ''Fixed'' OR valuesToSort.element_name LIKE ''Won%t Fix'' OR valuesToSort.element_name == ''Invalid'' OR valuesToSort.element_name == ''Works For Me'' OR valuesToSort.element_name == ''Duplicate'' THEN
+            valueString := (valueString || (valuesToSort.element_id || '', ''));
+        END IF;
+    END LOOP;
+    valueString := SUBSTRING(valueString, 0, LENGTH(valueString) - 1);
+    RAISE NOTICE ''Current String = %'', valueString;
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''4'',
+           (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Resolution'' AND group_artifact_id=curBugTracker), valueString);
+    valueString := '''';
+    INSERT INTO artifact_query(group_artifact_id, user_id, query_name) VALUES (curBugTracker, 100, ''STD Development'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''2'', 0, ''1'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''1'', 0, ''0'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''3'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''7'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''8'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''5'', 0, ''artifact_id'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''6'', 0, ''ASC'');
+    FOR valuesToSort IN SELECT * FROM artifact_extra_field_elements WHERE extra_field_id = (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Resolution'' AND group_artifact_id=curBugTracker) LOOP
+        -- Check if this is relevant for Quality Assurance
+        IF valuesToSort.element_name == ''Accepted As Bug'' OR valuesToSort.element_name == ''Awaiting Response'' THEN
+            valueString := (valueString || (valuesToSort.element_id || '', ''));
+        END IF;
+    END LOOP;
+    valueString := SUBSTRING(valueString, 0, LENGTH(valueString) - 1);
+    RAISE NOTICE ''Current String = %'', valueString;
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''4'',
+           (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Resolution'' AND group_artifact_id=curBugTracker), valueString);
+    valueString := '''';
+    INSERT INTO artifact_query(group_artifact_id, user_id, query_name) VALUES (curBugTracker, 100, ''STD Blocker/Critical'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''2'', 0, ''1'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''1'', 0, ''0'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''3'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''7'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''8'', 0, '''');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''5'', 0, ''artifact_id'');
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''6'', 0, ''ASC'');
+    FOR valuesToSort IN SELECT * FROM artifact_extra_field_elements WHERE extra_field_id = (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Resolution'' AND group_artifact_id=curBugTracker) LOOP
+        -- Check if this is relevant for Quality Assurance
+        IF valuesToSort.element_name == ''blocker'' OR valuesToSort.element_name == ''critical'' THEN
+            valueString := (valueString || (valuesToSort.element_id || '', ''));
+        END IF;
+    END LOOP;
+    valueString := SUBSTRING(valueString, 0, LENGTH(valueString) - 1);
+    RAISE NOTICE ''Current String = %'', valueString;
+    INSERT INTO artifact_query_fields VALUES ((SELECT max(artifact_query_id) FROM artifact_query), ''4'',
+           (SELECT extra_field_id FROM artifact_extra_field_list WHERE field_name LIKE ''Severity'' AND group_artifact_id=curBugTracker), valueString);
+END;'
+	LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION std_search_migrate() RETURNS void AS '
+DECLARE
+    curBugTracker INTEGER;
+BEGIN
+    FOR curBugTracker IN SELECT group_artifact_id FROM artifact_group_list WHERE datatype = 1 LOOP
+        SELECT std_search_new_tracker(curBugTracker);
+    END LOOP;
+END;'
+     LANGUAGE plpgsql;
+
+SELECT std_search_migrate();
+DROP FUNCTION std_search_migrate();

Modified: trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl	2011-07-04 13:29:14 UTC (rev 17310)
+++ trunk/gforge_base/evolvisforge/gforge/deb-specific/db-upgrade.pl	2011-07-04 13:57:43 UTC (rev 17311)
@@ -3453,6 +3453,8 @@
 	$dbh->commit () ;
     }
 
+    &update_with_sql("20110704-std_search_filter_migrate","4.8.3+evolvis33.3");
+
     ########################### INSERT HERE #################################
 
     &debug ("It seems your database $action went well and smoothly. That's cool.") ;

Modified: trunk/gforge_base/evolvisforge/gforge/debian/changelog
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/debian/changelog	2011-07-04 13:29:14 UTC (rev 17310)
+++ trunk/gforge_base/evolvisforge/gforge/debian/changelog	2011-07-04 13:57:43 UTC (rev 17311)
@@ -11,8 +11,11 @@
   * [#1073] Funktionsreferenz-Tracker
   * Drop broken standard search query SQL
 
- -- Thorsten Glaser <t.glaser at tarent.de>  Mon, 04 Jul 2011 15:24:46 +0200
+  [ Mike Esser ]
+  * [#1152] Implement dynamic standard search queries for bug trackers
 
+ -- Thorsten Glaser <t.glaser at tarent.de>  Mon, 04 Jul 2011 15:56:43 +0200
+
 gforge (4.8.3+evolvis34) unstable; urgency=low
 
   [ Patrick Apel ]

Modified: trunk/gforge_base/evolvisforge/gforge/install/db-postgresql
===================================================================
--- trunk/gforge_base/evolvisforge/gforge/install/db-postgresql	2011-07-04 13:29:14 UTC (rev 17310)
+++ trunk/gforge_base/evolvisforge/gforge/install/db-postgresql	2011-07-04 13:57:43 UTC (rev 17311)
@@ -55,7 +55,6 @@
 db/20090327_create_table_project_tags.sql     usr/share/gforge/db/
 db/20090402-add-projecttags-constraints.sql   usr/share/gforge/db/
 db/20090402-forum-attachment-types.sql  usr/share/gforge/db/
-db/20100308-forum-attachment-types.sql  usr/share/gforge/db/
-#db/2011*				usr/share/gforge/db/
+db/201*					usr/share/gforge/db/
 #
 utils/fixscripts/normalize_roles.php	usr/share/gforge/bin/



More information about the evolvis-commits mailing list