Reports: make last month's report on a chosen day, keep it with what was sent, and optionally hand it on #1095

Closed
opened 2026-10-30 21:25:14 +00:00 by tiagoagueda · 0 comments
Owner

The period report (#56) is what a person hands an employment office as evidence of their search, and they make it by hand each month. The wiki's Reports page lists scheduled reports as separate future work. This is that work.

What exists today

  • applications/reports.py builds a report for a period (a month, a quarter, the last n weeks), with CSV and PDF downloads and a report_pdf errand (applications/slow.py:22).
  • The scheduler pass (send_due_reminders --loop, core/scheduler.py) already starts errands.
  • Stores (localstore, postulo-paperless) and the outbox can take a file.
  • postulo-francetravail computes the monthly declaration dates, and #887 lets a plugin write calendar entries.

What would change

  • A setting per person: on day n of the month, or n days before a calendar entry of a chosen kind, make last month's report, keep it under Sent, and create a reminder to read it.
  • Optionally hand it to a store, or by the outbox to an address the person typed.

Decisions

  • Send or only prepare. Recommended: prepare by default; sending is a second switch, off by default, because a report is evidence a person should read first.
  • Trigger from a plugin's calendar. Recommended: yes, as an option, so a declaration date can be the trigger.

Checked against main at daee30b15 (2026-10-30). From the status review and feature suggestions of 2026-10-30.

The period report (#56) is what a person hands an employment office as evidence of their search, and they make it by hand each month. The wiki's *Reports* page lists scheduled reports as separate future work. This is that work. ## What exists today - `applications/reports.py` builds a report for a period (a month, a quarter, the last n weeks), with CSV and PDF downloads and a `report_pdf` errand (`applications/slow.py:22`). - The scheduler pass (`send_due_reminders --loop`, `core/scheduler.py`) already starts errands. - Stores (localstore, postulo-paperless) and the outbox can take a file. - postulo-francetravail computes the monthly declaration dates, and #887 lets a plugin write calendar entries. ## What would change - A setting per person: on day n of the month, or n days before a calendar entry of a chosen kind, make last month's report, keep it under *Sent*, and create a reminder to read it. - Optionally hand it to a store, or by the outbox to an address the person typed. ## Decisions - **Send or only prepare.** Recommended: prepare by default; sending is a second switch, off by default, because a report is evidence a person should read first. - **Trigger from a plugin's calendar.** Recommended: yes, as an option, so a declaration date can be the trigger. Checked against `main` at `daee30b15` (2026-10-30). From the status review and feature suggestions of 2026-10-30.
tiagoagueda added this to the 0.6.0 milestone 2026-10-30 21:25:14 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1095
No description provided.