====== Graph from Filter Requirements ====== **Author:** Glenn Henshaw (thraxisp) ===== Introduction ===== see also [[mantisbt:performance_counters_requirements]] Mantis has a fixed set of project summary graphs showing the current distribution of issues. There is one historical graph, showing the number of open/closed issues over all time. This feature will add the ability to graph a set of issues based on a filter. The graph can then be time limited to well known intervals (this month, this quarter, etc) or a date range. Three options for the graph data are be presented. * by status, showing all possible status values over the interval. * by status, reducing the status values to open, resolved and closed * by category ===== Database Changes ===== none required. ===== Configuration Changes ===== The feature will be dependent on the availability of the jp_graph package, as noted by the $use_jpgraph setting. * Add a configuration option for the default graph option to show. * Add a configuration option for a list of colours to use on the graphs. ===== General Changes ===== * A link was added to the filter page to link to the new graph page. The current filter value is passed using the existing cookie mechanism. * The graph page will contain both the selection criteria, and the graph itself. When no valid criteria are selected, the graph is not shown. DTHML was used to show / hide the date range selector when necessary. The js_calendar package will be used as a date picker. * Separate files will be used for each graph type. The basic algorithm is as follows: * expand the filter to capture all status values. This will capture closed bugs matching the filter. * search using the filter to capture all relevant bugs, and current status * retrieve all of the history for these bugs, back to the start date for the graph * walk backwards through the history. If the change date for the issue is after the end date, update the initial status counters. If it is before, update a current set of counters. At the same time, a history set is built by saving the counters at specific intervals. ===== Reminders ===== none ===== Integration Features ===== ===== Feedback =====