aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/island/calendar/test_calctl.py
AgeCommit message (Collapse)AuthorFilesLines
10 daysfix(calendar): review findings in calctl and the editorDanilo M.1-11/+90
An edit now rewrites only the fields that changed. A save with nothing changed used to rebuild the alarm, turning ACTION:AUDIO into DISPLAY and dropping ACKNOWLEDGED, re-anchor the start to the local zone, and strip SUMMARY's parameters; the test edits a foreign event unchanged and checks every one survives. get, edit and delete name the calendar the event is in. The same invite synced into two calendars has one UID, and the panel acted on whichever file came first, so editing one copy could overwrite or delete the other. A custom rule's date cannot be moved from the panel: BYDAY=MO stayed on Monday while the start moved, and the series lost the day shown. UNTIL is read back in local time, so a 22:30 series keeps its last occurrence. Files are written 0644 like vdirsyncer's. Enter in the title no longer bypasses the busy guard, which could create an event twice, and a throwing callback no longer leaks its Process. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 daysfeat(calendar): calctl creates, edits and deletes eventsDanilo M.1-1/+79
Edits change only what the form owns: a custom rule, extra alarms and properties this tool does not know survive, which the test checks on an event with BYDAY, two alarms and an X- property. Writes go through a temporary file and a rename so khal, cal-notif and vdirsyncer never read half a file, and a vdirsyncer sync is started detached afterwards. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
11 daysfeat(calendar): calctl reads the vdir as JSONDanilo M.1-0/+137
The calendar list comes from khal's config, so there is no second list. Recurrence is expanded with dateutil in naive local time, which keeps a weekly 09:00 at 09:00 across the DST change; the test pins that on 26 October. A rule richer than a plain FREQ, or alarms other than one preset, read as custom, which is what lets an edit leave them alone. A file that fails to parse is skipped rather than blanking the month. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>