User Tools

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

Site Tools


mantisbt:global_categories_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:global_categories_requirements [2007/10/02 13:29] jreesemantisbt:global_categories_requirements [2008/10/29 04:25] (current) – external edit 127.0.0.1
Line 12: Line 12:
  
 In the current Mantis system, all shared categories must either be created or copied between projects and subprojects by hand. Modifying one category means manually modifying every other project that category exists in to reflect the same change. There is also no way to handle global categories other than to copy categories from one project to every other project. Adding a new project or subproject later means more work to copy categories to it as well. In the current Mantis system, all shared categories must either be created or copied between projects and subprojects by hand. Modifying one category means manually modifying every other project that category exists in to reflect the same change. There is also no way to handle global categories other than to copy categories from one project to every other project. Adding a new project or subproject later means more work to copy categories to it as well.
 +
  
  
Line 27: Line 28:
   [Child] Language   [Child] Language
  
-Individual projects should be able to choose if they should inherit parents' categories or not, and if they should inherit global categories or not.  Default settings would be to inherit globals, but not parents'  +==== Phase 1: Using Category ID's ====
- +
-===== Phase 1: Using Category ID'=====+
  
 This is probably the most difficult and error-prone phase of the entire process, involving a completely new approach to storing and working with categories as entities.  It will involve changes to many API's, as well as a special conversion process in ''admin/schema.php'' to change the database schema to fit the new paradigm. This is probably the most difficult and error-prone phase of the entire process, involving a completely new approach to storing and working with categories as entities.  It will involve changes to many API's, as well as a special conversion process in ''admin/schema.php'' to change the database schema to fit the new paradigm.
  
-===== Phase 2: Add Global Categories =====+==== Phase 2: Add Global Categories ====
  
 Building on the work from phase 1, global categories will be supported using the special Project ID value '''0''' to denote independence from specific projects.  Projects themselves will also need to gain a new value/flag ''inherit_categories'' (default to true) to determine if issues for that project can be set to global categories. Building on the work from phase 1, global categories will be supported using the special Project ID value '''0''' to denote independence from specific projects.  Projects themselves will also need to gain a new value/flag ''inherit_categories'' (default to true) to determine if issues for that project can be set to global categories.
  
-===== Phase 3: Add Catergory Inheritence =====+==== Phase 3: Add Catergory Inheritence ====
  
 The final main phase will be the introduction of category inheritence between projects.  The inheritance hierarchy will gain its own ''inherit_categories'' value (default no), to indicate that its issues can be set to the parents' categories. The final main phase will be the introduction of category inheritence between projects.  The inheritance hierarchy will gain its own ''inherit_categories'' value (default no), to indicate that its issues can be set to the parents' categories.
 +
 +
  
  
 ===== Database Changes ===== ===== Database Changes =====
-The conversion will be a multi-step process consisting of the following changes:+ 
 +==== Phase 1 ==== 
 + 
 +This will be a multi-step process consisting of the following changes:
  
   * create ''mantis_category_table'':   * create ''mantis_category_table'':
Line 53: Line 57:
   * modify ''mantis_bug_table''   * modify ''mantis_bug_table''
     * add **category_id int(10)** as foreign key to ''mantis_category_table''     * add **category_id int(10)** as foreign key to ''mantis_category_table''
-  * modify ''mantis_project_table'' 
-    * add **inherit_categories tinyint(4)** to denote project will inherit global categories 
-  * modify ''mantis_project_hierarchy_table'' 
-    * add **inherit_categories tinyint(4)** to denote project will inherit categories from parent 
   * run custom upgrade function that will find existing categories, and create entries in new format   * run custom upgrade function that will find existing categories, and create entries in new format
   * run custom upgrade function that will convert bugs' **category** value to **category_id**   * run custom upgrade function that will convert bugs' **category** value to **category_id**
Line 63: Line 63:
   * delete ''mantis_project_category_table''   * delete ''mantis_project_category_table''
  
 +==== Phase 2 ====
 +  * modify ''mantis_project_table''
 +    * add **inherit_categories tinyint(4)** to denote project will inherit global categories
 +
 +==== Phase 3 ====
 +  * modify ''mantis_project_hierarchy_table''
 +    * add **inherit_categories tinyint(4)** to denote project will inherit categories from parent
  
  
mantisbt/global_categories_requirements.1191346153.txt.gz · Last modified: 2008/10/29 04:31 (external edit)

CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki