[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