Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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']