Пример #1
0
 def countTasks(self):
     """Count tasks statistics divided by projects"""
     self._data = DataManager.getByRange(self._fromDate, self._toDate)
     res = {}
     for date, task, projectName in self._data:
         if task == "__start__":
             self.timings.setPrevDate(None)
         
         spentSeconds = self.timings.count(date, Tasks.taskType(task))
         
         if Tasks.taskType(task) != "work":
             continue
             
         if spentSeconds:
             if projectName not in res:
                 res[projectName] = {}
                 
             if task not in res[projectName]:
                 res[projectName][task] = spentSeconds
             else:
                 res[projectName][task] += spentSeconds
     self._countAttrib([v for k in res for v in res[k].values()])
     if res:
         ret = {}
         for k in res.keys():
             ret[k] = sorted(res[k].iteritems(), key=lambda item:item[1], reverse=True)
         return ret
     else:
         return {}
Пример #2
0
    def _countObject(self, objType, targetAction):
        """Generic function for calculating projects data or slacking statistics"""
        self._data = DataManager.getByRange(self._fromDate, self._toDate)
        res = {}

        for date, task, projectName in self._data:
            if task == "__start__":
                self.timings.setPrevDate(None)
            objKey = projectName if objType == "project" else task
            
            spentSeconds = self.timings.count(date, Tasks.taskType(task))

            if Tasks.taskType(task) != targetAction:
                self.timings.setPrevDate(date)
                continue

            if spentSeconds:
                if objKey not in res:
                    res[objKey] = spentSeconds
                else:
                    res[objKey] += spentSeconds
                    
        self._countAttrib(res.values())
        if res:
            return sorted(res.iteritems(), key=lambda item:item[1], reverse=True)
        else:
            return []