Experimenting with tracking the real project associated with a task rather than the...
authorEd Page <epage@Dulcinea.(none)>
Tue, 14 Apr 2009 02:46:10 +0000 (21:46 -0500)
committerEd Page <epage@Dulcinea.(none)>
Tue, 14 Apr 2009 02:46:10 +0000 (21:46 -0500)
src/rtmilk.py

index 845fdad..0bafda1 100644 (file)
@@ -77,9 +77,9 @@ class RtMilkManager(object):
                return locations
 
        def get_tasks_with_details(self, projId):
-               for taskSeries in self._get_taskseries(projId):
+               for realProjId, taskSeries in self._get_taskseries(projId):
                        for task in self._get_tasks(taskSeries):
-                               taskId = self._pack_ids(projId, taskSeries.id, task.id)
+                               taskId = self._pack_ids(realProjId, taskSeries.id, task.id)
                                priority = task.priority if task.priority != "N" else ""
                                yield {
                                        "id": taskId,
@@ -97,7 +97,8 @@ class RtMilkManager(object):
 
        def get_task_details(self, taskId):
                projId, seriesId, taskId = self._unpack_ids(taskId)
-               for taskSeries in self._get_taskseries(projId):
+               for realProjId, taskSeries in self._get_taskseries(projId):
+                       assert projId == realProjId, "%s != %s, looks like we let leak a metalist id when packing a task id" % (projId, realProjId)
                        curSeriesId = taskSeries.id
                        if seriesId != curSeriesId:
                                continue
@@ -107,7 +108,7 @@ class RtMilkManager(object):
                                        continue
                                return {
                                        "id": taskId,
-                                       "projId": projId,
+                                       "projId": realProjId,
                                        "name": taskSeries.name,
                                        "url": fix_url(taskSeries.url),
                                        "locationId": taskSeries.location_id,
@@ -222,6 +223,7 @@ class RtMilkManager(object):
                        rspTasksList = (rspTasksList, )
 
                for something in rspTasksList:
+                       realProjId = something.id
                        try:
                                something.taskseries
                        except AttributeError:
@@ -233,7 +235,7 @@ class RtMilkManager(object):
                                somethingsTaskseries = (something.taskseries, )
 
                        for taskSeries in somethingsTaskseries:
-                               yield taskSeries
+                               yield realProjId, taskSeries
 
        def _get_tasks(self, taskSeries):
                if isinstance(taskSeries.task, list):