def try_to_take_task_break(task_id, form, date=None): if date is not None: break_date = datetime.datetime.strptime( date, '%Y %b %d', ) just_before_midnight = datetime.datetime.max.time() break_time = datetime.datetime.combine( break_date, just_before_midnight, ) else: break_time = datetime.datetime.now() task_break = TaskBreak.create( comment=form.task_comment.data, associated_task_id=task_id, break_time=break_time, owner_id=current_user.id, ) if task_break is None: # TODO: better output from this flash( 'Could not take break from task!', 'danger', ) return redirect(request.referrer) else: # TODO: improve this message flash( 'Taking a break...', 'success', ) return redirect(url_for('home'))
def home_view(): if current_user.is_anonymous: goals = [] tasks = [] completed = [] breaks = [] else: current_time = datetime.datetime.now() goals = Goal.query.filter( Goal.owner_id == current_user.id, ).all() tasks = Task.query.filter( Task.owner_id == current_user.id, ).all() tasks = [ task for task in tasks if task.finish_time is None or task.finish_time >= current_time ] completed = CompletedTask.get_completed( date=datetime.datetime.today(), ) breaks = TaskBreak.get_breaks( date=datetime.datetime.today(), ) tree = {'goals': {}} top_level_goals = [ (goal.id, goal.name) for goal in goals if goal.parent_goal_id is None ] for goal in top_level_goals: tree['goals'][goal] = make_goal_branch( goal, goals, tasks, completed, breaks, ) return render_turkey("home.html", tree=tree, current_page='active_tasks')