"Refactor guest blueprint templates and database schema"
This commit is contained in:
@@ -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.
2
backend/app/static/css/tailwind.min.css
vendored
2
backend/app/static/css/tailwind.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -116,7 +116,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Printers Grid -->
|
<!-- Printers Grid -->
|
||||||
<div id="printers-grid" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
<div id="printers-grid" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<p class="text-slate-600 dark:text-slate-400">Lade Drucker...</p>
|
<p class="text-slate-600 dark:text-slate-400">Lade Drucker...</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Empty State -->
|
<!-- Empty State -->
|
||||||
<div id="empty-state" class="dashboard-card p-8 text-center hidden">
|
<div id="empty-state" class="dashboard-card p-8 text-center hidden">
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
Ersten Drucker hinzufügen
|
Ersten Drucker hinzufügen
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Add/Edit Printer Modal -->
|
<!-- Add/Edit Printer Modal -->
|
||||||
<div id="printerModal" class="fixed inset-0 bg-black/60 backdrop-blur-sm hidden z-50">
|
<div id="printerModal" class="fixed inset-0 bg-black/60 backdrop-blur-sm hidden z-50">
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Printer Details Modal -->
|
<!-- Printer Details Modal -->
|
||||||
<div id="printerDetailsModal" class="fixed inset-0 bg-black/60 backdrop-blur-sm hidden z-50">
|
<div id="printerDetailsModal" class="fixed inset-0 bg-black/60 backdrop-blur-sm hidden z-50">
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
let allPrinters = [];
|
let allPrinters = [];
|
||||||
|
Reference in New Issue
Block a user