diff options
author | Tobias Brox <tobias@redpill-linpro.com> | 2022-10-12 12:38:47 +0200 |
---|---|---|
committer | Tobias Brox <tobias@redpill-linpro.com> | 2022-10-15 19:21:12 +0200 |
commit | 833d424b3eabe39f60c753784c8f1e27a07d3879 (patch) | |
tree | 24c07ed83ea0184eab688a177840b5cb32b6ec2d /calendar-cli.py | |
parent | b1067d6ad1ecfb13b99d0d40c5def8e6a7b0a9a9 (diff) | |
download | calendar-cli-833d424b3eabe39f60c753784c8f1e27a07d3879.zip |
completion of recurring tasks. work in progress.
Diffstat (limited to 'calendar-cli.py')
-rwxr-xr-x | calendar-cli.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/calendar-cli.py b/calendar-cli.py index 1891497..0877f0a 100755 --- a/calendar-cli.py +++ b/calendar-cli.py @@ -758,26 +758,25 @@ def todo_complete(caldav_conn, args): if hasattr(remaining_task.instance.vtodo, 'recurrence_id'): del remaining_task.instance.vtodo.recurrence_id remaining_task.instance.vtodo.add('recurrence-id') - remaining_task.instance.vtodo.recurrence_id.value = next ## TODO: should be same type as dtstart (date or datetime) remaining_task.instance.vtodo.dtstart.value = next ## TODO: should be same type as dtstart (date or datetime) remaining_task.instance.vtodo.recurrence_id.params['RANGE'] = [ 'THISANDFUTURE' ] remaining_task.instance.vtodo.rrule + count_search = re.search('COUNT=(\d+)', completed_task.instance.vtodo.rrule.value) + if count_search: + remaining_task.instance.vtodo.rrule.value = re.replace('COUNT=(\d+)', 'COUNT=%d' % int(count_search.group(1))-1) remaining_task.save() ## the completed task should have recurrence id set to current time ## count in rrule should decrease + completed_task.instance.vtodo.remove(completed_task.instance.vtodo.rrule) if hasattr(completed_task.instance.vtodo, 'recurrence_id'): del completed_task.instance.vtodo.recurrence_id completed_task.instance.vtodo.add('recurrence-id') completed_task.instance.vtodo.recurrence_id.value = datetime.now() completed_task.instance.vtodo.dtstart.value = datetime.now() - count_search = re.search('COUNT=(\d+)', completed_task.instance.vtodo.rrule.value) - if count_search: - completed_task.instance.vtodo.rrule.value = re.replace('COUNT=(\d+)', 'COUNT=%d' % int(count_search.group(1))-1) completed_task.complete() continue - task.complete() |