View Issue Details

IDProjectCategoryView StatusLast Update
0025641mantisbtsub-projectspublic2019-04-08 10:35
Reportercproensa Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Summary0025641: Refactor project hierarchy
Description

I open this issue to track the changes proposed in PR :
https://github.com/mantisbt/mantisbt/pull/1480

This is a rewrite of the core logic to represent the projects/subprojects hierarchy.
A new class ProjectGraph is created to contain all the logic to build and inspect the hierarchy.
It implements a graph of relations between projects, and provides a tool to traverse this graph in the context of parents, children, inheritance.
This way, all the complexity is abstracted, and all needed details, future changes and quirks are contained in one single point, with consistent behaviour.

A number of other apis have been touched. A lot of cleaning of recurrent code that deals with project/subprojects, is now unnecessary and delegated to the hierarchy_api/graph class.

This is a work in progress, and posted for feedback.

There are still some points to clear up regarding behaviour of inheritance, disabled projects, etc. I have created some issues in the tracker as i found them. This could be a good time to discuss those and set a ruling for those scenarios.

This issue can be linked to other individual, related, issues, regarding projects/hierarchy problems and inconsistencies

TagsNo tags attached.

Relationships

related to 0025637 new Inconsistency: user_get_allaccessible(sub)projects forces exclusion of disabled projects 
related to 0025639 new Get project should return subprojects (enabled/disabled, all descendents/childs only) on demand 
related to 0025564 new Issues in disabled projects are accessible 
related to 0025563 new Subprojects of a disabled project are not accesible through projects menu 
related to 0025536 new Inheritance of versions follow "inherit categories" relations, but it's not documented 
related to 0025479 new 'private_project_threshold' shouldn't be evaluated for specific projects or users 
related to 0025507 new global categories inheritance 
related to 0025480 new Subproject of a disabled project behave inconsistently 
related to 0008663 new Multiparent projects not prune in project list 

Activities

There are no notes attached to this issue.