- 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)
-
- def show_todo(self, task_uuid, selected_date):
- todo = self.days[selected_date].todos[task_uuid]
- return j2env.get_template('todo.html').render(db=self, todo=todo, action=self.prefix+'/todo')
+ 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_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():
+ self.days[selected_date] = self.add_day()
+ if task_uuid in self.days[selected_date].todos:
+ todo = self.days[selected_date].todos[task_uuid]
+ else:
+ todo = self.days[selected_date].add_todo(task_uuid)
+ return j2env.get_template('todo.html').render(db=self, todo=todo, action=self.prefix+'/todo', referer=referer)