Add tags to dashboard

This commit is contained in:
Peter Stockings
2023-03-31 22:06:53 +11:00
parent 14db201c30
commit 3fd7a63d5e
6 changed files with 205 additions and 163 deletions

39
app.py
View File

@@ -38,6 +38,7 @@ def dashboard():
exercises = db.get_exercises()
people = db.get_people()
tags = db.get_tags_for_dashboard()
selected_person_ids = [int(i)
for i in request.args.getlist('person_id')]
@@ -59,8 +60,8 @@ def dashboard():
if htmx:
return render_template('partials/page/dashboard.html',
model=people_and_exercise_rep_maxes, people=people, exercises=exercises, min_date=min_date, max_date=max_date, selected_person_ids=selected_person_ids, selected_exercise_ids=selected_exercise_ids), 200, {"HX-Trigger": "updatedPeople"}
return render_template('dashboard.html', model=people_and_exercise_rep_maxes, people=people, exercises=exercises, min_date=min_date, max_date=max_date, selected_person_ids=selected_person_ids, selected_exercise_ids=selected_exercise_ids)
model=people_and_exercise_rep_maxes, people=people, exercises=exercises, min_date=min_date, max_date=max_date, selected_person_ids=selected_person_ids, selected_exercise_ids=selected_exercise_ids, tags=tags), 200, {"HX-Trigger": "updatedPeople"}
return render_template('dashboard.html', model=people_and_exercise_rep_maxes, people=people, exercises=exercises, min_date=min_date, max_date=max_date, selected_person_ids=selected_person_ids, selected_exercise_ids=selected_exercise_ids, tags=tags)
@ app.route("/person/list", methods=['GET'])
@@ -314,28 +315,36 @@ def settings():
return render_template('settings.html', people=people, exercises=exercises)
@ app.route("/person/<int:person_id>/tag/redirect", methods=['GET'])
@ validate_person
def goto_tag(person_id):
@ app.route("/tag/redirect", methods=['GET'])
def goto_tag():
person_id = request.args.get("person_id")
tag_filter = request.args.get('filter')
return redirect(url_for('get_person', person_id=person_id) + tag_filter)
if person_id:
return redirect(url_for('get_person', person_id=int(person_id)) + tag_filter)
return redirect(url_for('dashboard') + tag_filter)
@ app.route("/person/<int:person_id>/tag/add", methods=['GET'])
@ validate_person
def add_tag(person_id):
@ app.route("/tag/add", methods=['GET'])
def add_tag():
person_id = request.args.get("person_id")
tag = request.args.get('tag')
tag_filter = request.args.get('filter')
db.add_tag_for_person(person_id, tag, tag_filter)
if person_id:
db.add_tag_for_person(person_id, tag, tag_filter)
else:
db.add_tag_for_dashboard(tag, tag_filter)
return ""
@ app.route("/person/<int:person_id>/tag/<int:tag_id>/delete", methods=['GET'])
@ validate_person
def delete_tag(person_id, tag_id):
@ app.route("/tag/<int:tag_id>/delete", methods=['GET'])
def delete_tag(tag_id):
person_id = request.args.get("person_id")
tag_filter = request.args.get("filter")
db.delete_tag_for_person(person_id=person_id, tag_id=tag_id)
return redirect(url_for('get_person', person_id=person_id) + tag_filter)
if person_id:
db.delete_tag_for_person(person_id=person_id, tag_id=tag_id)
return redirect(url_for('get_person', person_id=person_id) + tag_filter)
db.delete_tag_for_dashboard(tag_id)
return redirect(url_for('dashboard') + tag_filter)
@ app.context_processor