]> git.madduck.net Git - etc/taskwarrior.git/blobdiff - tasklib/task.py

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

backends: Add refresh_task to the Backend interface
[etc/taskwarrior.git] / tasklib / task.py
index 61f944a27f1b0030a442ada96a33d0fe2d352a20..3f53511416da4ec670689ecb34f3f4cfc0e646a4 100644 (file)
@@ -605,7 +605,7 @@ class Task(TaskResource):
         elif self.active:
             raise Task.ActiveTask("Task is already active")
 
-        self.warrior.execute_command([self['uuid'], 'start'])
+        self.backend.start_task(self)
 
         # Refresh the status again, so that we have updated info stored
         self.refresh(only_fields=['status', 'start'])
@@ -620,7 +620,7 @@ class Task(TaskResource):
         if not self.active:
             raise Task.InactiveTask("Cannot stop an inactive task")
 
-        self.warrior.execute_command([self['uuid'], 'stop'])
+        self.backend.stop_task(self)
 
         # Refresh the status again, so that we have updated info stored
         self.refresh(only_fields=['status', 'start'])
@@ -637,11 +637,7 @@ class Task(TaskResource):
         elif self.deleted:
             raise Task.DeletedTask("Deleted task cannot be completed")
 
-        # Older versions of TW do not stop active task at completion
-        if self.warrior.version < VERSION_2_4_0 and self.active:
-            self.stop()
-
-        self.warrior.execute_command([self['uuid'], 'done'])
+        self.backend.complete_task(self)
 
         # Refresh the status again, so that we have updated info stored
         self.refresh(only_fields=['status', 'start', 'end'])