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/07/28 03:48] – Added review comments. vboctor | 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 | ||
| + | |||
| + | ==== Phase 2: Add Global Categories ==== | ||
| + | |||
| + | Building on the work from phase 1, global categories | ||
| + | |||
| + | ==== Phase 3: Add Catergory Inheritence ==== | ||
| + | |||
| + | The final main phase will be the introduction of category inheritence between projects. | ||
| Line 32: | Line 45: | ||
| ===== Database Changes ===== | ===== Database Changes ===== | ||
| - | * add **id int(10)** field on '' | + | ==== Phase 1 ==== |
| - | * **project_id** field on '' | + | |
| - | * **category** field on '' | + | This will be a multi-step process consisting of the following changes: |
| - | * add **inherit_categories_global tinyint(4)** field on '' | + | |
| - | * add **inherit_categories_parents tinyint(4)** field on '' | + | |
| + | * create '' | ||
| + | * **id int(10)** primary key, with // | ||
| + | * **project_id int(10)** index, value //0// will represent global categories. | ||
| + | * **name varchar(100)** | ||
| + | * **status tinyint(4)** index | ||
| + | * **user_id int(10)** | ||
| + | * modify '' | ||
| + | * add **category_id int(10)** as foreign key to '' | ||
| + | * 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** | ||
| + | * modify '' | ||
| + | * delete **category** column | ||
| + | * delete '' | ||
| - | | + | ==== Phase 2 ==== |
| + | * modify '' | ||
| + | | ||
| + | ==== Phase 3 ==== | ||
| + | * modify '' | ||
| + | * add **inherit_categories tinyint(4)** to denote project will inherit categories from parent | ||
mantisbt/global_categories_requirements.1185608915.txt.gz · Last modified: (external edit)
