X-Git-Url: https://git.madduck.net/etc/taskwarrior.git/blobdiff_plain/f4936467c1b535b335f6fcf5a5344e72de1437ef..432b3aa67c40dd92ba2cb0042439ea665b2dcc21:/tasklib/task.py diff --git a/tasklib/task.py b/tasklib/task.py index 9eff14c..bb3fa53 100644 --- a/tasklib/task.py +++ b/tasklib/task.py @@ -228,16 +228,24 @@ class Task(TaskResource): def _get_modified_fields_as_args(self): args = [] + def add_field(field): + # Task version older than 2.4.0 ignores first word of the + # task description if description: prefix is used + if self.warrior.version < VERSION_2_4_0 and field == 'description': + args.append(self._data[field]) + else: + args.append('{0}:{1}'.format(field, self._data[field])) + # If we're modifying saved task, simply pass on all modified fields if self.saved: for field in self._modified_fields: - args.append('{0}:{1}'.format(field, self._data[field])) + add_field(field) # For new tasks, pass all fields that make sense else: for field in self._data.keys(): if field in self.read_only_fields: continue - args.append('{0}:{1}'.format(field, self._data[field])) + add_field(field) return args @@ -276,7 +284,13 @@ class TaskFilter(object): # Replace the value with empty string, since that is the # convention in TW for empty values value = value if value is not None else '' - self.filter_params.append('{0}:{1}'.format(key, value)) + + # If we are filtering by uuid:, do not use uuid keyword + # due to TW-1452 bug + if key == 'uuid': + self.filter_params.insert(0, value) + else: + self.filter_params.append('{0}:{1}'.format(key, value)) def get_filter_params(self): return [f for f in self.filter_params if f]