def get_dues(self, end_date=None): if (end_date != None): today = date_op.today() if (end_date == 'today'): end_date = today elif ('this month' in end_date): end_date = date_op.this_month() elif ('this week' in end_date): end_date = date_op.this_week() elif ('week' in end_date): end_date = date_op.add(today, None, None, 6) elif ('month' in end_date): end_date = date_op.add(today, None, 1, None) else: end_date = date_op.get_date(end_date) tasks = set() for key, value in sorted(self.todos['due'].iteritems(), key=lambda (k, v): (v, k)): if (end_date != None): due_date = date_op.get_date(self.todos['due'][key]) if (date_op.compare(due_date, end_date) <= 0): tasks.add(key) else: tasks.add(key) return tasks
def get_dues(self, end_date=None): if ( end_date != None ): today = date_op.today() if ( end_date == 'today' ): end_date = today elif ( 'this month' in end_date ): end_date = date_op.this_month() elif ( 'this week' in end_date ): end_date = date_op.this_week() elif ( 'week' in end_date ): end_date = date_op.add(today, None, None, 6) elif ( 'month' in end_date ): end_date = date_op.add(today, None, 1, None) else: end_date = date_op.get_date(end_date) tasks = set() for key,value in sorted(self.todos['due'].iteritems(), key=lambda(k,v):(v,k)): if ( end_date != None ): due_date = date_op.get_date(self.todos['due'][key]) if ( date_op.compare(due_date, end_date) <= 0 ): tasks.add(key) else: tasks.add(key) return tasks
def by_due(self, tasks, task_db): period = {'nodue':0, 'overdue':0, 'today':0, 'week':0, 'future':0} due_dates = dict() nodue_tasks = set() for task in tasks: task_due = task_db.get_due(task) if ( task_due != None): due_dates[task] = task_due else: nodue_tasks.add(task) period['nodue'] += 1 if ( period['nodue'] > 0 ): print "\nNo Due Date" getattr(self, 'by_id')(nodue_tasks, task_db) for key,value in sorted(due_dates.iteritems(), key=lambda(k,v):(v,k)): due_date = due_dates[key] if ( date_op.before_today(due_date) ): if ( period['overdue'] == 0 ): print "\nOverdue" period['overdue'] += 1 elif ( date_op.equal_today(due_date) ): if ( period['today'] == 0 ): print "\nToday" period['today'] += 1 elif ( date_op.after_today(due_date) and date_op.compare(due_date, date_op.within(None, None, 7)) == -1 ): if ( period['week'] == 0): print "\nWithin a Week" period['week'] += 1 else: if ( period['future'] == 0 ): print "\nIn the future" period['future'] += 1 self.__print_task(key, task_db) print 'No Due Date: ', period['nodue'], ' Overdue: ', period['overdue'], ' Today: ', period['today'], ' This Week: ', period['week'], ' Week Away: ', period['future']