Skip to content
MichaelKling edited this page Aug 30, 2011 · 2 revisions

Specification:

The plugin should insert the functionality to add automatic email reminder to every project. Every reminder should use a custom query to select issues and get performed periodically for every project role which is active in it.

This module is splitted in 2 parts:

Frontend:

The frontend contains the configuration part, which should be included inside the redmine web interface.

The plugin will have global options like the subject of the reminder email which should be send.

The module can be activated as module for a project. A permission manages the access right to the complete functionality. If activated and the user has the rights, a new "Tab" will be included in the project settings. In this tab it is possible to add, change and delete reminders. From the look and feel it will be similiar to the Member tab in the project settings. (Look at /SPEC/config1.html )

Every reminder is related to one custom query (public and related to all or this project), which will be used to filter the issues which will be included in the email. Every reminder includes a set of roles which define to which project member these reminder will send an email. Every reminder has a interval rule which define in which interval the reminder will be sent. (Daily, Weekly, Monthly) Please look also at /SPEC/config1.html for the possible values. (monthly will go from 1. until 31.)

Internally every reminder needs to store the last date changed in order to have a fix point to calculate the next time it has to send an issue (for daily sending).

Internally every reminder needs to store the last date reminder sent, so the backend algorithm can check if in the meantime a reminder should have been sent.

Backend:

The backend is a task which is triggered daily by one cronjob. It checks all available reminders and executes them individually for every user who is connected to that reminder through a role.

The results are stored and in the end, one e-mail for every related user, containing the results of all reminders for him, will be sent to this user.

The backend task saves a value "last date run" where it stores the last time he run.

If the last date sent is < then last time run a check has to be performed, if the interval settings are matching. If this is also the case this reminder has to be executed.

If the interval is daily and the last date changed is >= date reminder sent the reminder is sent, and from this date on the interval will be calculated (every 2nd day etc..)

The email should have one table of issues for every reminder. The headline will show the project name and the name of the query, the table will have the columns and sort order defined by the query and will look like the issuelist in redmine (without css styles and sorting options and form field for selectoin). The links will be full links to the redmine system (not relative links like they are used inside redmine itself) (Please look therefore /SPEC/email.html)

Clone this wiki locally