Skip to content

Commit 6c0f940

Browse files
committed
feat: drop legacy notify_on_* fields and 4 legacy notification tasks (v0.37.16)
Migration 0068 drops 5 columns from WorkflowDefinition: notify_on_submission, notify_on_approval, notify_on_rejection, notify_on_withdrawal, additional_notify_emails All submitter notifications now flow exclusively through WorkflowNotification rows (notify_submitter=True) dispatched by send_workflow_definition_notifications. Migration 0067 already converted every enabled legacy flag to a WorkflowNotification row. Removed: - send_rejection_notification task - send_approval_notification task - send_submission_notification task - send_withdrawal_notification task - Legacy try/except dispatch blocks in workflow_engine.py (_notify_submission_created_immediate, _notify_final_approval, _notify_rejection) and views.py (withdrawal) - auto_approve deadline task now calls send_workflow_definition_notifications directly - Deprecated legacy notifications fieldset from WorkflowDefinitionAdmin - All remaining legacy field references in diff_views, form_builder_views, sync_api, workflow_builder_views, admin inline, test_builders - Legacy field kwargs from workflows/ management commands and create_test_form_with_db_prefill.py 337 tests pass. Bump 0.37.15 to 0.37.16
1 parent b9c7038 commit 6c0f940

13 files changed

Lines changed: 61 additions & 354 deletions

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.37.16] - 2026-03-27
11+
12+
### Removed
13+
- **`WorkflowDefinition.notify_on_submission/approval/rejection/withdrawal`** — four legacy boolean columns dropped from the database (migration `0068`). All submitter notifications are now configured via `WorkflowNotification` rows with `notify_submitter=True` (created by migration `0067` for every previously-enabled flag).
14+
- **`WorkflowDefinition.additional_notify_emails`** — legacy comma-separated CC field dropped. Static addresses have been migrated to `WorkflowNotification.static_emails`.
15+
- **`send_rejection_notification`, `send_approval_notification`, `send_submission_notification`, `send_withdrawal_notification` Celery tasks** — fully removed. These are replaced by `send_workflow_definition_notifications` which handles all workflow-level submitter and additional-recipient emails via `WorkflowNotification` rules.
16+
- **Legacy call sites** in `workflow_engine.py` (`_notify_submission_created_immediate`, `_notify_final_approval`, `_notify_rejection`) and `views.py` (withdrawal) — the `try/except` blocks that imported and dispatched the removed tasks are gone; those functions now call only `_notify_workflow_level_recipients` (→ `send_workflow_definition_notifications`).
17+
- **Auto-approval task** (`check_auto_approve_deadlines`) now calls `send_workflow_definition_notifications.delay(submission_id, "approval_notification")` instead of the removed `send_approval_notification`.
18+
- **Admin deprecated fieldset** for legacy notifications removed from `WorkflowDefinitionAdmin`.
19+
- **`diff_views`, `form_builder_views`, `sync_api`, `workflow_builder_views`** — all references to the five dropped columns removed.
20+
- **`tests/test_builders.py`** — assertions about `notify_on_*` fields removed.
21+
- **`workflows/` management commands and `create_test_form_with_db_prefill.py`** — legacy field kwargs removed from all `WorkflowDefinition.objects.create()` calls.
22+
1023
## [0.37.15] - 2026-03-27
1124

1225
### Fixed

