63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
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))
|
|
|