- # def show_pick_tasks(self, search, hide_chosen_tasks, sort_order=None):
- # prev_date_str, next_date_str = self.neighbor_dates()
-
- # chosen_todos = self.selected_day.linked_todos_as_list
-
- # relevant_todos = []
- # for todo in self.todos.values():
- # if todo.done\
- # or (not todo.visible)\
- # or (not todo.matches(search))\
- # or todo.earliest_date >= self.selected_date:
- # continue
- # relevant_todos += [todo]
-
- # filtered_tasks = []
- # chosen_tasks = [todo.task for todo in self.selected_day.linked_todos_as_list]
- # for uuid, task in self.tasks.items():
- # if (not task.visible)\
- # or (not task.matches(search))\
- # or (hide_chosen_tasks and task in chosen_tasks):
- # continue
- # filtered_tasks += [task]
-
- # if sort_order == 'title':
- # chosen_todos.sort(key=lambda t: t.title)
- # relevant_todos.sort(key=lambda t: t.dated_title)
- # tasks.sort(key=lambda t: t.title.then)
- # elif sort_order == 'effort':
- # chosen_todos.sort(key=lambda t:
- # t.day_effort if t.day_effort else (t.default_effort if t.done else 0),
- # reverse=True)
- # relevant_todos.sort(key=lambda t: t.all_days_effort, reverse=True)
- # filtered_tasks.sort(key=lambda t: t.default_effort.then, reverse=True)
-
- # return j2env.get_template('pick_tasks.html').render(
- # sort=sort_order,
- # tags=self.t_tags,
- # chosen_todos=chosen_todos,
- # filter_and=self.tag_filter_and,
- # filter_not=self.tag_filter_not,
- # day=self.selected_day,
- # prev_date=prev_date_str,
- # next_date=next_date_str,
- # all_tasks=[t for t in self.tasks.values()],
- # filtered_tasks=filtered_tasks,
- # hide_chosen_tasks=hide_chosen_tasks,
- # relevant_todos=relevant_todos,
- # search=search)
-
- # helpers
-
- def set_visibilities(self):
- for uuid, t in self.tasks.items():
- t.visible = len([tag for tag in self.tag_filter_and if not tag in t.tags.now]) == 0\
- and len([tag for tag in self.tag_filter_not if tag in t.tags.now]) == 0\
- and ((not self.hide_unchosen) or uuid in self.selected_day.todos.keys())
- for todo in self.todos.values():
- todo.visible = len([tag for tag in self.tag_filter_and if not tag in todo.day_tags | todo.task.tags.now ]) == 0\
- and len([tag for tag in self.tag_filter_not if tag in todo.day_tags | todo.task.tags.now ]) == 0\
- and ((not self.hide_done) or (not todo.done))
-
- def get_limit_days_from_date_strings(self, start_date_str, end_date_str):
- todays_date_obj = datetime.strptime(today_date(), DATE_FORMAT)
- yesterdays_date_obj = todays_date_obj - timedelta(1)
- def get_day_limit_obj(index, day_limit_string):
- date_obj = datetime.strptime(sorted(self.days.keys())[index], DATE_FORMAT)
- if day_limit_string and len(day_limit_string) > 0:
- if day_limit_string in {'today', 'yesterday'}:
- date_obj = todays_date_obj if day_limit_string == 'today' else yesterdays_date_obj
- else:
- date_obj = datetime.strptime(day_limit_string, DATE_FORMAT)
- return date_obj
- start_date_obj = get_day_limit_obj(0, start_date_str)
- end_date_obj = get_day_limit_obj(-1, end_date_str)
- return start_date_obj, end_date_obj
-
- def neighbor_dates(self):
- current_date = datetime.strptime(self.selected_date, DATE_FORMAT)
- prev_date = current_date - timedelta(days=1)
- prev_date_str = prev_date.strftime(DATE_FORMAT)
- next_date = current_date + timedelta(days=1)
- next_date_str = next_date.strftime(DATE_FORMAT)
- return prev_date_str, next_date_str
-