def get_current_todos(): server = ShorthandServer(current_app.config['config_path']) status = get_request_argument(request.args, name='status', default='incomplete') directory_filter = get_request_argument(request.args, name='directory_filter') query_string = get_request_argument(request.args, name='query_string') sort_by = get_request_argument(request.args, name='sort_by') tag = get_request_argument(request.args, name='tag') suppress_future = get_request_argument(request.args, name='suppress_future', arg_type='bool', default=True) case_sensitive = get_request_argument(request.args, name='case_sensitive', arg_type='bool', default=False) if directory_filter == 'ALL': directory_filter = None if tag == 'ALL': tag = None todos = server.get_todos(todo_status=status, directory_filter=directory_filter, query_string=query_string, case_sensitive=case_sensitive, sort_by=sort_by, suppress_future=suppress_future, tag=tag) current_app.logger.info(f'Returning {len(todos)} todo results') wrapped_response = wrap_response_data(todos) wrapped_response['meta'] = analyze_todos(todos) return json.dumps(wrapped_response)
def show_home_page(): server = ShorthandServer(current_app.config['config_path']) default_directory = server.get_config().get('default_directory') todos = server.get_todos(todo_status='incomplete', directory_filter=default_directory) questions = server.get_questions(question_status='unanswered', directory_filter=default_directory) summary = server.get_calendar() events = [] colors = { 'section': 'black', 'incomplete_todo': 'red', 'completed_todo': 'blue', 'skipped_todo': 'grey', 'question': 'purple', 'answer': 'green', } for year, year_data in summary.items(): for month, month_data in year_data.items(): for day, day_data in month_data.items(): for event in day_data: formatted_event = { 'title': event['event'], 'start': f'{year}-{month}-{day}', 'url': f'/render?path={event["file_path"]}' f'#line-number-{event["line_number"]}', 'type': event['type'] } if formatted_event['type'] in colors.keys(): formatted_event['color'] = colors[ formatted_event['type']] events.append(formatted_event) return render_template('home.j2', num_todos=len(todos), num_questions=len(questions), events=json.dumps(events), static_content=static_content)