django-forms-workflows 0.28.4__tar.gz → 0.28.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/PKG-INFO +1 -1
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/admin.py +56 -9
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +1 -1
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/views.py +14 -19
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/pyproject.toml +1 -1
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/CHANGELOG.md +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/LICENSE +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/README.md +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/apps.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/conditions.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/context_processors.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/data_sources/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/data_sources/base.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/data_sources/database_source.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/data_sources/ldap_source.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/data_sources/user_source.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/diff_views.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/email_backends/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/email_backends/gmail_api.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/form_builder_urls.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/form_builder_views.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/forms.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/api_handler.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/base.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/database_handler.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/email_handler.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/executor.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/file_handler.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/handlers/ldap_handler.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/ldap_backend.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/pull_forms.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/push_forms.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0001_initial.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/migrations/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/models.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/signals.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sso_backends.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sso_urls.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sso_views.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sync_api.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sync_views.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/tasks.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/approve.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/approval_request.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/email_styles.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templates/registration/login.html +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templatetags/__init__.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/urls.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/utils.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/workflow_builder_views.py +0 -0
- {django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/workflow_engine.py +0 -0
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/admin.py
RENAMED
|
@@ -278,10 +278,26 @@ class WorkflowDefinitionInline(admin.StackedInline):
|
|
|
278
278
|
fields = [
|
|
279
279
|
"name_label",
|
|
280
280
|
"requires_approval",
|
|
281
|
-
"trigger_conditions",
|
|
282
281
|
"hide_approval_history",
|
|
283
|
-
|
|
282
|
+
"trigger_conditions",
|
|
283
|
+
(
|
|
284
|
+
"notify_on_submission",
|
|
285
|
+
"notify_on_approval",
|
|
286
|
+
"notify_on_rejection",
|
|
287
|
+
"notify_on_withdrawal",
|
|
288
|
+
),
|
|
284
289
|
"additional_notify_emails",
|
|
290
|
+
"notification_cadence",
|
|
291
|
+
(
|
|
292
|
+
"notification_cadence_day",
|
|
293
|
+
"notification_cadence_time",
|
|
294
|
+
"notification_cadence_form_field",
|
|
295
|
+
),
|
|
296
|
+
(
|
|
297
|
+
"approval_deadline_days",
|
|
298
|
+
"send_reminder_after_days",
|
|
299
|
+
"auto_approve_after_days",
|
|
300
|
+
),
|
|
285
301
|
("allow_bulk_export", "allow_bulk_pdf_export"),
|
|
286
302
|
]
|
|
287
303
|
|
|
@@ -1085,20 +1101,50 @@ class WorkflowStageAdmin(admin.ModelAdmin):
|
|
|
1085
1101
|
per group that needs its own approve_label or approval fields.
|
|
1086
1102
|
"""
|
|
1087
1103
|
|
|
1088
|
-
list_display = (
|
|
1104
|
+
list_display = (
|
|
1105
|
+
"__str__",
|
|
1106
|
+
"workflow",
|
|
1107
|
+
"order",
|
|
1108
|
+
"approval_logic",
|
|
1109
|
+
"approve_label",
|
|
1110
|
+
"requires_manager_approval",
|
|
1111
|
+
"has_trigger_conditions",
|
|
1112
|
+
)
|
|
1089
1113
|
list_filter = ("workflow", "approval_logic", "requires_manager_approval")
|
|
1090
1114
|
list_select_related = ("workflow", "workflow__form_definition")
|
|
1091
1115
|
search_fields = ("name", "workflow__form_definition__name")
|
|
1092
1116
|
ordering = ("workflow", "order")
|
|
1093
1117
|
inlines = [StageApprovalGroupInline]
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1118
|
+
fieldsets = (
|
|
1119
|
+
(
|
|
1120
|
+
None,
|
|
1121
|
+
{
|
|
1122
|
+
"fields": (
|
|
1123
|
+
"workflow",
|
|
1124
|
+
("order", "name"),
|
|
1125
|
+
"approval_logic",
|
|
1126
|
+
"approve_label",
|
|
1127
|
+
"requires_manager_approval",
|
|
1128
|
+
)
|
|
1129
|
+
},
|
|
1130
|
+
),
|
|
1131
|
+
(
|
|
1132
|
+
"Conditional Trigger",
|
|
1133
|
+
{
|
|
1134
|
+
"classes": ("collapse",),
|
|
1135
|
+
"description": (
|
|
1136
|
+
"When set, this stage only runs if the submission data matches these "
|
|
1137
|
+
"conditions. Leave blank to always run this stage."
|
|
1138
|
+
),
|
|
1139
|
+
"fields": ("trigger_conditions",),
|
|
1140
|
+
},
|
|
1141
|
+
),
|
|
1100
1142
|
)
|
|
1101
1143
|
|
|
1144
|
+
@admin.display(boolean=True, description="Has trigger conditions")
|
|
1145
|
+
def has_trigger_conditions(self, obj):
|
|
1146
|
+
return bool(obj.trigger_conditions)
|
|
1147
|
+
|
|
1102
1148
|
|
|
1103
1149
|
class WorkflowStageInline(admin.StackedInline):
|
|
1104
1150
|
"""Inline for defining ordered stages on a WorkflowDefinition."""
|
|
@@ -1138,6 +1184,7 @@ class WorkflowDefinitionAdmin(admin.ModelAdmin):
|
|
|
1138
1184
|
"form_definition",
|
|
1139
1185
|
"name_label",
|
|
1140
1186
|
"requires_approval",
|
|
1187
|
+
"hide_approval_history",
|
|
1141
1188
|
"trigger_conditions",
|
|
1142
1189
|
)
|
|
1143
1190
|
},
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
{% elif stage.approved_count > 0 %}bg-primary text-white
|
|
234
234
|
{% else %}bg-light text-muted{% endif %}">
|
|
235
235
|
<span>
|
|
236
|
-
<strong>{% if workflow_name_label %}{{ workflow_name_label }}{% else %}Stage {{ stage.number }}
|
|
236
|
+
<strong>{% if workflow_name_label %}{{ workflow_name_label }}{% else %}Stage {{ stage.number }}: {{ stage.name }}{% endif %}</strong>
|
|
237
237
|
</span>
|
|
238
238
|
<span class="badge bg-white
|
|
239
239
|
{% if stage.rejected_count > 0 %}text-danger
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/views.py
RENAMED
|
@@ -563,21 +563,27 @@ def submission_detail(request, submission_id):
|
|
|
563
563
|
continue
|
|
564
564
|
is_parent = task.workflow_stage_id in parent_stage_ids
|
|
565
565
|
target = parent_groups if is_parent else sub_groups
|
|
566
|
-
# Group
|
|
567
|
-
#
|
|
568
|
-
|
|
569
|
-
stage_key = (
|
|
570
|
-
(task.stage_number or 0) if is_parent else task.workflow_stage_id
|
|
571
|
-
)
|
|
566
|
+
# Group by workflow_stage_id so every distinct stage (including
|
|
567
|
+
# parallel stages at the same order number) gets its own card.
|
|
568
|
+
stage_key = task.workflow_stage_id
|
|
572
569
|
if stage_key not in target:
|
|
570
|
+
stage_name = (
|
|
571
|
+
task.workflow_stage.name
|
|
572
|
+
if task.workflow_stage
|
|
573
|
+
else f"Stage {task.stage_number or 0}"
|
|
574
|
+
)
|
|
573
575
|
target[stage_key] = {
|
|
574
576
|
"number": task.stage_number or 0,
|
|
575
|
-
"name":
|
|
577
|
+
"name": stage_name,
|
|
578
|
+
"approval_logic": (
|
|
579
|
+
task.workflow_stage.approval_logic
|
|
580
|
+
if task.workflow_stage
|
|
581
|
+
else "all"
|
|
582
|
+
),
|
|
576
583
|
"tasks": [],
|
|
577
584
|
"approved_count": 0,
|
|
578
585
|
"rejected_count": 0,
|
|
579
586
|
"total_count": 0,
|
|
580
|
-
"has_multiple_stages": False,
|
|
581
587
|
}
|
|
582
588
|
group = target[stage_key]
|
|
583
589
|
# Enrich task with its stage name for the "Step" column
|
|
@@ -593,17 +599,6 @@ def submission_detail(request, submission_id):
|
|
|
593
599
|
elif task.status == "rejected":
|
|
594
600
|
group["rejected_count"] += 1
|
|
595
601
|
|
|
596
|
-
# Detect whether each parent group has tasks from multiple stages
|
|
597
|
-
for group in parent_groups.values():
|
|
598
|
-
stage_ids = {t.workflow_stage_id for t in group["tasks"]}
|
|
599
|
-
if len(stage_ids) > 1:
|
|
600
|
-
group["has_multiple_stages"] = True
|
|
601
|
-
elif len(stage_ids) == 1:
|
|
602
|
-
ws = group["tasks"][0].workflow_stage
|
|
603
|
-
if ws:
|
|
604
|
-
group["name"] = ws.name
|
|
605
|
-
group["approval_logic"] = ws.approval_logic
|
|
606
|
-
|
|
607
602
|
if parent_groups:
|
|
608
603
|
stage_groups = sorted(parent_groups.values(), key=lambda x: x["number"])
|
|
609
604
|
if sub_groups:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/__init__.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/apps.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/conditions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/diff_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/forms.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/models.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/signals.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sso_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sso_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sync_api.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/sync_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.28.4 → django_forms_workflows-0.28.6}/django_forms_workflows/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|