def onEffortStartChanged(self, event): effort = event.source() key = self.keyForEffort(effort) task = effort.task() if (task in self.observable()) and (key not in self.__composites): newComposites = self.createComposites(task, [effort]) super(EffortAggregator, self).extendSelf(newComposites)
def removeItems(self, efforts): for effort in efforts: effort.task().removeEffort(effort)
def keyForEffort(self, effort, task=None): task = task or effort.task() effortStart = effort.getStart() return (task, self.startOfPeriod(effortStart), self.endOfPeriod(effortStart))
def extend(self, efforts): for effort in efforts: effort.task().addEffort(effort)
def extend(self, efforts): # pylint: disable=W0221 for effort in efforts: effort.task().addEffort(effort)
def removeItems(self, efforts): # pylint: disable=W0221 for effort in efforts: effort.task().removeEffort(effort)
def __key_for_effort(self, effort, task=None): # pylint: disable=W0621 task = task or effort.task() effort_start = effort.getStart() return (task, self.__start_of_period(effort_start), self.__end_of_period(effort_start))
def createSortKeyFunction(self): # Sort by start of effort first, then by task subject return lambda effort: (effort.getStart(), effort.task().subject(recursive=True))