def _createColumns(self): # pylint: disable=W0142 kwargs = dict(renderDescriptionCallback=lambda effort: effort.description(), resizeCallback=self.onResizeColumn) return [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, sortCallback=sortCallback, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback, sortCallback in \ ('period', _('Period'), effort.Effort.durationChangedEventType(), self.__renderPeriod, uicommand.ViewerSortByCommand(viewer=self, value='period')), ('task', _('Task'), effort.Effort.taskChangedEventType(), lambda effort: effort.task().subject(recursive=True), None), ('description', _('Description'), effort.Effort.descriptionChangedEventType(), lambda effort: effort.description(), None)] + \ [widgets.Column('categories', _('Categories'), width=self.getColumnWidth('categories'), renderCallback=self.renderCategories, **kwargs)] + \ [widgets.Column(name, columnHeader, eventType, width=self.getColumnWidth(name), renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('timeSpent', _('Time spent'), effort.Effort.durationChangedEventType(), self.__renderTimeSpent), ('totalTimeSpent', _('Total time spent'), effort.Effort.durationChangedEventType(), self.__renderTotalTimeSpent), ('revenue', _('Revenue'), effort.Effort.revenueChangedEventType(), self.__renderRevenue), ('totalRevenue', _('Total revenue'), effort.Effort.revenueChangedEventType(), self.__renderTotalRevenue)] + \ [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('monday', _('Monday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 0)), ('tuesday', _('Tuesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 1)), ('wednesday', _('Wednesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 2)), ('thursday', _('Thursday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 3)), ('friday', _('Friday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 4)), ('saturday', _('Saturday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 5)), ('sunday', _('Sunday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 6)) ]
def testNewEffortUsesSameTaskAsSelectedEffort(self): self.viewer.widget.select([self.task2.efforts()[-1]]) self.viewer.updateSelection() dialog = self.viewer.newItemDialog(selectedTasks=[self.task2], bitmap='new') for effort in dialog._command.efforts: self.assertEqual(self.task2, effort.task())
def _createColumns(self): # pylint: disable=W0142 kwargs = dict(resizeCallback=self.onResizeColumn) return [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, sortCallback=sortCallback, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback, sortCallback in \ ('period', _('Period'), effort.Effort.durationChangedEventType(), self.__renderPeriod, uicommand.ViewerSortByCommand(viewer=self, value='period')), ('task', _('Task'), effort.Effort.taskChangedEventType(), lambda effort: effort.task().subject(recursive=True), None), ('description', _('Description'), effort.Effort.descriptionChangedEventType(), lambda effort: effort.description(), None)] + \ [widgets.Column('categories', _('Categories'), width=self.getColumnWidth('categories'), renderCallback=self.renderCategories, **kwargs)] + \ [widgets.Column(name, columnHeader, eventType, width=self.getColumnWidth(name), renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('timeSpent', _('Time spent'), effort.Effort.durationChangedEventType(), self.__renderTimeSpent), ('totalTimeSpent', _('Total time spent'), effort.Effort.durationChangedEventType(), self.__renderTotalTimeSpent), ('revenue', _('Revenue'), effort.Effort.revenueChangedEventType(), self.__renderRevenue), ('totalRevenue', _('Total revenue'), effort.Effort.revenueChangedEventType(), self.__renderTotalRevenue)] + \ [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, width=self.getColumnWidth(name), **kwargs) \ for name, columnHeader, eventType, renderCallback in \ ('monday', _('Monday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 0)), ('tuesday', _('Tuesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 1)), ('wednesday', _('Wednesday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 2)), ('thursday', _('Thursday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 3)), ('friday', _('Friday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 4)), ('saturday', _('Saturday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 5)), ('sunday', _('Sunday'), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 6)) ]
def do_command(self): super(NewEffortCommand, self).do_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() if task not in self.__oldActualStartDateTimes and effort.getStart() < task.actualStartDateTime(): self.__oldActualStartDateTimes[task] = task.actualStartDateTime() task.setActualStartDateTime(effort.getStart()) task.addEffort(effort)
def tasksToStopTracking(self): stoppable = lambda effort: effort.isBeingTracked( ) and not effort.isTotal() return set([ effort.task() for effort in (self.items if self.items else self.list) if stoppable(effort) ]) # pylint: disable=W0621
def undo_command(self): super(NewEffortCommand, self).undo_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() task.removeEffort(effort) if task in self.__oldActualStartDateTimes: task.setActualStartDateTime(self.__oldActualStartDateTimes[task]) del self.__oldActualStartDateTimes[task]
def undo_command(self): super(NewEffortCommand, self).undo_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() task.removeEffort(effort) if task in self.__oldActualStartDateTimes: task.setActualStartDateTime( self.__oldActualStartDateTimes[task]) del self.__oldActualStartDateTimes[task]
def do_command(self): super(NewEffortCommand, self).do_command() for effort in self.efforts: # pylint: disable=W0621 task = effort.task() if task not in self.__oldActualStartDateTimes and effort.getStart( ) < task.actualStartDateTime(): self.__oldActualStartDateTimes[ task] = task.actualStartDateTime() task.setActualStartDateTime(effort.getStart()) task.addEffort(effort)
def _createColumns(self): return [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, width=self.getColumnWidth(name), resizeCallback=self.onResizeColumn) \ for name, columnHeader, eventType, renderCallback in \ ('period', _('Period'), 'effort.duration', self.renderPeriod), ('task', _('Task'), effort.Effort.taskChangedEventType(), lambda effort: effort.task().subject(recursive=True)), ('description', _('Description'), effort.Effort.descriptionChangedEventType(), lambda effort: effort.description())] + \ [widgets.Column('categories', _('Categories'), width=self.getColumnWidth('categories'), renderCallback=self.renderCategory, renderDescriptionCallback=lambda effort: effort.description(), resizeCallback=self.onResizeColumn)] + \ [widgets.Column('totalCategories', _('Overall categories'), width=self.getColumnWidth('totalCategories'), renderCallback=lambda effort: self.renderCategory(effort, recursive=True), renderDescriptionCallback=lambda effort: effort.description(), resizeCallback=self.onResizeColumn)] + \ [widgets.Column(name, columnHeader, eventType, width=self.getColumnWidth(name), resizeCallback=self.onResizeColumn, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT) \ for name, columnHeader, eventType, renderCallback in \ ('timeSpent', _('Time spent'), 'effort.duration', lambda effort: render.timeSpent(effort.duration())), ('revenue', _('Revenue'), 'effort.revenue', lambda effort: render.amount(effort.revenue())), ('totalTimeSpent', _('Total time spent'), 'effort.totalDuration', lambda effort: render.timeSpent(effort.duration(recursive=True))), ('totalRevenue', _('Total revenue'), 'effort.totalRevenue', lambda effort: render.amount(effort.revenue(recursive=True)))] + \ [widgets.Column(name, columnHeader, eventType, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, width=self.getColumnWidth(name), resizeCallback=self.onResizeColumn) \ for name, columnHeader, eventType, renderCallback in \ ('monday', _('Monday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 0)), ('tuesday', _('Tuesday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 1)), ('wednesday', _('Wednesday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 2)), ('thursday', _('Thursday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 3)), ('friday', _('Friday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 4)), ('saturday', _('Saturday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 5)), ('sunday', _('Sunday'), 'effort.duration', lambda effort: self.renderTimeSpentOnDay(effort, 6)) ]
def do_command(self): for effort in self.efforts: effort.task().addEffort(effort)
def name_subject(self, effort): # pylint: disable=W0621 return effort.task().subject()
def undo_command(self): for effort in self.efforts: # pylint: disable-msg=W0621 effort.task().removeEffort(effort)
def do_command(self): for effort in self.efforts: # pylint: disable-msg=W0621 effort.task().addEffort(effort)
def name_subject(self, effort): return effort.task().subject()
def getBackgroundColor(self, effort): return effort.task().color()
def tasksToStopTracking(self): stoppable = lambda effort: effort.isBeingTracked() and not effort.isTotal() return set([effort.task() for effort in (self.items if self.items else self.list) if stoppable(effort)]) # pylint: disable=W0621
def tasksToStopTracking(self): return set([effort.task() for effort in self.list if effort.isBeingTracked() and not effort.isTotal()])
def _createColumns(self): # pylint: disable=W0142 kwargs = dict(resizeCallback=self.onResizeColumn) return ( [ widgets.Column( name, columnHeader, eventType, renderCallback=renderCallback, sortCallback=sortCallback, width=self.getColumnWidth(name), **kwargs ) for name, columnHeader, eventType, renderCallback, sortCallback in ( "period", _("Period"), effort.Effort.durationChangedEventType(), self.__renderPeriod, uicommand.ViewerSortByCommand(viewer=self, value="period"), ), ( "task", _("Task"), effort.Effort.taskChangedEventType(), lambda effort: effort.task().subject(recursive=True), None, ), ( "description", _("Description"), effort.Effort.descriptionChangedEventType(), lambda effort: effort.description(), None, ), ] + [ widgets.Column( "categories", _("Categories"), width=self.getColumnWidth("categories"), renderCallback=self.renderCategories, **kwargs ) ] + [ widgets.Column( name, columnHeader, eventType, width=self.getColumnWidth(name), renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, **kwargs ) for name, columnHeader, eventType, renderCallback in ( "timeSpent", _("Time spent"), effort.Effort.durationChangedEventType(), self.__renderTimeSpent, ), ( "totalTimeSpent", _("Total time spent"), effort.Effort.durationChangedEventType(), self.__renderTotalTimeSpent, ), ("revenue", _("Revenue"), effort.Effort.revenueChangedEventType(), self.__renderRevenue), ( "totalRevenue", _("Total revenue"), effort.Effort.revenueChangedEventType(), self.__renderTotalRevenue, ), ] + [ widgets.Column( name, columnHeader, eventType, renderCallback=renderCallback, alignment=wx.LIST_FORMAT_RIGHT, width=self.getColumnWidth(name), **kwargs ) for name, columnHeader, eventType, renderCallback in ( "monday", _("Monday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 0), ), ( "tuesday", _("Tuesday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 1), ), ( "wednesday", _("Wednesday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 2), ), ( "thursday", _("Thursday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 3), ), ( "friday", _("Friday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 4), ), ( "saturday", _("Saturday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 5), ), ( "sunday", _("Sunday"), effort.Effort.durationChangedEventType(), lambda effort: self.__renderTimeSpentOnDay(effort, 6), ), ] )
def undo_command(self): for effort in self.efforts: effort.task().removeEffort(effort)
def testNewEffortUsesSameTaskAsSelectedEffort(self): self.viewer.widget.select([self.task2.efforts()[-1]]) dialog = self.viewer.newItemDialog(selectedTasks=[self.task2], bitmap='new') for effort in dialog._command.efforts: self.assertEqual(self.task2, effort.task())