Initial commit
This commit is contained in:
commit
536ff43ce4
158 files changed
+30355
No files matched your search
@@ -0,0 +1,74 @@
|
||||
from datetime import datetime
|
||||
from flask import Blueprint, render_template, request, redirect, url_for, flash, session
|
||||
from database import central_query
|
||||
from blueprints.auth import login_required
|
||||
from rechten import recht_vereist
|
||||
|
||||
bugreport_bp = Blueprint('bugreport', __name__)
|
||||
|
||||
@bugreport_bp.route('/', methods=['GET'])
|
||||
@login_required
|
||||
def bugreport():
|
||||
"""Toont het bugreport formulier."""
|
||||
|
||||
if 'security_group' not in session:
|
||||
flash('Je moet eerst inloggen om een bug te rapporteren.', 'error')
|
||||
return redirect(url_for('auth.login'))
|
||||
|
||||
return render_template('bugreport.html')
|
||||
|
||||
|
||||
@bugreport_bp.route('/submit', methods=['POST'])
|
||||
@login_required
|
||||
def bugreport_submit():
|
||||
"""Verwerkt het ingezonden bugreport en slaat het op in de database."""
|
||||
|
||||
|
||||
# Gegevens ophalen uit het HTML formulier
|
||||
tijdstip_str = request.form.get('tijdstip')
|
||||
omschrijving = request.form.get('omschrijving')
|
||||
foutcode = request.form.get('foutcode') # Kan leeg zijn (None of lege string)
|
||||
|
||||
# Automatische gegevens
|
||||
gebruiker_id = session["user"] # Of session.get('email'), afhankelijk van je login-systeem
|
||||
status = 'Nieuw'
|
||||
|
||||
# Validatie (html5 required is een back-up, server-side validatie is veiliger)
|
||||
if not tijdstip_str or not omschrijving:
|
||||
flash('Tijdstip en omschrijving zijn verplichte velden!', 'error')
|
||||
return redirect(url_for('bugreport.bugreport_page'))
|
||||
|
||||
try:
|
||||
# Converteren van datetime-local string (YYYY-MM-DDTHH:MM) naar MySQL formaat
|
||||
tijdstip = datetime.strptime(tijdstip_str, '%Y-%m-%dT%H:%M')
|
||||
except ValueError:
|
||||
flash('Ongeldig datum- of tijdformaat ontvangen.', 'error')
|
||||
return redirect(url_for('bugreport.bugreport_page'))
|
||||
|
||||
# SQL query om de bug op te slaan
|
||||
# Pas de tabelnaam ('bugs') en kolomnamen aan naar jouw exacte database-schema
|
||||
# Centrale database: Bugs (Bugstatus_ID 1 = Nieuw)
|
||||
from tenancy import huidige_school
|
||||
school = huidige_school(verplicht=False)
|
||||
query = """
|
||||
INSERT INTO Bugs (Timestamp, Omschrijving, Foutcode, Bugstatus_ID, Gebruiker_ID, Gebruikersnaam, School_ID)
|
||||
VALUES (%s, %s, %s, 1, %s, %s, %s)
|
||||
"""
|
||||
params = (tijdstip, omschrijving, foutcode or None, session.get('gebruiker_id'), gebruiker_id,
|
||||
school.id if school else None)
|
||||
|
||||
try:
|
||||
# Voer de query uit met commit=True om de data op te slaan
|
||||
central_query(query, params, commit=True)
|
||||
|
||||
# Succesmelding sturen en doorverwijzen naar het dashboard
|
||||
flash('Je bugreport is succesvol ingediend! Bedankt voor je feedback.', 'success')
|
||||
return redirect(url_for('main.dashboard'))
|
||||
|
||||
except Exception as e:
|
||||
# Log de fout eventueel in de console voor debugging
|
||||
print(f"Database error tijdens bugreport: {e}")
|
||||
|
||||
# Foutmelding tonen aan de gebruiker
|
||||
flash('Er ging iets mis bij het opslaan in de database. Probeer het later opnieuw.', 'error')
|
||||
return redirect(url_for('bugreport.bugreport_page'))
|
||||
Reference in new issue
Block a user