User Tools

Site Tools


mantisbt:due_date_requirements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
mantisbt:due_date_requirements [2006/09/17 23:21]
vboctor created
mantisbt:due_date_requirements [2008/12/01 13:00] (current)
mthibeault Note about working days.
Line 10: Line 10:
  
    * Add an optional due_date field to the issue table.    * Add an optional due_date field to the issue table.
-   * Add a configuration option for preferred email format (email_format), the default value should be HTML.  The possible values should be EMAIL_FORMAT_TEXT and EMAIL_FORMAT_HTML constants that map to values 0 and 1. 
  
 ===== Configuration Changes ===== ===== Configuration Changes =====
Line 29: Line 28:
      * Excel export      * Excel export
      * Word export      * Word export
-   * Support an "overdue" column which is typically an icon that is shown for issues that have due date, due date already passed, and the issue status is less than the configured resolved status.  In the case of csv export, use a 1/0 flag to indicate if an issue is overdue or not.+   * Support an "overdue" column which is typically an icon that is shown for issues that have due date, due date already passed, and the issue status is less than the configured resolved status.  In the case of csv export, use a 1/0 flag to indicate if an issue is overdue or not.  We may also want to consider having this as a field with a value equal to number of days to due date, which turns negative after the due date.
    * Support for filtering by due date, this is by specifying a date range to match against.    * Support for filtering by due date, this is by specifying a date range to match against.
    * Support a new block in My View page which shows overdue issues (Overdue Issues).  This should not be shown by default.    * Support a new block in My View page which shows overdue issues (Overdue Issues).  This should not be shown by default.
Line 36: Line 35:
 ===== Reminders ===== ===== Reminders =====
  
-   * Provide a script that can be called from a cronjob to send reminders for due / overdue issues.+   * Provide a script that can be called from a cronjob to send reminders for due / overdue issues.  I'm think this can be done from the same script that sends queued emails, in such case we make want to save the "last executed" timestamp as a token.
    * Each user that is a handler in one or more projects and has one or more issues that are due or overdue should receive only one email whenever this script is called.    * Each user that is a handler in one or more projects and has one or more issues that are due or overdue should receive only one email whenever this script is called.
    * The recommendation will be to execute this script once every morning.    * The recommendation will be to execute this script once every morning.
-   * Support for both html/text emails.  In the case of html, issue ids must be hyperlinked to the issue view page. 
    * The formatting of each issue should be done through a custom function that takes the issue number and the user preferred format as an input.    * The formatting of each issue should be done through a custom function that takes the issue number and the user preferred format as an input.
    * The reminder layout will look as follows:    * The reminder layout will look as follows:
Line 60: Line 58:
   * It would be nice to allow users to click on an icon to download a calendar (e.g. iCal) or todo entry that automatically gets added to user's todo list or calendar (e.g. Outlook).  The entry should include the due date, issue summary, and issue description.   * It would be nice to allow users to click on an icon to download a calendar (e.g. iCal) or todo entry that automatically gets added to user's todo list or calendar (e.g. Outlook).  The entry should include the due date, issue summary, and issue description.
   * It would also be nice to have some sort of integration with online calendars (e.g. Google, Live, Yahoo, etc).   * It would also be nice to have some sort of integration with online calendars (e.g. Google, Live, Yahoo, etc).
 +
 +===== Development Stages =====
 +
 +Following are the development stages of this feature in order to avoid one big patch:
 +
 +  * Database Schema Changes.  Support due date in Report, Update, and View Issue pages.
 +  * Support Filtering by Due Date.
 +  * Support in View Issues, Print Issues, CSV, Excel, and Word.
 +  * Cronjob script for email notifications.
 +
  
 ===== Feedback ===== ===== Feedback =====
Line 65: Line 73:
 Please add your comments and feedback in this section. Please add your comments and feedback in this section.
  
 +* The due date of tasks should also be integrated with the Roadmap/Version Deadline, see [[Roadmap Requirements]]. Probably there should be some consistency checks when the target version, issue deadline, or version deadline is changed.
 +
 +
 +* My suggestion is to be able to assign two time limits for each priority (by project). The inactivity timeout is the time an issue can stay without updates. The "SLA" timeout is the time an issue is expected to be resolved. Whenever one of this timers expires an email is sent to (configurable): the reporter, the assigned developer (if any) and the project manager.
 +
 +* Would suggest that the Due date could be calculated by Mantis based upon a set number of days in config_inc.php or even better based upon a number of days set by project/category. Obviously when calculating the new date, we should only allow for working days, function can be found below:
 +
 +* The concept of working days can definitively be different from one business model to the other. There is some time or type of business that could require due_date other than weekdays (ie newspaper would appreciate to be able to get a saturday or sunday due date for release of their news).
 +----
 +
 +<code php>
 +#
 +# This function calculates the next date only using business days
 +# @param startdate The start date
 +# @param duedays   Number of days to add
 +#
 +function calcduedate( $p_startdate, $p_duedays ) {
 +    $t_datecalc = $p_startdate;
 +
 +    $i = 1;
 +    while ( $i <= $p_duedays ) {
 +        $t_datecalc  += 86400; // Add a day.
 +        $t_date_info  = getdate( $t_datecalc );
 +
 +        if ( ( $t_date_info["wday"] == 0 ) or ( $t_date_info["wday"] == 6 ) )  {
 +                $t_datecalc += 86400; // Add a day.
 +                continue;
 +        }
 +
 +        $i++;
 +    }
 +
 +    return $t_datecalc;
 +}
 +</code>
mantisbt/due_date_requirements.1158549669.txt.gz ยท Last modified: 2008/10/29 04:31 (external edit)