summaryrefslogtreecommitdiff
path: root/calendar-cli.py
diff options
context:
space:
mode:
authorTobias Brox <tobias@redpill-linpro.com>2022-10-12 12:38:47 +0200
committerTobias Brox <tobias@redpill-linpro.com>2022-10-15 19:21:12 +0200
commit833d424b3eabe39f60c753784c8f1e27a07d3879 (patch)
tree24c07ed83ea0184eab688a177840b5cb32b6ec2d /calendar-cli.py
parentb1067d6ad1ecfb13b99d0d40c5def8e6a7b0a9a9 (diff)
downloadcalendar-cli-833d424b3eabe39f60c753784c8f1e27a07d3879.zip
completion of recurring tasks. work in progress.
Diffstat (limited to 'calendar-cli.py')
-rwxr-xr-xcalendar-cli.py9
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()