コード例 #1
0
 def set_gtg(self, todo: iCalendar, task: Task,
             namespace: str = None) -> None:
     remote_tags = [self.to_tag(categ) for categ in self.get_dav(todo)]
     local_tags = set(tag_name for tag_name in super().get_gtg(task))
     for to_add in set(remote_tags).difference(local_tags):
         task.add_tag(to_add)
     for to_delete in local_tags.difference(remote_tags):
         task.remove_tag(to_delete)
     task.tags.sort(key=remote_tags.index)
コード例 #2
0
 def fill_task(cls, todo: iCalendar, task: Task, namespace: str):
     nmspc = {'namespace': namespace}
     with DisabledSyncCtx(task):
         for field in cls.fields:
             field.set_gtg(todo, task, **nmspc)
         task.set_attribute("url", str(todo.url), **nmspc)
         task.set_attribute("calendar_url", str(todo.parent.url), **nmspc)
         task.set_attribute("calendar_name", todo.parent.name, **nmspc)
         if not CATEGORIES.has_calendar_tag(task, todo.parent):
             task.add_tag(CATEGORIES.get_calendar_tag(todo.parent))
     return task