django-forms-workflows 0.72.1__tar.gz → 0.72.2__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.
Files changed (216) hide show
  1. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/CHANGELOG.md +25 -0
  2. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/PKG-INFO +1 -1
  3. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -2
  4. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +13 -4
  5. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +32 -6
  6. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/views.py +2 -3
  7. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/pyproject.toml +1 -1
  8. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/LICENSE +0 -0
  9. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/README.md +0 -0
  10. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/__init__.py +0 -0
  11. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/admin.py +0 -0
  12. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/api_urls.py +0 -0
  13. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/api_views.py +0 -0
  14. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/apps.py +0 -0
  15. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/callback_registry.py +0 -0
  16. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/conditions.py +0 -0
  17. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/context_processors.py +0 -0
  18. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/data_sources/__init__.py +0 -0
  19. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/data_sources/base.py +0 -0
  20. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/data_sources/database_source.py +0 -0
  21. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/data_sources/ldap_source.py +0 -0
  22. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/data_sources/user_source.py +0 -0
  23. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/diff_views.py +0 -0
  24. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/email_backends/__init__.py +0 -0
  25. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/email_backends/gmail_api.py +0 -0
  26. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/form_builder_urls.py +0 -0
  27. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/form_builder_views.py +0 -0
  28. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/forms.py +0 -0
  29. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/__init__.py +0 -0
  30. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/api_handler.py +0 -0
  31. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/base.py +0 -0
  32. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/database_handler.py +0 -0
  33. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/email_handler.py +0 -0
  34. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/executor.py +0 -0
  35. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/file_handler.py +0 -0
  36. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/handlers/ldap_handler.py +0 -0
  37. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/history.py +0 -0
  38. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/ldap_backend.py +0 -0
  39. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
  40. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/pull_forms.py +0 -0
  41. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/push_forms.py +0 -0
  42. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
  43. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
  44. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
  45. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
  46. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/sync_ldap_users.py +0 -0
  47. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
  48. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0001_initial.py +0 -0
  49. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
  50. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
  51. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
  52. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
  53. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
  54. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
  55. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
  56. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
  57. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
  58. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
  59. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
  60. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
  61. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
  62. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
  63. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
  64. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
  65. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
  66. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
  67. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
  68. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
  69. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
  70. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
  71. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
  72. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
  73. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
  74. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
  75. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
  76. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
  77. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
  78. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
  79. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
  80. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
  81. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
  82. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
  83. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
  84. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
  85. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
  86. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
  87. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
  88. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
  89. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
  90. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
  91. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
  92. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
  93. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
  94. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
  95. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
  96. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
  97. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0050_workflowdefinition_collapse_parallel_stages.py +0 -0
  98. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0051_formdefinition_is_listed.py +0 -0
  99. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0052_dynamic_assignee_and_form_field_notifications.py +0 -0
  100. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0053_stageformfieldnotification_static_emails.py +0 -0
  101. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0054_rename_approved_pending_to_pending_approval.py +0 -0
  102. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0055_add_send_back.py +0 -0
  103. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0056_calculated_formula_spreadsheet.py +0 -0
  104. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0057_add_currency_field_type.py +0 -0
  105. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0058_rename_assignee_email_field_add_lookup_type.py +0 -0
  106. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0059_add_multiselect_list_field_type.py +0 -0
  107. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0060_alter_workflowstage_assignee_lookup_type_helptext.py +0 -0
  108. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0061_add_country_us_state_field_types.py +0 -0
  109. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0062_add_batch_import_to_formdefinition.py +0 -0
  110. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0063_formdefinition_api_enabled_apitoken.py +0 -0
  111. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0064_add_reviewer_groups.py +0 -0
  112. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0065_workflownotification.py +0 -0
  113. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0066_add_notify_submitter_to_workflownotification.py +0 -0
  114. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0067_migrate_legacy_notify_flags.py +0 -0
  115. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0068_drop_legacy_notify_fields.py +0 -0
  116. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0069_add_signature_field_type.py +0 -0
  117. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0070_workflowstage_allow_edit_form_data.py +0 -0
  118. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0071_alter_pendingnotification_notification_type.py +0 -0
  119. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0072_add_change_history.py +0 -0
  120. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0073_add_stage_notify_assignee_on_final_decision.py +0 -0
  121. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0074_add_notification_rule.py +0 -0
  122. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0075_migrate_to_notification_rules.py +0 -0
  123. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0076_update_notification_event_choices.py +0 -0
  124. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0077_drop_legacy_notification_models.py +0 -0
  125. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0078_allow_anonymous_submissions.py +0 -0
  126. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0079_webhookendpoint_webhookdeliverylog.py +0 -0
  127. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0080_add_rating_matrix_address_slider_fields_and_form_controls.py +0 -0
  128. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0081_add_success_page_fields.py +0 -0
  129. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0082_add_document_template_model.py +0 -0
  130. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0083_workflowdefinition_start_trigger.py +0 -0
  131. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0084_add_shared_option_list.py +0 -0
  132. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0085_add_payment_system.py +0 -0
  133. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0086_add_embed_enabled.py +0 -0
  134. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0087_notificationrule_use_triggering_stage.py +0 -0
  135. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0088_notificationrule_body_template_and_events.py +0 -0
  136. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0089_workflowstage_hide_comment_field.py +0 -0
  137. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0090_alter_stageapprovalgroup_options_and_more.py +0 -0
  138. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0091_add_uuid_fields.py +0 -0
  139. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/0092_add_user_notification_preference.py +0 -0
  140. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/migrations/__init__.py +0 -0
  141. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/models.py +0 -0
  142. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/payments/__init__.py +0 -0
  143. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/payments/base.py +0 -0
  144. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/payments/registry.py +0 -0
  145. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/payments/stripe_provider.py +0 -0
  146. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/payments/views.py +0 -0
  147. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/reporting_views.py +0 -0
  148. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/signals.py +0 -0
  149. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/sso_backends.py +0 -0
  150. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/sso_urls.py +0 -0
  151. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/sso_views.py +0 -0
  152. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui-bundle.js +0 -0
  153. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui.css +0 -0
  154. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/css/forms.css +0 -0
  155. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/dfw-embed.js +0 -0
  156. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
  157. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
  158. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/payment-stripe.js +0 -0
  159. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/signature-pad.js +0 -0
  160. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
  161. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/sync_api.py +0 -0
  162. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/sync_views.py +0 -0
  163. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/tasks.py +0 -0
  164. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
  165. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
  166. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
  167. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
  168. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
  169. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
  170. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
  171. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
  172. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
  173. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
  174. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/_field_value.html +0 -0
  175. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/_form_data_rows.html +0 -0
  176. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/analytics_dashboard.html +0 -0
  177. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/api/docs.html +0 -0
  178. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/approve.html +0 -0
  179. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
  180. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/batch_import_result.html +0 -0
  181. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
  182. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/discard_draft_confirm.html +0 -0
  183. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/embed_base.html +0 -0
  184. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/embed_success.html +0 -0
  185. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
  186. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/form_embed.html +0 -0
  187. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
  188. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
  189. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
  190. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/notification_preferences.html +0 -0
  191. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/payment_collect.html +0 -0
  192. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/payment_error.html +0 -0
  193. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/public_submission_confirmation.html +0 -0
  194. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/rate_limited.html +0 -0
  195. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/reassign_task.html +0 -0
  196. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
  197. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
  198. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
  199. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +0 -0
  200. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/submission_success.html +0 -0
  201. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
  202. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
  203. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
  204. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/approval_request.html +0 -0
  205. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/email_styles.html +0 -0
  206. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
  207. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
  208. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
  209. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
  210. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templates/registration/login.html +0 -0
  211. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templatetags/__init__.py +0 -0
  212. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
  213. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/urls.py +0 -0
  214. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/utils.py +0 -0
  215. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/workflow_builder_views.py +0 -0
  216. {django_forms_workflows-0.72.1 → django_forms_workflows-0.72.2}/django_forms_workflows/workflow_engine.py +0 -0
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.72.2] - 2026-04-16
11
+
12
+ ### Changed
13
+ - **PDF exports no longer zebra-stripe data rows.** The alternating
14
+ `:nth-child(even)` tint looked inconsistent when combined with
15
+ half / third / quarter-width rows (which render as a single wide
16
+ colspan row containing inline columns). Both
17
+ `submission_pdf.html` and `submission_bulk_pdf.html` now use a
18
+ uniform white data-row background.
19
+ - **Approval inbox: dropped the redundant "Stage" column.** The Step
20
+ label now carries the full context (`"Payment 1: Step 2: HR Processing"`
21
+ or `"Step 2: HR Approval"`), so a separate numeric stage column is no
22
+ longer useful. Removed the `<th>`, the DataTables column spec, the
23
+ `"stage"` key from the AJAX payload, and shifted the default sort
24
+ column index down one.
25
+
26
+ ### Fixed
27
+ - **PDF page breaks keep section headers attached to their content.**
28
+ Section dividers (`.section-row`, `.step-section-header`,
29
+ `.step-field-section-row`) and the per-step meta line (`.step-meta`)
30
+ now set `page-break-after: avoid` / `break-after: avoid` so a
31
+ section header no longer orphans at the bottom of one page with its
32
+ fields starting on the next. Applies to both single-submission and
33
+ bulk PDFs.
34
+
10
35
  ## [0.72.1] - 2026-04-16
