def actions_by_tag(tag_type, tag_value): session = get_session() db_actions = Action.select_some_by_tag(session, tag_type, tag_value).all() db_actions.sort(key=lambda a: a.time, reverse=True) return render_template('actions_by_tag.html', actions=db_actions)
def api_add_action(): content = request.json new_action = Action(**content) session = get_session() new_action.add_to_db(session) return json.dumps({'success': True}), 201, {'Content-Type': 'application/json'}
def api_get_actions(): session = get_session() db_actions = Action.select_all(session) ret = [] for a in db_actions: ret.append(a.to_json()) return json.dumps(ret), 200, {'Content-Type': 'application/json'}
def api_get_tags_by_type(tag_type): session = get_session() db_tags = Tag.get_tags_by_type(session, tag_type) ret = [] for t in db_tags: ret.append(t[0]) return json.dumps(ret), 200, {'Content-Type': 'application/json'}
def single_action(event_id): session = get_session() db_action = Action.select_one(session, id=event_id) db_tag_types = [tt[0] for tt in Tag.get_types(session)] result = None if request.method == 'POST': # form data is passed as an immutable multi-dict and needs to be coerced into a more usable type form_data = {x: request.form[x] for x in request.form} db_action.add_tag(session, **form_data) result = 'Added tag.' return render_template('single_action.html', action=db_action, result=result, tag_types=db_tag_types)
def add_action(): result = None new_action_id = None session = get_session() db_event_titles = [et[0] for et in Action.get_titles(session)] db_event_dates = [ed[0] for ed in Tag.get_tags_by_type(session, 'Date')] if request.method == 'POST': # form data is passed as an immutable multi-dict and needs to be coerced into a more usable type form_data = {x: request.form[x] for x in request.form} new_action = Action(**form_data) if new_action.add_to_db(session): result = "The action '{}' was added to the database.".format(new_action.title) new_action_id = new_action.id else: result = "ERROR: The action '{}' could not be added to the database.".format(new_action.title) return render_template('add_action.html', result=result, new_action_id=new_action_id, action_titles=db_event_titles, event_dates=db_event_dates)
def duplicate_action(): result = None new_action_id = None session = get_session() db_event_titles = [et[0] for et in Action.get_titles(session)] db_event_dates = [ed[0] for ed in Tag.get_tags_by_type(session, 'Date')] if request.method == 'POST': # form data is passed as an immutable multi-dict and needs to be coerced into a more usable type form_data = {x: request.form[x] for x in request.form} old_action = Action.select_one(session, title=form_data['title']) if form_data['time']: new_action = old_action.duplicate(session, replacement_tags={'Date': form_data['time']}, skip_tags=['Date']) else: new_action = old_action.duplicate(session, skip_tags=['Date']) if new_action.add_to_db(session): result = "The action '{}' was duplicated in the database.".format(new_action.title) new_action_id = new_action.id else: result = "ERROR: The action '{}' could not be duplicated in the database.".format(new_action.title) return render_template('duplicate_action.html', result=result, new_action_id=new_action_id, action_titles=db_event_titles, event_dates=db_event_dates)
def tags_by_type(tag_type): session = get_session() db_tags = Tag.get_tags_count_by_type(session, tag_type) return render_template('tags_by_type.html', tag_type=tag_type, tags=db_tags)
def tag_types(): session = get_session() db_tag_types = Tag.get_types_count(session) return render_template('tag_types.html', tag_types=db_tag_types)
def actions(): session = get_session() db_actions = Action.select_all(session) db_actions.sort(key=lambda a: a.time, reverse=True) return render_template('actions.html', actions=db_actions)
def api_get_single_action(event_id): session = get_session() action = Action.select_one(session, id=event_id) return json.dumps(action.to_json()), 200, {'Content-Type': 'application/json'}