ChiliProject is not maintained anymore. Please be advised that there will be no more updates.
We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.
Mails when issues cross due date (Feature #1305)
- When the issues are about to cross the due date, a mail can be sent to all the watchers
- When this mail has to be sent (i.e., how many days before the due date) can be kept as a global configuration. This configuration can be overridden in the selection in the individual issue also
- There can be multiple mails also (for Ex: 4 days before the issue due date and 2 days before the issue due date)
On Redmine I've been using the plugin https://github.com/alvila/redmine_reminder for that purpose.
Mixed success¶On actual use, it is frustrating.
- Issues are listed in some arbitrary order
- On each line, only project, id and subject. No interesting details (specific columns).
- No grouping.
- No way to filter or tune anything.
- A link to "all issues" of limited value.
Initially I thought "yes but it would be a lot of work to make that customizable".
What does the feature do, actually ?¶
Thinking about it, a simple truth came to light.
Basically, the feature runs a query on the issue list and, if the result is non-empty, outputs an e-mail.
Improvement: don't hard-code a useless limitation¶
- Instead of hard-coding a specific query in the feature (like "due date < today + x days"), put a member which is an id of a custom query -- maybe with a defaults to a plain "today + x days" query to keep usage simple.
- The code will call the custom query engine, get an HTML rendering of the result and send that via e-mail.
Actually, I figured this out because I already use custom queries for the information I need, as will probably many users of that feature.
Bonus: include in mail a link to "see that custom query online" in browser. It makes easier to perform temporary unsaved modifications to queries, navigate for details.
Consequences: easy setup, more benefits¶
- With this setup, the administrator or even some user/manager (depending on who owns the custom query and can choose the query id) can customize the feature just by adjusting the custom query.
- The feature benefits whatever custom queries already support: select by any criterion, output any column (even custom fields), any sort order/grouping.
- Also the feature will benefit from future improvements in the query engine.
Instead of merely warning about deadline that will soon cross, the feature can be useful in more scenarios. Here are only some examples I faced:
- priority (not date) reminder: people gets a list of their tasks sorted by priority. In my case people have tasks, sometimes without due date and they don't think of going to Redmine. That avoids manual reminders.
- progress record: every start or end of a time period, a mail is sent, for some manager, for archival, etc. When invoicing we sometimes have to go back to "what were the active issues at time X ?" that can't be easily answered using the "activity" tab.
- finer-grained planning: for example, notification mail regarding department A will run with a 15-days-ahead threshold, while another for department B it will be 30-days-ahead, using two different custom queries.
- better signal-to-noise ratio: for example, notification mail regarding department A will include field "foo", department B will include field "bar" as columns in their respective custom queries, which make a lot of sense for people receving the e-mail. They know what to do immediately without even opening Redmine.
- All in all, this changes removes an artificial limitation, making the feature more general and interesting.
- Code is simpler (well, if current code architecture easily allows to render a query result and redirect the output to an e-mail).
What do you think ?