Aug 6 - Update enrollment page, add email notification

This commit is contained in:
2026-08-06 12:00:22 -04:00
parent 5bc7592c1a
commit 548e262b2a
9 changed files with 239 additions and 19 deletions
+18 -6
View File
@@ -36,7 +36,7 @@ from flask_login import login_required
from app import limiter
from app.utils.decorators import admin_required
from . import schema, storage
from . import mailer, schema, storage
logger = logging.getLogger(__name__)
@@ -145,8 +145,9 @@ def submit():
logger.info('ENROLLMENT | honeypot tripped | ip=%s', request.remote_addr)
return render_template('enrollment/submitted.html', reference=None)
project_name = _clean(request.form.get('project_name'))
request_by = _clean(request.form.get('request_by'))
project_name = _clean(request.form.get('project_name'))
request_by = _clean(request.form.get('request_by'))
requester_email = _clean(request.form.get('requester_email'))
people = _parse_people(request.form)
@@ -176,6 +177,11 @@ def submit():
errors.append('Project Name is required.')
if not request_by:
errors.append('Request by is required.')
if not requester_email:
errors.append('Requester email is required — we send your confirmation '
'there.')
elif '@' not in requester_email:
errors.append('The requester email address does not look valid.')
if not named:
errors.append('Please add at least one person with both a name and an '
'email address.')
@@ -192,8 +198,9 @@ def submit():
seen.add(low)
prior = {
'project_name': project_name,
'request_by': request_by,
'project_name': project_name,
'request_by': request_by,
'requester_email': requester_email,
'date_requested': _clean(request.form.get('date_requested')),
'notes': _clean(request.form.get('notes'), _MAX_NOTES),
'people': people,
@@ -236,7 +243,12 @@ def submit():
logger.info('ENROLLMENT | submitted | id=%s project=%r people=%d ip=%s',
record['id'], project_name, len(named), request.remote_addr)
return render_template('enrollment/submitted.html', reference=record['id'])
# Confirmation to the requester. Fired AFTER the save and fully guarded —
# a mail problem must never cost the customer their submission.
mailer.send_confirmation(record, base_url=request.host_url)
return render_template('enrollment/submitted.html', reference=record['id'],
email=requester_email)
# ── Admin ────────────────────────────────────────────────────────────────────