<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -397,6 +397,10 @@ class TaskCmd(object):
         # Filtering and sorting according to parameters
         filters=[]
 
+        # Join on keyword if at least on filter is defined or if keyword grouping is required
+        # TODO: should check if at least on positive filter is defined
+        if keywordFilters or options.keyword:
+            filters.append(TaskKeyword.q.taskID == Task.q.id,)
         # Filter on keywords
         for keywordFilter in keywordFilters:
             filters.append(keywordFilter.filter())
@@ -443,7 +447,6 @@ class TaskCmd(object):
                     #BUG: cannot filter on db side because sqlobject does not understand ESCAPE needed whith _
                     continue
                 taskList = Task.select(AND(TaskKeyword.q.keywordID == keyword.id,
-                                           TaskKeyword.q.taskID == Task.q.id,
                                            *filters),
                                        orderBy=order, limit=limit, distinct=True)
                 taskList = list(taskList)</diff>
      <filename>src/yokadi/taskcmd.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>cba61b33935e23765c7fedf5a2fbe0b60dc51567</id>
    </parent>
  </parents>
  <author>
    <name>S&#233;bastien Renard</name>
    <email>Sebastien.Renard@digitalfox.org</email>
  </author>
  <url>http://github.com/digitalfox/yokadi/commit/ec1f6a1d3c2f9320097a4132ed642756cd6db2b7</url>
  <id>ec1f6a1d3c2f9320097a4132ed642756cd6db2b7</id>
  <committed-date>2009-11-01T13:10:21-08:00</committed-date>
  <authored-date>2009-10-26T01:15:36-07:00</authored-date>
  <message>Fix keyword join</message>
  <tree>1010157bc86e0dacdb004a46c2243c5f9acf7214</tree>
  <committer>
    <name>S&#233;bastien Renard</name>
    <email>Sebastien.Renard@digitalfox.org</email>
  </committer>
</commit>
