mantisbt:global_categories_requirements
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
mantisbt:global_categories_requirements [2007/09/28 10:18] – jreese | mantisbt: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. | ||
+ | |||
+ | |||
===== Proposed Approach ===== | ===== Proposed Approach ===== | ||
Line 26: | Line 28: | ||
[Child] Language | [Child] Language | ||
- | Individual projects should be able to choose if they should inherit parents' | + | ==== Phase 1: Using Category ID's ==== |
+ | 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. | ||
+ | |||
+ | ==== Phase 2: Add Global Categories ==== | ||
+ | |||
+ | Building on the work from phase 1, global categories will be supported using the special Project ID value ''' | ||
+ | |||
+ | ==== Phase 3: Add Catergory Inheritence ==== | ||
+ | |||
+ | The final main phase will be the introduction of category inheritence between projects. | ||
Line 33: | Line 44: | ||
===== Database Changes ===== | ===== Database Changes ===== | ||
- | The conversion | + | |
+ | ==== Phase 1 ==== | ||
+ | |||
+ | This will be a multi-step process consisting of the following changes: | ||
* create '' | * create '' | ||
Line 43: | Line 57: | ||
* modify '' | * modify '' | ||
* add **category_id int(10)** as foreign key to '' | * add **category_id int(10)** as foreign key to '' | ||
- | * modify '' | ||
- | * add **inherit_categories tinyint(4)** to denote project will inherit global categories | ||
- | * modify '' | ||
- | * 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 53: | Line 63: | ||
* delete '' | * delete '' | ||
+ | ==== Phase 2 ==== | ||
+ | * modify '' | ||
+ | * add **inherit_categories tinyint(4)** to denote project will inherit global categories | ||
+ | |||
+ | ==== Phase 3 ==== | ||
+ | * modify '' | ||
+ | * add **inherit_categories tinyint(4)** to denote project will inherit categories from parent | ||
mantisbt/global_categories_requirements.1190989104.txt.gz · Last modified: 2008/10/29 04:31 (external edit)