Next healthcheck due date, plus a test suite (hc-nkq)
Lets a technician record when a site should next be looked at, and surfaces that in the dashboard so it can be used for planning. Server: - migration 0002 adds healthchecks.next_due, a VARCHAR(10) 'YYYY-MM-DD' calendar date rather than a timestamp — it's a diary date with no time-of-day, and a timestamp would render as the wrong day off-server. - Kept per-session rather than on a sites table, so the history of what was scheduled when is preserved. A site's current next-due is the value on its most recent session: if the latest visit scheduled nothing, the site reads as unscheduled rather than showing the just-completed visit as overdue. - Validate::optionalDate() round-trips through createFromFormat, which rejects both '2026-2-3' and '2026-02-30' (silently rolled to March 2nd). - next_due follows the same missing-vs-null PUT contract as finished_at, and lives in its own Store::setNextDue() so finishing or reopening a session never disturbs the date and vice versa. - Dashboard shows it on the site list, the per-site session table and the session detail, flagged overdue / today / soon (within a fortnight). Plugin: - Date control on both the active and finished panels — the moment you know when to return is often wrap-up, after the report is generated. - Write-through like every other mutation. Bad input is rejected with a notice rather than silently clearing an existing date. - Included in both the Markdown and HTML reports. Tests (new — tests/, export-ignored from the plugin zip): - Hand-rolled harness, no composer/PHPUnit, in keeping with the repo. - 42 tests: plugin-side date parsing units, plus server integration tests driven over real HTTP against a temp `php -S` instance with a throwaway SQLite DB, so a real server/config.php is never touched. - Mutation-checked: dropping the array_key_exists guard on PUT fails three tests, as intended.
This commit is contained in:
@@ -16,8 +16,12 @@ Then activate from *Plugins*. Settings appear under *Tools → Site Healthcheck*
|
||||
2. Confirm the recovery plugin status panel shows ✓ active.
|
||||
3. Click **Start new healthcheck**.
|
||||
4. Work through each step card. For each: choose a status (done / skipped / blocked / n/a) and add notes.
|
||||
5. Click **Finish & generate report**.
|
||||
6. Download the Markdown report or copy it to clipboard.
|
||||
5. Set **Next healthcheck due** to when the site should be looked at again. It's
|
||||
stored centrally and shows against the site on the dashboard, flagged when it's
|
||||
within a fortnight or overdue. Settable before or after finishing; leave it
|
||||
empty (or clear it) if nothing is scheduled.
|
||||
6. Click **Finish & generate report**.
|
||||
7. Download the Markdown report or copy it to clipboard.
|
||||
|
||||
One in-progress session per site at a time. Reports are not stored in the database (the plugin is meant to be uninstalled at the end of each engagement) — download them.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user