Updated functionalities

This commit is contained in:
2026-04-25 12:11:05 -04:00
parent 5a1c252607
commit a515df6a02
26 changed files with 417 additions and 107 deletions
+16 -6
View File
@@ -27,7 +27,7 @@ import logging
from datetime import datetime, timedelta
from flask import (Blueprint, render_template, redirect, url_for, flash,
request, jsonify, current_app)
request, jsonify, current_app, abort)
from flask_login import login_required, current_user
from flask_mail import Message
from sqlalchemy import func
@@ -317,7 +317,9 @@ def create():
@login_required
@supervisor_required
def edit(report_id):
report = ScheduledReport.query.get_or_404(report_id)
report = db.session.get(ScheduledReport, report_id)
if report is None:
abort(404)
facilities = Facility.query.filter_by(active=True).order_by(Facility.name).all()
if request.method == 'POST':
@@ -345,7 +347,9 @@ def edit(report_id):
@login_required
@supervisor_required
def delete(report_id):
report = ScheduledReport.query.get_or_404(report_id)
report = db.session.get(ScheduledReport, report_id)
if report is None:
abort(404)
name = report.name
rid = report.id
db.session.delete(report)
@@ -360,7 +364,9 @@ def delete(report_id):
@supervisor_required
def preview(report_id):
"""Render the scheduled report email in-browser for review."""
report = ScheduledReport.query.get_or_404(report_id)
report = db.session.get(ScheduledReport, report_id)
if report is None:
abort(404)
start, end = _date_window(report.frequency)
data = _build_report_data(report, start, end)
base_url = current_app.config.get('APP_BASE_URL', '').rstrip('/')
@@ -382,7 +388,9 @@ def preview_pdf(report_id):
from flask import Response
from app.utils.pdf_export import generate_scheduled_report_pdf
report = ScheduledReport.query.get_or_404(report_id)
report = db.session.get(ScheduledReport, report_id)
if report is None:
abort(404)
start, end = _date_window(report.frequency)
data = _build_report_data(report, start, end)
@@ -414,7 +422,9 @@ def preview_pdf(report_id):
@supervisor_required
def send_now(report_id):
"""Manually trigger a single report — useful for testing."""
report = ScheduledReport.query.get_or_404(report_id)
report = db.session.get(ScheduledReport, report_id)
if report is None:
abort(404)
ok = _send_report(report)
if ok:
report.last_sent_at = now_eastern()