from flask import Blueprint, render_template, request, session, redirect, url_for, flash, jsonify from database import central_query from blueprints.auth import login_required from rechten import recht_vereist # We noemen de blueprint 'devices' bugreport_overzicht_bp = Blueprint('bugreport_overzicht', __name__) #------------------------------------------------- # --- ROUTE TOESTELLEN (Inventaris Toestellen) --- #------------------------------------------------- @bugreport_overzicht_bp.route("/", methods=["GET", "POST"]) @login_required @recht_vereist('bugs_bekijken', 'bugs_beheren') def bugreport_overzicht(): query = request.form.get("query", "") if request.method == "POST" else request.args.get("query", "") message = None search_term = f"%{query}%" # Bugs staan in de centrale database (gelden voor PIVOT, niet voor één school) sql = """ SELECT * FROM ( SELECT b.Bug_ID, b.Gebruikersnaam AS Gebruiker, b.Timestamp AS Datum, b.Omschrijving, b.Foutcode, st.Omschrijving AS Status, sc.School_naam AS School FROM Bugs b JOIN Status st ON st.Bugstatus_ID = b.Bugstatus_ID LEFT JOIN Scholen sc ON sc.School_ID = b.School_ID ) x WHERE CONCAT_WS(' ', Bug_ID, Gebruiker, Datum, Omschrijving, Foutcode, Status, School) LIKE %s ORDER BY Bug_ID DESC """ results = central_query(sql, (search_term,)) if query and not results: message = f"Geen resultaten gevonden voor '{query}'." elif not results: message = "Er zijn momenteel geen bugreports." return render_template("bugreport_overzicht.html", results=results, query=query, message=message) #--------------------------------- # --- STATUS UPDATES --- #--------------------------------- @bugreport_overzicht_bp.route("/update_bugreport", methods=["POST"]) @login_required @recht_vereist('bugs_beheren') def bugreport_wijzig_status(): Bug_ID = request.form.get("Bug_ID") new_status = request.form.get("new_status") query = request.form.get("query", "") if new_status in ["Nieuw", "In behandeling", "Fixed"]: central_query("UPDATE Bugs SET Bugstatus_ID = (SELECT Bugstatus_ID FROM Status WHERE Omschrijving = %s) " "WHERE Bug_ID = %s", (new_status, Bug_ID), commit=True) flash(f"Status van {Bug_ID} gewijzigd naar {new_status}", "success") return redirect(url_for("bugreport_overzicht.bugreport_overzicht", query=query))