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.
IDs can get non-unique with completed tasks, which makes modifications
or deletions of particular completed tasks impossible.
class Task(TaskResource):
class Task(TaskResource):
- read_only_fields = ['id', 'entry', 'urgency']
+ read_only_fields = ['id', 'entry', 'urgency', 'uuid']
class DoesNotExist(Exception):
pass
class DoesNotExist(Exception):
pass
if self.deleted:
raise self.DeletedTask("Task was already deleted")
if self.deleted:
raise self.DeletedTask("Task was already deleted")
- self.warrior.execute_command([self['id'], 'delete'], config_override={
+ self.warrior.execute_command([self['uuid'], 'delete'], config_override={
elif self.deleted:
raise self.DeletedTask("Deleted task cannot be completed")
elif self.deleted:
raise self.DeletedTask("Deleted task cannot be completed")
- self.warrior.execute_command([self['id'], 'done'])
+ self.warrior.execute_command([self['uuid'], 'done'])
# Refresh the status again, so that we have updated info stored
self.refresh(only_fields=['status'])
def save(self):
# Refresh the status again, so that we have updated info stored
self.refresh(only_fields=['status'])
def save(self):
- args = [self['id'], 'modify'] if self['id'] else ['add']
+ args = [self['uuid'], 'modify'] if self['uuid'] else ['add']
args.extend(self._get_modified_fields_as_args())
self.warrior.execute_command(args)
self._modified_fields.clear()
def add_annotation(self, annotation):
args.extend(self._get_modified_fields_as_args())
self.warrior.execute_command(args)
self._modified_fields.clear()
def add_annotation(self, annotation):
- args = [self['id'], 'annotate', annotation]
+ args = [self['uuid'], 'annotate', annotation]
self.warrior.execute_command(args)
self.refresh(only_fields=['annotations'])
def remove_annotation(self, annotation):
if isinstance(annotation, TaskAnnotation):
annotation = annotation['description']
self.warrior.execute_command(args)
self.refresh(only_fields=['annotations'])
def remove_annotation(self, annotation):
if isinstance(annotation, TaskAnnotation):
annotation = annotation['description']
- args = [self['id'], 'denotate', annotation]
+ args = [self['uuid'], 'denotate', annotation]
self.warrior.execute_command(args)
self.refresh(only_fields=['annotations'])
self.warrior.execute_command(args)
self.refresh(only_fields=['annotations'])