X-Git-Url: https://plomlompom.com/repos/?p=misc;a=blobdiff_plain;f=todo.py;fp=todo.py;h=29c1226e2d4938605bb0a2b48749ce051340c6f3;hp=8c911fb1a9247325fcd603a2e65ed6b9269f41d0;hb=8822ee7e3069193162469438bb54ee4629e1ae19;hpb=053b249eb31c5772f5e391058a7580d05966d1a5 diff --git a/todo.py b/todo.py index 8c911fb..29c1226 100644 --- a/todo.py +++ b/todo.py @@ -309,29 +309,45 @@ class TodoDB(PlomDB): task_rows.sort(key=lambda r: False if not r['todo'] else True, reverse=True) elif task_sort == 'comment': task_rows.sort(key=lambda r: '' if not r['todo'] else r['todo'].comment, reverse=True) - return j2env.get_template('day.html').render(db=self, action=self.prefix+'/day', prev_date=prev_date_str, next_date=next_date_str, task_rows=task_rows, sort=task_sort) + done_tasks = [] + for uuid, task in self.tasks.items(): + if uuid in self.selected_day.todos.keys(): + todo = self.selected_day.todos[uuid] + if todo.done: + done_tasks += [todo] + done_tasks.sort(key=lambda t: t.effort, reverse=True) + return j2env.get_template('day.html').render(db=self, action=self.prefix+'/day', prev_date=prev_date_str, next_date=next_date_str, task_rows=task_rows, sort=task_sort, done_tasks=done_tasks) def show_calendar(self, start_date_str, end_date_str): self.t_filter_and = ['calendar'] self.t_filter_not = ['deleted'] self.set_visibilities() days_to_show = {} - todays_date = str(datetime.now())[:10] - target_start_str = start_date_str if start_date_str else sorted(self.days.keys())[0] - target_start = todays_date if target_start_str == 'today' else target_start_str - target_end_str = end_date_str if end_date_str else sorted(self.days.keys())[-1] - target_end = todays_date if target_end_str == 'today' else target_end_str - start_date = datetime.strptime(target_start, DATE_FORMAT) - end_date = datetime.strptime(target_end, DATE_FORMAT) - for n in range(int((end_date - start_date).days) + 1): - current_date_obj = start_date + timedelta(n) - current_date = current_date_obj.strftime(DATE_FORMAT) - if current_date not in self.days.keys(): - days_to_show[current_date] = self.add_day() + todays_date_str = str(datetime.now())[:10] + todays_date_obj = datetime.strptime(todays_date_str, DATE_FORMAT) + yesterdays_date_obj = todays_date_obj - timedelta(1) + yesterdays_date_str = yesterdays_date_obj.strftime(DATE_FORMAT) + start_date_obj = datetime.strptime(sorted(self.days.keys())[0], DATE_FORMAT) + if start_date_str and len(start_date_str) > 0: + if start_date_str in {'today', 'yesterday'}: + start_date_obj = todays_date_obj if start_date_str == 'today' else yesterdays_date_obj + else: + start_date_obj = datetime.strptime(start_date_str, DATE_FORMAT) + end_date_obj = datetime.strptime(sorted(self.days.keys())[-1], DATE_FORMAT) + if end_date_str and len(end_date_str) > 0: + if end_date_str in {'today', 'yesterday'}: + end_date_obj = todays_date_obj if end_date_str == 'today' else yesterdays_date_obj + else: + end_date_obj = datetime.strptime(start_date_str, DATE_FORMAT) + for n in range(int((end_date_obj - start_date_obj).days) + 1): + current_date_obj = start_date_obj + timedelta(n) + current_date_str = current_date_obj.strftime(DATE_FORMAT) + if current_date_str not in self.days.keys(): + days_to_show[current_date_str] = self.add_day() else: - days_to_show[current_date] = self.days[current_date] - days_to_show[current_date].weekday = datetime.strptime(current_date, DATE_FORMAT).strftime('%A')[:2] - return j2env.get_template('calendar.html').render(db=self, days=days_to_show, action=self.prefix+'/calendar', today=str(datetime.now())[:10], start_date=start_date_str, end_date=end_date_str) + days_to_show[current_date_str] = self.days[current_date_str] + days_to_show[current_date_str].weekday = datetime.strptime(current_date_str, DATE_FORMAT).strftime('%A')[:2] + return j2env.get_template('calendar.html').render(db=self, days=days_to_show, action=self.prefix+'/calendar', start_date=start_date_str, end_date=end_date_str) def show_todo(self, task_uuid, selected_date, referer): if selected_date not in self.days.keys(): @@ -552,7 +568,6 @@ class TodoHandler(PlomHandler): page = 'cookie unset!' else: start_date = get_param('start') - start_date = start_date if start_date else 'today' end_date = get_param('end') page = db.show_calendar(start_date, end_date) if parsed_url.path != app_config['prefix'] + '/unset_cookie':