Add ability to add/update/delete exercise categories
This commit is contained in:
@@ -115,3 +115,70 @@ def delete_exercise(exercise_id):
|
||||
db.exercises.delete_exercise(exercise_id)
|
||||
db.activityRequest.log(current_user.id, 'DELETE_EXERCISE', 'exercise', exercise_id, f"Deleted exercise: {exercise['name']}")
|
||||
return ""
|
||||
|
||||
# Category Management Routes
|
||||
@exercises_bp.route("/category", methods=['POST'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def create_category():
|
||||
name = request.form.get("name")
|
||||
category = db.exercises.add_category(name)
|
||||
db.activityRequest.log(current_user.id, 'CREATE_CATEGORY', 'category', category['category_id'], f"Created attribute category: {name}")
|
||||
return render_template('partials/exercise/category_admin.html', category_id=category['category_id'], name=category['name'], attributes=[])
|
||||
|
||||
@exercises_bp.route("/category/<int:category_id>", methods=['GET', 'PUT'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def update_category(category_id):
|
||||
if request.method == 'GET':
|
||||
category = db.exercises.execute('SELECT category_id, name FROM exercise_attribute_category WHERE category_id = %s', [category_id], one=True)
|
||||
is_edit = request.args.get('is_edit') == 'true'
|
||||
all_attrs = db.exercises.execute('SELECT attribute_id, name FROM exercise_attribute WHERE category_id = %s', [category_id])
|
||||
return render_template('partials/exercise/category_admin.html', category_id=category_id, name=category['name'], attributes=all_attrs, is_edit=is_edit)
|
||||
|
||||
name = request.form.get("name")
|
||||
category = db.exercises.update_category(category_id, name)
|
||||
db.activityRequest.log(current_user.id, 'UPDATE_CATEGORY', 'category', category_id, f"Updated attribute category: {name}")
|
||||
all_attrs = db.exercises.execute('SELECT attribute_id, name FROM exercise_attribute WHERE category_id = %s', [category_id])
|
||||
return render_template('partials/exercise/category_admin.html', category_id=category_id, name=name, attributes=all_attrs)
|
||||
|
||||
@exercises_bp.route("/category/<int:category_id>", methods=['DELETE'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def delete_category(category_id):
|
||||
db.exercises.delete_category(category_id)
|
||||
db.activityRequest.log(current_user.id, 'DELETE_CATEGORY', 'category', category_id, f"Deleted attribute category")
|
||||
return ""
|
||||
|
||||
# Attribute Management Routes
|
||||
@exercises_bp.route("/attribute", methods=['POST'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def create_attribute():
|
||||
name = request.form.get("name")
|
||||
category_id = request.form.get("category_id", type=int)
|
||||
attribute = db.exercises.add_attribute(name, category_id)
|
||||
db.activityRequest.log(current_user.id, 'CREATE_ATTRIBUTE', 'attribute', attribute['attribute_id'], f"Created attribute: {name}")
|
||||
return render_template('partials/exercise/attribute_admin.html', attribute=attribute)
|
||||
|
||||
@exercises_bp.route("/attribute/<int:attribute_id>", methods=['GET', 'PUT'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def update_attribute(attribute_id):
|
||||
if request.method == 'GET':
|
||||
attribute = db.exercises.execute('SELECT attribute_id, name, category_id FROM exercise_attribute WHERE attribute_id = %s', [attribute_id], one=True)
|
||||
is_edit = request.args.get('is_edit') == 'true'
|
||||
return render_template('partials/exercise/attribute_admin.html', attribute=attribute, is_edit=is_edit)
|
||||
|
||||
name = request.form.get("name")
|
||||
attribute = db.exercises.update_attribute(attribute_id, name)
|
||||
db.activityRequest.log(current_user.id, 'UPDATE_ATTRIBUTE', 'attribute', attribute_id, f"Updated attribute: {name}")
|
||||
return render_template('partials/exercise/attribute_admin.html', attribute=attribute)
|
||||
|
||||
@exercises_bp.route("/attribute/<int:attribute_id>", methods=['DELETE'])
|
||||
@login_required
|
||||
@admin_required
|
||||
def delete_attribute(attribute_id):
|
||||
db.exercises.delete_attribute(attribute_id)
|
||||
db.activityRequest.log(current_user.id, 'DELETE_ATTRIBUTE', 'attribute', attribute_id, "Deleted attribute")
|
||||
return ""
|
||||
|
||||
Reference in New Issue
Block a user