User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:tagging_requirements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mantisbt:tagging_requirements [2007/07/30 02:58] – Added second review comments. vboctormantisbt:tagging_requirements [2008/10/29 04:25] (current) – external edit 127.0.0.1
Line 8: Line 8:
  
 Because of the 'metadata' nature of tagging, it would not be primary method of classification for issues (which would still be left to categories), and could allow for lower permission requirements for tagging reports, such as allowing any registered reporters to add tags at any time.  It could also allow for potential custom auto-tagging features, where certain tags could be automatically attached to any bug containing special characteristics, like a report with version control checkins. Because of the 'metadata' nature of tagging, it would not be primary method of classification for issues (which would still be left to categories), and could allow for lower permission requirements for tagging reports, such as allowing any registered reporters to add tags at any time.  It could also allow for potential custom auto-tagging features, where certain tags could be automatically attached to any bug containing special characteristics, like a report with version control checkins.
 +
  
  
Line 13: Line 14:
 ===== Proposed Approach ===== ===== Proposed Approach =====
  
-All tags will be stored in a database table, with a separate table containing foreign key links between bugs and tags.  There should be a separate portion of the bug view to show all tags currently attached to a bugas well as an input box to enter further tags to be added.  Auto-complete should be simple substring comparison, either against static JavaScript list of popular tagsor using an AJAX query to the database.  The user should be able to click a link that will, in some fashion, show a list of all tags in use, using pagination if necessary + All tags will be stored in a database table, with a separate table containing foreign key links between bugs and tags. A tag may only be attached once to each report. By defaultanyone with reporter access will be able to create and attach tags to a reportand will be able to detach only the tags they attached. Developers will have access to edit tags and detach any tags from bugs. By default, tags will be separated by commas so that multi-word tags can be used, but it can be configured to use spacesor any other character, instead. 
  
 ==== Bug Viewing ==== ==== Bug Viewing ====
  
-When viewing tags already attached to a report, a link should be available to a page listing more information about the keyword, including the ability to enter or edit a description.  The tag's page should also include links to various searches filtered on the tag, such as all open issues, all resolved issues, etc.+When viewing bug reports, there should be a separate portion of the bug view to show all tags currently attached, as well as an input box to enter further tags to be added.  Auto-complete should be used with simple substring comparisoneither against static JavaScript list of popular tags, or using an AJAX query to the database.  The user should also be able to click any attached tag to view a page with more information. 
 +==== Tag Viewing ==== 
 + 
 +When viewing a page for a specific tag, the user should be shown information about the tag, including a description, the user who created it, when it was created and last updated, how many bugs it has been attached to, and five tags that were attached the most to the same bugs.  If the user has high enough access (see threshold configuration), then they should be able to edit the tag's name and description. 
  
 ==== Filters ==== ==== Filters ====
  
-When using the filters page in normal mode, a simple multi-select box containing a list of tags will be used to choose what tags to filter on.  In advanced mode, a free text input will be used, where the user can list out tags to filter on, in the form 'tagA -tagBwhere that is interpreted as 'tagA, but not tagB'.+When using the filters page in normal mode, a simple multi-select box containing a list of tags will be used to choose what tags to filter on.  In advanced mode, a free text input will be used, where the user can list out tags to filter on, in the form '+tag', 'tag', or '-tag'. In this manner, any tag noted with a '+' **must** be attached to any resulting bug, any tag noted with '-' **must not** be attached to any resulting bug, and resulting bugs must have **any** of the un-denoted tags attached, but not necessarily all of them.  The system will use a case-insensitive search on existing tags, as well as looking for existing tags with or without a trailing 's' to match and use existing tags before creating new and redundant tags. 
 + 
 + 
 +==== Management Decisions ==== 
 + 
 +  * If a tag has been removed from all reports that it has been attached to, it should not be removed from the database for history and data reasons; it should be manually removed by someone with appropriate access.   
 +  * When renaming or deleting tags, associated bugs should have their histories appropriately updated with an event noting the change: noting that the tag has changed names (renaming) or has been removed (deleted).
  
 ==== Future Possibilities ==== ==== Future Possibilities ====
  
 The initial implementation will not provide these features, but they could be included in future updates: The initial implementation will not provide these features, but they could be included in future updates:
 +  * Using tag clouds for reporting and other views.  This is a planned addition after the first implementation.
   * Auto-tagging reports based on unique actions or events, such as source control submission, etc.   * Auto-tagging reports based on unique actions or events, such as source control submission, etc.
   * HTML metatag keyword filling from tags.   * HTML metatag keyword filling from tags.
Line 33: Line 46:
  
   * Create ''mantis_tag_table'' with fields:   * Create ''mantis_tag_table'' with fields:
-    * **id int(10)** with //auto_increment// flag +    * **id int(10)** primary key, with //auto_increment// flag 
-    * **name varchar(100)** +    * **user_id int(10)**  
 +    * **name varchar(100)** index
     * **description text**     * **description text**
     * **date_created datetime**     * **date_created datetime**
Line 40: Line 54:
  
   * Create ''mantis_bug_tag_table'' with fields:   * Create ''mantis_bug_tag_table'' with fields:
-    * **bug_id  int(10)** +    * **bug_id  int(10)** primary key with **tag_id** 
-    * **tag_id  int(10)**+    * **tag_id  int(10)** index 
 +    * **user_id int(10)**
     * **attach_date datetime**     * **attach_date datetime**
-    * **attach_user int(10)**+ 
 + 
  
  
Line 57: Line 74:
     * ''tagging_create_threshold'' (REPORTER) to create new tags when attaching to bugs     * ''tagging_create_threshold'' (REPORTER) to create new tags when attaching to bugs
     * ''tagging_edit_threshold'' (DEVELOPER) to edit tag names and descriptions     * ''tagging_edit_threshold'' (DEVELOPER) to edit tag names and descriptions
 +    * ''tagging_edit_own_threshold'' (REPORTER) to edit tags created by the same user
 +
  
  
Line 82: Line 101:
  
 **Second Review by vboctor:** **Second Review by vboctor:**
-  * Add 'id' field to 'mantis_bug_tag_table'.+  * Add 'id' field to 'mantis_bug_tag_table' 
 +    * I see no need for this. For comparison, mantis_project_user_list_table uses a PK of the two ids. (jreese)
   * Add 'user_id' field to 'mantis_tag_table'.   * Add 'user_id' field to 'mantis_tag_table'.
   * Define the indices.   * Define the indices.
   * We talked about a tag cloud (put it in future possibilities if you are not planning to include it in initial implementation).   * We talked about a tag cloud (put it in future possibilities if you are not planning to include it in initial implementation).
mantisbt/tagging_requirements.1185778734.txt.gz · Last modified: 2008/10/29 04:31 (external edit)

Driven by DokuWiki