django_forms_workflows/admin.py

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -481,13 +481,6 @@ class WorkflowDefinitionInline(nested_admin.NestedStackedInline):
481481
"hide_approval_history",
482482
"collapse_parallel_stages",
483483
"trigger_conditions",
484-
(
485-
"notify_on_submission",
486-
"notify_on_approval",
487-
"notify_on_rejection",
488-
"notify_on_withdrawal",
489-
),
490-
"additional_notify_emails",
491484
"notification_cadence",
492485
(
493486
"notification_cadence_day",
@@ -768,11 +761,6 @@ def clone_forms(self, request, queryset):
768761
approval_deadline_days=wf.approval_deadline_days,
769762
send_reminder_after_days=wf.send_reminder_after_days,
770763
auto_approve_after_days=wf.auto_approve_after_days,
771-
notify_on_submission=wf.notify_on_submission,
772-
notify_on_approval=wf.notify_on_approval,
773-
notify_on_rejection=wf.notify_on_rejection,
774-
notify_on_withdrawal=wf.notify_on_withdrawal,
775-
additional_notify_emails=wf.additional_notify_emails,
776764
notification_cadence=wf.notification_cadence,
777765
notification_cadence_day=wf.notification_cadence_day,
778766
notification_cadence_time=wf.notification_cadence_time,
@@ -1456,31 +1444,6 @@ class WorkflowDefinitionAdmin(nested_admin.NestedModelAdmin):
14561444
),
14571445
},
14581446
),
1459-
(
1460-
"⚠️ Deprecated — Legacy Notifications (submitter + additional emails)",
1461-
{
1462-
"classes": ("collapse",),
1463-
"description": (
1464-
"<strong style='color:#b45309;'>DEPRECATED.</strong> "
1465-
"These flags are superseded by the <strong>Workflow Notifications</strong> inline below. "
1466-
"A data migration has already converted enabled flags into WorkflowNotification rows "
1467-
"with <em>Notify submitter</em> checked — those rows now control submitter emails for this workflow. "
1468-
"The legacy flags are skipped automatically whenever a matching WorkflowNotification row exists.<br><br>"
1469-
"You can safely leave these enabled for now; they will be removed in a future release. "
1470-
"To fully migrate, disable each flag here and confirm that a corresponding "
1471-
"Workflow Notification row (with <em>Notify submitter</em> = ✓) is configured below."
1472-
),
1473-
"fields": (
1474-
(
1475-
"notify_on_submission",
1476-
"notify_on_approval",
1477-
"notify_on_rejection",
1478-
"notify_on_withdrawal",
1479-
),
1480-
"additional_notify_emails",
1481-
),
1482-
},
1483-
),
14841447
(
14851448
"Notification Batching",
14861449
{

django_forms_workflows/diff_views.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,6 @@ def _build_summary(forms_data):
122122
wf_setting_keys = [
123123
"requires_approval",
124124
"name_label",
125-
"notify_on_submission",
126-
"notify_on_approval",
127-
"notify_on_rejection",
128-
"notify_on_withdrawal",
129-
"additional_notify_emails",
130125
"hide_approval_history",
131126
"collapse_parallel_stages",
132127
"allow_bulk_export",

django_forms_workflows/form_builder_views.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,6 @@ def form_builder_clone(request, form_id):
164164
approval_deadline_days=wf.approval_deadline_days,
165165
send_reminder_after_days=wf.send_reminder_after_days,
166166
auto_approve_after_days=wf.auto_approve_after_days,
167-
notify_on_submission=wf.notify_on_submission,
168-
notify_on_approval=wf.notify_on_approval,
169-
notify_on_rejection=wf.notify_on_rejection,
170-
notify_on_withdrawal=wf.notify_on_withdrawal,
171-
additional_notify_emails=wf.additional_notify_emails,
172167
notification_cadence=wf.notification_cadence,
173168
notification_cadence_day=wf.notification_cadence_day,
174169
notification_cadence_time=wf.notification_cadence_time,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Generated by Django 5.2.7 on 2026-03-27 19:33
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("django_forms_workflows", "0067_migrate_legacy_notify_flags"),
10+
]
11+
12+
operations = [
13+
migrations.RemoveField(
14+
model_name="workflowdefinition",
15+
name="additional_notify_emails",
16+
),
17+
migrations.RemoveField(
18+
model_name="workflowdefinition",
19+
name="notify_on_approval",
20+
),
21+
migrations.RemoveField(
22+
model_name="workflowdefinition",
23+
name="notify_on_rejection",
24+
),
25+
migrations.RemoveField(
26+
model_name="workflowdefinition",
27+
name="notify_on_submission",
28+
),
29+
migrations.RemoveField(
30+
model_name="workflowdefinition",
31+
name="notify_on_withdrawal",
32+
),
33+
]

django_forms_workflows/models.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -648,16 +648,6 @@ class WorkflowDefinition(models.Model):
648648
null=True, blank=True, help_text="Auto-approve if no response (use carefully)"
649649
)
650650

651-
# Notifications
652-
notify_on_submission = models.BooleanField(default=True)
653-
notify_on_approval = models.BooleanField(default=True)
654-
notify_on_rejection = models.BooleanField(default=True)
655-
notify_on_withdrawal = models.BooleanField(default=True)
656-
657-
additional_notify_emails = models.TextField(
658-
blank=True, help_text="Comma-separated emails for all notifications"
659-
)
660-
661651
# Notification Batching
662652
NOTIFICATION_CADENCE_CHOICES = [
663653
("immediate", "Immediate (send right away)"),

django_forms_workflows/sync_api.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,6 @@ def _serialize_workflow(wf):
291291
"approval_deadline_days": wf.approval_deadline_days,
292292
"send_reminder_after_days": wf.send_reminder_after_days,
293293
"auto_approve_after_days": wf.auto_approve_after_days,
294-
# Notification flags
295-
"notify_on_submission": wf.notify_on_submission,
296-
"notify_on_approval": wf.notify_on_approval,
297-
"notify_on_rejection": wf.notify_on_rejection,
298-
"notify_on_withdrawal": wf.notify_on_withdrawal,
299-
"additional_notify_emails": wf.additional_notify_emails,
300294
# Notification cadence
301295
"notification_cadence": wf.notification_cadence,
302296
"notification_cadence_day": wf.notification_cadence_day,

0 commit comments

Comments
 (0)