"Refactor guest blueprint templates and database schema"

This commit is contained in:
2025-05-29 16:16:03 +02:00
parent a1f9e70fd2
commit 2e306cb0df
5 changed files with 118 additions and 101 deletions

View File

@@ -4,6 +4,10 @@ import bcrypt
from datetime import datetime, timedelta from datetime import datetime, timedelta
from flask import Blueprint, render_template, request, jsonify, redirect, url_for, abort, session, flash from flask import Blueprint, render_template, request, jsonify, redirect, url_for, abort, session, flash
from flask_login import current_user, login_required from flask_login import current_user, login_required
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from wtforms import StringField, TextAreaField, IntegerField, SelectField
from wtforms.validators import DataRequired, Email, Optional, NumberRange
from functools import wraps from functools import wraps
from sqlalchemy import desc from sqlalchemy import desc
from sqlalchemy.orm import joinedload from sqlalchemy.orm import joinedload
@@ -14,6 +18,19 @@ from utils.logging_config import get_logger
guest_blueprint = Blueprint('guest', __name__) guest_blueprint = Blueprint('guest', __name__)
logger = get_logger("guest") logger = get_logger("guest")
# Flask-WTF Formular für Gastanfragen
class GuestRequestForm(FlaskForm):
name = StringField('Vollständiger Name', validators=[DataRequired()])
email = StringField('E-Mail-Adresse', validators=[DataRequired(), Email()])
printer_id = SelectField('Drucker auswählen', coerce=int, validators=[Optional()])
duration_min = IntegerField('Geschätzte Dauer (Minuten)',
validators=[DataRequired(), NumberRange(min=1, max=1440)],
default=60)
reason = TextAreaField('Projektbeschreibung', validators=[Optional()])
file = FileField('3D-Datei hochladen',
validators=[Optional(), FileAllowed(['stl', 'obj', '3mf', 'amf', 'gcode'],
'3D-Dateien sind erlaubt!')])
# Hilfsfunktionen # Hilfsfunktionen
def can_approve_jobs(user_id): def can_approve_jobs(user_id):
"""Prüft, ob ein Benutzer Anfragen genehmigen darf.""" """Prüft, ob ein Benutzer Anfragen genehmigen darf."""

Binary file not shown.

File diff suppressed because one or more lines are too long