from flask import Blueprint, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy from models import db, Question, Choice from forms import ChoiceForm, QuestionForm # Maak de blueprint aan admin_bp = Blueprint('admin', __name__) # Route voor het admin-dashboard @admin_bp.route('/') def admin_dashboard(): # Haal alle vragen en keuzes op uit de database questions = Question.query.all() return render_template('admin_dashboard.html', questions=questions) # Route voor het toevoegen van een vraag @admin_bp.route('/add_question', methods=['GET', 'POST']) def add_question(): form = QuestionForm() if form.validate_on_submit(): question_text = form.text.data new_question = Question(text=question_text) db.session.add(new_question) db.session.commit() return redirect(url_for('admin.admin_dashboard')) return render_template('add_question.html', form=form) # Route voor het bewerken van een vraag @admin_bp.route('/edit_question/', methods=['GET', 'POST']) def edit_question(question_id): question = Question.query.get_or_404(question_id) form = QuestionForm(obj=question) if form.validate_on_submit(): question.text = form.text.data db.session.commit() return redirect(url_for('admin.admin_dashboard')) return render_template('edit_question.html', form=form, question=question) # Route voor het verwijderen van een vraag @admin_bp.route('/delete_question/', methods=['POST']) def delete_question(question_id): question = Question.query.get_or_404(question_id) db.session.delete(question) db.session.commit() return redirect(url_for('admin.admin_dashboard')) # Route voor het toevoegen van een keuze aan een vraag @admin_bp.route('/add_choice/', methods=['GET', 'POST']) def add_choice(question_id): form = ChoiceForm() question = Question.query.get_or_404(question_id) if form.validate_on_submit(): choice_text = form.text.data next_question_id = form.next_question.data if form.next_question.data else None new_choice = Choice( text=choice_text, question_id=question.id, next_question_id=next_question_id) db.session.add(new_choice) db.session.commit() return redirect(url_for('admin.edit_question', question_id=question.id)) return render_template('add_choice.html', form=form, question=question) # Route voor het bewerken van een keuze @admin_bp.route('/edit_choice/', methods=['GET', 'POST']) def edit_choice(choice_id): choice = Choice.query.get_or_404(choice_id) form = ChoiceForm(obj=choice) if form.validate_on_submit(): choice.text = form.text.data choice.next_question_id = form.next_question.data if form.next_question.data else None db.session.commit() return redirect(url_for('admin.edit_question', question_id=choice.question_id)) return render_template('edit_choice.html', form=form, choice=choice) # Route voor het verwijderen van een keuze @admin_bp.route('/delete_choice/', methods=['POST']) def delete_choice(choice_id): choice = Choice.query.get_or_404(choice_id) db.session.delete(choice) db.session.commit() return redirect(url_for('admin.edit_question', question_id=choice.question_id))