Updated Scheduler and Maintainance Apps

This commit is contained in:
2026-07-08 12:00:20 -04:00
parent fefc2c8b5c
commit 0f7585754d
227 changed files with 2877 additions and 958 deletions
@@ -90,6 +90,9 @@ def _build_export_object(
# nth_weekday / day_of_month) that the flat fields above can't.
"schedule": Schedule.parse(tdata).to_dict(),
"last_planned_due": tdata.get("last_planned_due"),
# A pending per-occurrence postpone is user intent — round-trip it
# like last_planned_due so a backup/restore keeps the deferral.
"due_override": tdata.get("due_override"),
"warning_days": tdata.get("warning_days", DEFAULT_WARNING_DAYS),
"last_performed": tdata.get("last_performed"),
"notes": tdata.get("notes"),
@@ -100,6 +103,18 @@ def _build_export_object(
"entity_slug": tdata.get("entity_slug"),
"adaptive_config": tdata.get("adaptive_config"),
"checklist": tdata.get("checklist") or [],
"schedule_time": tdata.get("schedule_time"),
# v2.17+ / #83 task fields — persisted and user-facing, so a JSON
# backup must restore them (same field-completeness contract as #67
# for documentation_url/notes; import mirrors these keys).
"priority": tdata.get("priority", "normal"),
"labels": tdata.get("labels") or [],
"earliest_completion_days": tdata.get("earliest_completion_days"),
"on_complete_action": tdata.get("on_complete_action"),
"quick_complete_defaults": tdata.get("quick_complete_defaults"),
"assignee_pool": tdata.get("assignee_pool") or [],
"rotation_strategy": tdata.get("rotation_strategy"),
"reading_unit": tdata.get("reading_unit"),
"status": ct.get("_status", "ok"),
"days_until_due": ct.get("_days_until_due"),
"next_due": ct.get("_next_due"),