11
36
 
12
37
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-forms-workflows
3
- Version: 0.72.1
3
+ Version: 0.72.2
4
4
  Summary: Enterprise-grade, database-driven form builder with approval workflows and external data integration
5
5
  License: LGPL-3.0-only
6
6
  License-File: LICENSE
@@ -253,7 +253,6 @@
253
253
  <th>Actions</th>
254
254
  <th>Form</th>
255
255
  <th>Submitter</th>
256
- <th>Stage</th>
257
256
  <th>Step</th>
258
257
  <th>Assigned</th>
259
258
  <th>Submitted</th>
@@ -346,7 +345,6 @@ $(document).ready(function() {
346
345
  { data: 'actions', name: '', orderable: false },
347
346
  { data: 'form', name: 'submission__form_definition__name' },
348
347
  { data: 'submitter', name: 'submission__submitter__last_name' },
349
- { data: 'stage', name: 'stage_number' },
350
348
  { data: 'step_num', name: 'workflow_stage__name' },
351
349
  { data: 'assigned', name: 'assigned_group__name' },
352
350
  { data: 'submitted_at', name: 'submission__submitted_at' },
@@ -51,11 +51,20 @@
51
51
  .data-table th { background-color: #f0f0f0; font-weight: bold; font-size: 8pt; color: #333; border: 1px solid #d0d0d0; padding: 3pt 6pt; text-align: left; vertical-align: top; }
52
52
  .data-table td { font-size: 9pt; border: 1px solid #d0d0d0; padding: 3pt 6pt; vertical-align: top; }
53
53
  .data-table tr { page-break-inside: avoid; break-inside: avoid; }
54
- .data-table tr:nth-child(even) th,
55
- .data-table tr:nth-child(even) td { background-color: #f9f9f9; }
56
54
  .section-row td { background-color: #e8f0f7 !important; color: #1a3a52; font-weight: bold; font-size: 8pt; letter-spacing: 0.3pt; text-transform: uppercase; padding: 4pt 6pt; border: 1px solid #b8ccd8; }
57
- .step-section-header { background-color: #1a3a52; color: #fff; font-weight: bold; font-size: 9pt; padding: 4pt 6pt; margin-top: 10pt; border: 1px solid #0f2538; }
58
- .step-meta { font-size: 7.5pt; color: #555; margin: 2pt 0 4pt 0; }
55
+ /* Keep each section header attached to the content that follows it. */
56
+ .section-row { page-break-after: avoid; break-after: avoid; page-break-inside: avoid; break-inside: avoid; }
57
+ .step-section-header {
58
+ background-color: #1a3a52; color: #fff; font-weight: bold; font-size: 9pt;
59
+ padding: 4pt 6pt; margin-top: 10pt; border: 1px solid #0f2538;
60
+ page-break-after: avoid; break-after: avoid;
61
+ page-break-inside: avoid; break-inside: avoid;
62
+ }
63
+ .step-meta {
64
+ font-size: 7.5pt; color: #555; margin: 2pt 0 4pt 0;
65
+ page-break-before: avoid; break-before: avoid;
66
+ page-break-after: avoid; break-after: avoid;
67
+ }
59
68
  </style>
60
69
  </head>
61
70
  <body>
@@ -106,11 +106,10 @@
106
106
  break-inside: avoid;
107
107
  }
108
108
 
109
- /* Alternating row tint WeasyPrint supports :nth-child fully */
110
- .data-table tr:nth-child(even) th,
111
- .data-table tr:nth-child(even) td { background-color: #f9f9f9; }
112
-
113
- /* Section rows always keep their own colour regardless of position */
109
+ /* Section rows always keep their own colour regardless of position.
110
+ Also keep each section header with the content that follows it —
111
+ prevents the ugly case where a header renders at the bottom of one
112
+ page and its fields start on the next. */
114
113
  .section-row td {
115
114
  background-color: #e8f0f7 !important;
116
115
  color: #1a3a52;
@@ -121,6 +120,12 @@
121
120
  padding: 4pt 6pt;
122
121
  border: 1px solid #b8ccd8;
123
122
  }
123
+ .section-row {
124
+ page-break-after: avoid;
125
+ break-after: avoid;
126
+ page-break-inside: avoid;
127
+ break-inside: avoid;
128
+ }
124
129
 
125
130
  /* Approval-step section header */
126
131
  .step-section-header {
@@ -134,6 +139,11 @@
134
139
  display: table;
135
140
  width: 100%;
136
141
  box-sizing: border-box;
142
+ /* Keep the step header with its meta line / following table */
143
+ page-break-after: avoid;
144
+ break-after: avoid;
145
+ page-break-inside: avoid;
146
+ break-inside: avoid;
137
147
  }
138
148
  .step-section-header .step-name-cell { display: table-cell; vertical-align: middle; }
139
149
  .step-section-header .step-badge-cell {
@@ -152,6 +162,22 @@
152
162
  font-size: 9pt;
153
163
  padding: 4pt 8pt;
154
164
  }
165
+ /* Section divider row inside the step table: stay attached to the
166
+ following field row rather than orphaning at the bottom of a page. */
167
+ tr.step-field-section-row {
168
+ page-break-after: avoid;
169
+ break-after: avoid;
170
+ page-break-inside: avoid;
171
+ break-inside: avoid;
172
+ }
173
+ /* Meta line (completed by / date / comment) belongs with its header
174
+ and the following table. */
175
+ .step-meta {
176
+ page-break-before: avoid;
177
+ break-before: avoid;
178
+ page-break-after: avoid;
179
+ break-after: avoid;
180
+ }
155
181
  .step-badge {
156
182
  display: inline-block;
157
183
  padding: 2pt 7pt;
@@ -300,7 +326,7 @@
300
326
  <tbody>
301
327
  {% for row in section.fields %}
302
328
  {% if row.type == 'section' %}
303
- <tr>
329
+ <tr class="step-field-section-row">
304
330
  <td colspan="4" class="step-field-section">{{ row.label }}</td>
305
331
  </tr>
306
332
  {% elif row.type == 'display_text' %}
@@ -1456,8 +1456,8 @@ def approval_inbox(request):
1456
1456
  # Compute default sort column index for DataTables (submitted_at)
1457
1457
  _exp_off = 1 if (any_exportable or any_pdf_exportable) else 0
1458
1458
  _cat_off = 0 if category_slug else 1
1459
- # columns: [checkbox?] [category?] actions form submitter stage step_num assigned submitted_at
1460
- default_sort_col = _exp_off + _cat_off + 1 + 5 # index of submitted_at
1459
+ # columns: [checkbox?] [category?] actions form submitter step_num assigned submitted_at
1460
+ default_sort_col = _exp_off + _cat_off + 1 + 4 # index of submitted_at
1461
1461
 
1462
1462
  return render(
1463
1463
  request,
@@ -4215,7 +4215,6 @@ def approval_inbox_ajax(request):
4215
4215
  "submitter": escape(
4216
4216
  sub.submitter.get_full_name() or sub.submitter.username
4217
4217
  ),
4218
- "stage": f"Stage {task.stage_number}" if task.stage_number else "—",
4219
4218
  "step_num": escape(stage_name),
4220
4219
  "assigned": escape(
4221
4220
  task.assigned_group.name
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-forms-workflows"
3
- version = "0.72.1"
3
+ version = "0.72.2"
4
4
  description = "Enterprise-grade, database-driven form builder with approval workflows and external data integration"
5
5
  license = "LGPL-3.0-only"
6
6
  readme = "README.md"