]> 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:

Bump version for 0.7.1
[etc/taskwarrior.git] / tasklib / task.py
index b1af4f743014a25ad33a73cbe5ee64e5f759b5d9..b6c3d09168ec6897749ade2c2d4ce26ceebf2b33 100644 (file)
@@ -372,8 +372,11 @@ class Task(TaskResource):
 
         def add_field(field):
             # Add the output of format_field method to args list (defaults to
-            # field:value)
-            format_default = lambda k: "{0}:'{1}'".format(k, self._data[k] or '')
+            # field:'value')
+            format_default = lambda k: "{0}:{1}".format(k,
+                                           "'{0}'".format(self._data[k])
+                                           if self._data[k] is not None
+                                           else '')
             format_func = getattr(self, 'format_{0}'.format(field),
                                   lambda: format_default(field))
             args.append(format_func())
@@ -433,9 +436,15 @@ class TaskFilter(SerializingObject):
         if key == 'uuid':
             self.filter_params.insert(0, value)
         else:
-            # We enforce equality match by using is keyword
-            # Also, without using this syntax, filter fails due to TW-1479
-            self.filter_params.append("{0}.is:'{1}'".format(key, value))
+            # Surround value with aphostrophes unless it's a empty string
+            value = "'%s'" % value if value else ''
+
+            # We enforce equality match by using 'is' (or 'none') modifier
+            # Without using this syntax, filter fails due to TW-1479
+            modifier = '.is' if value else '.none'
+            key = key + modifier if '.' not in key else key
+
+            self.filter_params.append("{0}:{1}".format(key, value))
 
     def get_filter_params(self):
         return [f for f in self.filter_params if f]
@@ -564,6 +573,7 @@ class TaskWarrior(object):
         self.config = {
             'data.location': os.path.expanduser(data_location),
             'confirmation': 'no',
+            'dependency.confirmation': 'no', # See TW-1483 or taskrc man page
         }
         self.tasks = TaskQuerySet(self)
         self.version = self._get_version()