django-forms-workflows 0.19.2__tar.gz → 0.20.0__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.19.2 → django_forms_workflows-0.20.0}/PKG-INFO +1 -1
- django_forms_workflows-0.20.0/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +22 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/models.py +6 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +11 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sync_api.py +2 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +4 -2
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/views.py +11 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/workflow_builder_views.py +2 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/pyproject.toml +1 -1
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/CHANGELOG.md +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/LICENSE +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/README.md +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/admin.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/apps.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/context_processors.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/data_sources/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/data_sources/base.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/data_sources/database_source.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/data_sources/ldap_source.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/data_sources/user_source.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/email_backends/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/email_backends/gmail_api.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/form_builder_urls.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/form_builder_views.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/forms.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/api_handler.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/base.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/database_handler.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/email_handler.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/executor.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/file_handler.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/handlers/ldap_handler.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/ldap_backend.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/pull_forms.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/push_forms.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0001_initial.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/migrations/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/signals.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sso_backends.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sso_urls.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sso_views.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sync_views.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/tasks.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/approve.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/approval_request.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/email_styles.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templates/registration/login.html +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templatetags/__init__.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/urls.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/utils.py +0 -0
- {django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/workflow_engine.py +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Generated by Django 5.2.7 on 2026-03-12 20:16
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
("django_forms_workflows", "0041_remove_deprecated_fields"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AddField(
|
|
14
|
+
model_name="subworkflowdefinition",
|
|
15
|
+
name="section_label",
|
|
16
|
+
field=models.CharField(
|
|
17
|
+
blank=True,
|
|
18
|
+
help_text="Heading shown to end users in the approval history (e.g. 'Payment Approvals'). If blank, defaults to the sub-workflow form name.",
|
|
19
|
+
max_length=100,
|
|
20
|
+
),
|
|
21
|
+
),
|
|
22
|
+
]
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/models.py
RENAMED
|
@@ -2126,6 +2126,12 @@ class SubWorkflowDefinition(models.Model):
|
|
|
2126
2126
|
max_length=100,
|
|
2127
2127
|
help_text="Form field name whose integer value determines how many sub-workflows to spawn (e.g. 'number_of_payments')",
|
|
2128
2128
|
)
|
|
2129
|
+
section_label = models.CharField(
|
|
2130
|
+
max_length=100,
|
|
2131
|
+
blank=True,
|
|
2132
|
+
help_text="Heading shown to end users in the approval history (e.g. 'Payment Approvals'). "
|
|
2133
|
+
"If blank, defaults to the sub-workflow form name.",
|
|
2134
|
+
)
|
|
2129
2135
|
label_template = models.CharField(
|
|
2130
2136
|
max_length=100,
|
|
2131
2137
|
default="Sub-workflow {index}",
|
|
@@ -378,6 +378,7 @@ class WorkflowBuilder {
|
|
|
378
378
|
sub_workflow_def_id: null,
|
|
379
379
|
sub_workflow_id: null,
|
|
380
380
|
sub_workflow_name: '',
|
|
381
|
+
section_label: '',
|
|
381
382
|
count_field: '',
|
|
382
383
|
label_template: 'Sub-workflow {index}',
|
|
383
384
|
trigger: 'on_approval',
|
|
@@ -957,6 +958,15 @@ class WorkflowBuilder {
|
|
|
957
958
|
<small class="text-muted">The workflow definition used for each sub-workflow instance</small>
|
|
958
959
|
</div>
|
|
959
960
|
|
|
961
|
+
<div class="mb-3">
|
|
962
|
+
<label class="form-label"><strong>Section Label</strong></label>
|
|
963
|
+
<input type="text" class="form-control" name="section_label"
|
|
964
|
+
value="${this.escapeHtml(data.section_label || '')}"
|
|
965
|
+
placeholder="e.g. Payment Approvals"
|
|
966
|
+
onchange="workflowBuilder.updateSubWorkflowConfig('${node.id}')" />
|
|
967
|
+
<small class="text-muted">Heading shown to end users in approval history. If blank, uses the workflow name.</small>
|
|
968
|
+
</div>
|
|
969
|
+
|
|
960
970
|
<div class="mb-3">
|
|
961
971
|
<label class="form-label"><strong>Count Field</strong></label>
|
|
962
972
|
<select class="form-select" name="count_field"
|
|
@@ -1027,6 +1037,7 @@ class WorkflowBuilder {
|
|
|
1027
1037
|
const selectedOption = subWfSelect.selectedOptions[0];
|
|
1028
1038
|
node.data.sub_workflow_name = selectedOption && selectedOption.value ? selectedOption.text : '';
|
|
1029
1039
|
|
|
1040
|
+
node.data.section_label = container.querySelector('input[name="section_label"]').value;
|
|
1030
1041
|
node.data.count_field = container.querySelector('select[name="count_field"]').value;
|
|
1031
1042
|
node.data.label_template = container.querySelector('input[name="label_template"]').value;
|
|
1032
1043
|
node.data.trigger = container.querySelector('select[name="trigger"]').value;
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sync_api.py
RENAMED
|
@@ -241,6 +241,7 @@ def _serialize_sub_workflow_config(swc):
|
|
|
241
241
|
return None
|
|
242
242
|
return {
|
|
243
243
|
"sub_workflow_form_slug": swc.sub_workflow.form_definition.slug,
|
|
244
|
+
"section_label": swc.section_label,
|
|
244
245
|
"count_field": swc.count_field,
|
|
245
246
|
"label_template": swc.label_template,
|
|
246
247
|
"trigger": swc.trigger,
|
|
@@ -586,6 +587,7 @@ def import_form(form_data, conflict="update", category_cache=None):
|
|
|
586
587
|
parent_workflow=wf,
|
|
587
588
|
defaults={
|
|
588
589
|
"sub_workflow": sub_wf_form.workflow,
|
|
590
|
+
"section_label": sub_wf_data.get("section_label", ""),
|
|
589
591
|
"count_field": sub_wf_data.get("count_field", ""),
|
|
590
592
|
"label_template": sub_wf_data.get(
|
|
591
593
|
"label_template", "Sub-workflow {index}"
|
|
@@ -242,9 +242,11 @@
|
|
|
242
242
|
{% endfor %}
|
|
243
243
|
|
|
244
244
|
{% if sub_workflow_groups %}
|
|
245
|
-
{# ---- Sub-workflow tasks
|
|
246
|
-
<h5 class="mb-3 mt-4"><i class="bi bi-diagram-2"></i> Sub-Workflow Approvals</h5>
|
|
245
|
+
{# ---- Sub-workflow tasks ---- #}
|
|
247
246
|
{% for stage in sub_workflow_groups %}
|
|
247
|
+
{% if forloop.first %}
|
|
248
|
+
<h5 class="mb-3 mt-4"><i class="bi bi-list-check"></i> {{ stage.section_label|default:"Additional Approvals" }}</h5>
|
|
249
|
+
{% endif %}
|
|
248
250
|
<div class="card mb-3
|
|
249
251
|
{% if stage.rejected_count > 0 %}border-danger
|
|
250
252
|
{% elif stage.approved_count == stage.total_count and stage.total_count > 0 %}border-success
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/views.py
RENAMED
|
@@ -593,6 +593,17 @@ def submission_detail(request, submission_id):
|
|
|
593
593
|
stage_groups = sorted(parent_groups.values(), key=lambda x: x["number"])
|
|
594
594
|
if sub_groups:
|
|
595
595
|
sub_workflow_groups = sorted(sub_groups.values(), key=lambda x: x["number"])
|
|
596
|
+
# Resolve the user-facing section label from SubWorkflowDefinition
|
|
597
|
+
if workflow:
|
|
598
|
+
sub_wf_config = getattr(workflow, "sub_workflow_config", None)
|
|
599
|
+
if sub_wf_config and sub_wf_config.section_label:
|
|
600
|
+
for sg in sub_workflow_groups:
|
|
601
|
+
sg["section_label"] = sub_wf_config.section_label
|
|
602
|
+
elif sub_wf_config:
|
|
603
|
+
# Fall back to the sub-workflow's form definition name
|
|
604
|
+
sg_name = sub_wf_config.sub_workflow.form_definition.name
|
|
605
|
+
for sg in sub_workflow_groups:
|
|
606
|
+
sg["section_label"] = sg_name
|
|
596
607
|
|
|
597
608
|
# Resolve fresh presigned URLs for any file-upload fields
|
|
598
609
|
form_data = _resolve_form_data_urls(submission.form_data)
|
|
@@ -450,6 +450,7 @@ def convert_workflow_to_visual(workflow, form_definition):
|
|
|
450
450
|
"sub_workflow_def_id": sub_wf_config.id,
|
|
451
451
|
"sub_workflow_id": sub_wf.form_definition_id,
|
|
452
452
|
"sub_workflow_name": sub_wf.form_definition.name,
|
|
453
|
+
"section_label": sub_wf_config.section_label,
|
|
453
454
|
"count_field": sub_wf_config.count_field,
|
|
454
455
|
"label_template": sub_wf_config.label_template,
|
|
455
456
|
"trigger": sub_wf_config.trigger,
|
|
@@ -670,6 +671,7 @@ def convert_visual_to_workflow(workflow_data, form_definition):
|
|
|
670
671
|
if target_workflow:
|
|
671
672
|
sw_fields = {
|
|
672
673
|
"sub_workflow": target_workflow,
|
|
674
|
+
"section_label": sw_data.get("section_label", ""),
|
|
673
675
|
"count_field": sw_data.get("count_field", ""),
|
|
674
676
|
"label_template": sw_data.get(
|
|
675
677
|
"label_template", "Sub-workflow {index}"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/__init__.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/admin.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/apps.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
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/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
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/signals.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sso_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sso_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/sync_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/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
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.19.2 → django_forms_workflows-0.20.0}/django_forms_workflows/utils.py
RENAMED
|
File without changes
|
|
File without changes
|