From 0f8e7a63f5e11a3416ca8738bddf639b384e3587 Mon Sep 17 00:00:00 2001 From: NguyenND Date: Thu, 18 Jun 2026 12:53:20 -0400 Subject: [PATCH] 06/18 Fix notification issues --- app/api/issues.py | 18 ++++++++---------- app/routes/issues.py | 15 ++++++++------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/api/issues.py b/app/api/issues.py index 464d7c4..90f6a61 100644 --- a/app/api/issues.py +++ b/app/api/issues.py @@ -1,4 +1,4 @@ -""" +""" app/api/issues.py ----------------- Mobile API endpoint for submitting issues from the iPad app. @@ -249,7 +249,7 @@ def create_issue(): mobile_local_id = mobile_local_id, ) db.session.add(issue) - db.session.flush() # get issue.id + db.session.commit() # commit issue first so FK references in notifications are valid # ── Notifications ───────────────────────────────────────────────────── try: @@ -260,20 +260,18 @@ def create_issue(): inspection_ref = f'inspection #{inspection_id}' if inspection_id else 'a standalone report' notify_by_matrix( - event_type = 'issue_flagged', - title = f'New Issue #{issue.id} (Mobile)', - body = ( + event_type = 'issue_created', + title = f'New Issue #{issue.id} at {facility.name} (Mobile)', + body = ( f'A new {severity.title()}-severity issue was logged at ' f'{facility.name} during {inspection_ref}. ' f'Description: {description[:120]}' f'{"…" if len(description) > 120 else ""}' ), - link = issue_link, - issue_id = issue.id, - facility_id = facility_id, - exclude_user_ids = {user.id}, + link = issue_link, + issue_id = issue.id, + facility_id = facility_id, ) - db.session.commit() log_action(ACTION_CREATE, 'Issue', issue.id, diff --git a/app/routes/issues.py b/app/routes/issues.py index e5f6179..fbed6c2 100644 --- a/app/routes/issues.py +++ b/app/routes/issues.py @@ -727,21 +727,22 @@ def create(): db.session.commit() # ── Notify via matrix (issue_created) ──────────────────────── + # No exclude_user_ids: the creator should also receive the in-app + # confirmation so they see it in their notification feed. facility = issue.resolved_facility if facility: notify_by_matrix( - event_type = 'issue_created', - title = f'New Issue #{issue.id} at {facility.name}', - body = ( + event_type = 'issue_created', + title = f'New Issue #{issue.id} at {facility.name}', + body = ( f'A new {issue.severity.title()}-severity issue has been logged ' f'at {facility.name}. ' f'Description: {issue.description[:120]}' f'{"…" if len(issue.description) > 120 else ""}' ), - link = url_for('issues.view', issue_id=issue.id), - issue_id = issue.id, - facility_id = facility.id, - exclude_user_ids = {current_user.id}, + link = url_for('issues.view', issue_id=issue.id), + issue_id = issue.id, + facility_id = facility.id, ) db.session.commit() flash('Issue created.', 'success')