05/06 Modify Director menu

This commit is contained in:
2026-05-06 12:28:26 -04:00
parent c2d63b61a3
commit 63740656cc
3 changed files with 17 additions and 15 deletions
+5 -5
View File
@@ -111,7 +111,7 @@ def profile():
@bp.route('/users')
@login_required
@supervisor_required
@admin_required
def list_users():
# Exclude customer accounts — those are managed exclusively via /customers
users = (
@@ -127,7 +127,7 @@ def list_users():
@bp.route('/users/new', methods=['GET', 'POST'])
@login_required
@supervisor_required
@admin_required
def create_user():
form = UserForm()
@@ -159,7 +159,7 @@ def create_user():
@bp.route('/users/<int:user_id>/edit', methods=['GET', 'POST'])
@login_required
@supervisor_required
@admin_required
def edit_user(user_id):
user = db.session.get(User, user_id)
if user is None:
@@ -196,7 +196,7 @@ def edit_user(user_id):
@bp.route('/users/<int:user_id>/delete', methods=['POST'])
@login_required
@supervisor_required
@admin_required
def delete_user(user_id):
user = db.session.get(User, user_id)
if user is None:
@@ -256,7 +256,7 @@ def delete_user(user_id):
@bp.route('/users/<int:user_id>/toggle-active', methods=['POST'])
@login_required
@supervisor_required
@admin_required
def toggle_active(user_id):
user = db.session.get(User, user_id)
if user is None:
+8 -8
View File
@@ -38,7 +38,7 @@ from app.models.inspection import Inspection, InspectionTemplate
from app.models.facility import Facility, Area
from app.models.issue import Issue
from app.models.user import User
from app.utils.decorators import supervisor_required
from app.utils.decorators import supervisor_required, admin_required
from app.utils.audit import log_action, ACTION_CREATE, ACTION_UPDATE, ACTION_DELETE
from app.utils.time_utils import now_eastern
@@ -276,7 +276,7 @@ def _send_report(report: ScheduledReport):
@bp.route('/')
@login_required
@supervisor_required
@admin_required
def index():
reports = ScheduledReport.query.order_by(ScheduledReport.name).all()
return render_template('scheduled_reports/index.html', reports=reports)
@@ -284,7 +284,7 @@ def index():
@bp.route('/new', methods=['GET', 'POST'])
@login_required
@supervisor_required
@admin_required
def create():
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
@@ -332,7 +332,7 @@ def create():
@bp.route('/<int:report_id>/edit', methods=['GET', 'POST'])
@login_required
@supervisor_required
@admin_required
def edit(report_id):
report = db.session.get(ScheduledReport, report_id)
if report is None:
@@ -362,7 +362,7 @@ def edit(report_id):
@bp.route('/<int:report_id>/delete', methods=['POST'])
@login_required
@supervisor_required
@admin_required
def delete(report_id):
report = db.session.get(ScheduledReport, report_id)
if report is None:
@@ -378,7 +378,7 @@ def delete(report_id):
@bp.route('/<int:report_id>/preview')
@login_required
@supervisor_required
@admin_required
def preview(report_id):
"""Render the scheduled report email in-browser for review."""
report = db.session.get(ScheduledReport, report_id)
@@ -399,7 +399,7 @@ def preview(report_id):
@bp.route('/<int:report_id>/preview-pdf')
@login_required
@supervisor_required
@admin_required
def preview_pdf(report_id):
"""Generate and stream the PDF attachment for in-browser review."""
from flask import Response
@@ -436,7 +436,7 @@ def preview_pdf(report_id):
@bp.route('/<int:report_id>/send-now', methods=['POST'])
@login_required
@supervisor_required
@admin_required
def send_now(report_id):
"""Manually trigger a single report — useful for testing."""
report = db.session.get(ScheduledReport, report_id)