django-forms-workflows 0.77.0__tar.gz → 0.77.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 (229) hide show
  1. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/PKG-INFO +1 -1
  2. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/diff_views.py +19 -0
  3. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/sync_api.py +88 -2
  4. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/pyproject.toml +1 -1
  5. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/CHANGELOG.md +0 -0
  6. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/LICENSE +0 -0
  7. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/README.md +0 -0
  8. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/__init__.py +0 -0
  9. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/admin.py +0 -0
  10. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/api_urls.py +0 -0
  11. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/api_views.py +0 -0
  12. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/apps.py +0 -0
  13. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/callback_registry.py +0 -0
  14. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/conditions.py +0 -0
  15. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/context_processors.py +0 -0
  16. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/data_sources/__init__.py +0 -0
  17. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/data_sources/base.py +0 -0
  18. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/data_sources/database_source.py +0 -0
  19. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/data_sources/ldap_source.py +0 -0
  20. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/data_sources/user_source.py +0 -0
  21. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/email_backends/__init__.py +0 -0
  22. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/email_backends/gmail_api.py +0 -0
  23. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/form_builder_urls.py +0 -0
  24. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/form_builder_views.py +0 -0
  25. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/forms.py +0 -0
  26. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/__init__.py +0 -0
  27. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/api_handler.py +0 -0
  28. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/base.py +0 -0
  29. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/database_handler.py +0 -0
  30. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/email_handler.py +0 -0
  31. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/executor.py +0 -0
  32. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/file_handler.py +0 -0
  33. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/handlers/ldap_handler.py +0 -0
  34. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/history.py +0 -0
  35. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/ldap_backend.py +0 -0
  36. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
  37. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/pull_forms.py +0 -0
  38. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/push_forms.py +0 -0
  39. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
  40. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
  41. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
  42. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
  43. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/sync_ldap_users.py +0 -0
  44. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
  45. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0001_initial.py +0 -0
  46. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
  47. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
  48. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
  49. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
  50. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
  51. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
  52. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
  53. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
  54. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
  55. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
  56. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
  57. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
  58. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
  59. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
  60. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
  61. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
  62. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
  63. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
  64. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
  65. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
  66. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
  67. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
  68. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
  69. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
  70. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
  71. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
  72. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
  73. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
  74. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
  75. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
  76. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
  77. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
  78. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
  79. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
  80. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
  81. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
  82. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
  83. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
  84. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
  85. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
  86. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
  87. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
  88. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
  89. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
  90. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
  91. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
  92. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
  93. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
  94. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0050_workflowdefinition_collapse_parallel_stages.py +0 -0
  95. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0051_formdefinition_is_listed.py +0 -0
  96. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0052_dynamic_assignee_and_form_field_notifications.py +0 -0
  97. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0053_stageformfieldnotification_static_emails.py +0 -0
  98. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0054_rename_approved_pending_to_pending_approval.py +0 -0
  99. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0055_add_send_back.py +0 -0
  100. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0056_calculated_formula_spreadsheet.py +0 -0
  101. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0057_add_currency_field_type.py +0 -0
  102. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0058_rename_assignee_email_field_add_lookup_type.py +0 -0
  103. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0059_add_multiselect_list_field_type.py +0 -0
  104. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0060_alter_workflowstage_assignee_lookup_type_helptext.py +0 -0
  105. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0061_add_country_us_state_field_types.py +0 -0
  106. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0062_add_batch_import_to_formdefinition.py +0 -0
  107. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0063_formdefinition_api_enabled_apitoken.py +0 -0
  108. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0064_add_reviewer_groups.py +0 -0
  109. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0065_workflownotification.py +0 -0
  110. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0066_add_notify_submitter_to_workflownotification.py +0 -0
  111. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0067_migrate_legacy_notify_flags.py +0 -0
  112. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0068_drop_legacy_notify_fields.py +0 -0
  113. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0069_add_signature_field_type.py +0 -0
  114. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0070_workflowstage_allow_edit_form_data.py +0 -0
  115. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0071_alter_pendingnotification_notification_type.py +0 -0
  116. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0072_add_change_history.py +0 -0
  117. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0073_add_stage_notify_assignee_on_final_decision.py +0 -0
  118. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0074_add_notification_rule.py +0 -0
  119. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0075_migrate_to_notification_rules.py +0 -0
  120. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0076_update_notification_event_choices.py +0 -0
  121. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0077_drop_legacy_notification_models.py +0 -0
  122. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0078_allow_anonymous_submissions.py +0 -0
  123. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0079_webhookendpoint_webhookdeliverylog.py +0 -0
  124. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0080_add_rating_matrix_address_slider_fields_and_form_controls.py +0 -0
  125. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0081_add_success_page_fields.py +0 -0
  126. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0082_add_document_template_model.py +0 -0
  127. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0083_workflowdefinition_start_trigger.py +0 -0
  128. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0084_add_shared_option_list.py +0 -0
  129. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0085_add_payment_system.py +0 -0
  130. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0086_add_embed_enabled.py +0 -0
  131. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0087_notificationrule_use_triggering_stage.py +0 -0
  132. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0088_notificationrule_body_template_and_events.py +0 -0
  133. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0089_workflowstage_hide_comment_field.py +0 -0
  134. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0090_alter_stageapprovalgroup_options_and_more.py +0 -0
  135. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0091_add_uuid_fields.py +0 -0
  136. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0092_add_user_notification_preference.py +0 -0
  137. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0093_normalize_conditional_operators.py +0 -0
  138. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0094_formfield_show_help_text_in_detail.py +0 -0
  139. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0095_notificationrule_cc_fields.py +0 -0
  140. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0096_notificationlog_cc_bcc_emails.py +0 -0
  141. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/0097_notificationlog_delivery_reconciliation.py +0 -0
  142. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/migrations/__init__.py +0 -0
  143. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/models.py +0 -0
  144. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/payments/__init__.py +0 -0
  145. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/payments/base.py +0 -0
  146. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/payments/registry.py +0 -0
  147. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/payments/stripe_provider.py +0 -0
  148. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/payments/views.py +0 -0
  149. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/reporting_views.py +0 -0
  150. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/signals.py +0 -0
  151. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/sso_backends.py +0 -0
  152. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/sso_urls.py +0 -0
  153. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/sso_views.py +0 -0
  154. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui-bundle.js +0 -0
  155. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui.css +0 -0
  156. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/css/forms.css +0 -0
  157. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/admin_notification_rule_stage_filter.js +0 -0
  158. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/dfw-embed.js +0 -0
  159. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder-api.js +0 -0
  160. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder-canvas.js +0 -0
  161. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder-history.js +0 -0
  162. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder-property-editor.js +0 -0
  163. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder-store.js +0 -0
  164. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
  165. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
  166. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/payment-stripe.js +0 -0
  167. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/signature-pad.js +0 -0
  168. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder-api.js +0 -0
  169. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder-store.js +0 -0
  170. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
  171. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/sync_views.py +0 -0
  172. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/tasks.py +0 -0
  173. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
  174. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
  175. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
  176. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
  177. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
  178. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
  179. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
  180. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
  181. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
  182. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
  183. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/_field_value.html +0 -0
  184. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/_form_data_rows.html +0 -0
  185. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/analytics_dashboard.html +0 -0
  186. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/api/docs.html +0 -0
  187. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
  188. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/approve.html +0 -0
  189. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
  190. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/batch_import_result.html +0 -0
  191. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
  192. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/discard_draft_confirm.html +0 -0
  193. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/embed_base.html +0 -0
  194. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/embed_success.html +0 -0
  195. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
  196. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/form_embed.html +0 -0
  197. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
  198. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
  199. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
  200. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/notification_preferences.html +0 -0
  201. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/payment_collect.html +0 -0
  202. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/payment_error.html +0 -0
  203. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/public_submission_confirmation.html +0 -0
  204. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/rate_limited.html +0 -0
  205. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/reassign_task.html +0 -0
  206. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
  207. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
  208. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
  209. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
  210. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +0 -0
  211. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
  212. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/submission_success.html +0 -0
  213. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
  214. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
  215. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
  216. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/approval_request.html +0 -0
  217. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/email_styles.html +0 -0
  218. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
  219. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
  220. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
  221. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
  222. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templates/registration/login.html +0 -0
  223. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templatetags/__init__.py +0 -0
  224. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
  225. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/urls.py +0 -0
  226. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/utils.py +0 -0
  227. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/views.py +0 -0
  228. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/workflow_builder_views.py +0 -0
  229. {django_forms_workflows-0.77.0 → django_forms_workflows-0.77.2}/django_forms_workflows/workflow_engine.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-forms-workflows
3
- Version: 0.77.0
3
+ Version: 0.77.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
@@ -326,6 +326,25 @@ def _build_summary(forms_data):
326
326
  parts.append(f"-{', '.join(sorted(removed_g))}")
327
327
  diffs.append(f"{g}: {'; '.join(parts)}")
328
328
 
329
+ # Optional host-project LDAP lookup opt-in. Missing keys come from an
330
+ # older package version and are treated like disabled configuration.
331
+ if "ldap_lookup_config" in base or "ldap_lookup_config" in other:
332
+ b_ldap = base.get("ldap_lookup_config") or {}
333
+ o_ldap = other.get("ldap_lookup_config") or {}
334
+ b_enabled = bool(b_ldap.get("enabled", False))
335
+ o_enabled = bool(o_ldap.get("enabled", False))
336
+ if b_enabled != o_enabled:
337
+ diffs.append(f"LDAP lookup enabled: {b_enabled} → {o_enabled}")
338
+ if (
339
+ b_enabled
340
+ and o_enabled
341
+ and b_ldap.get("notes", "") != o_ldap.get("notes", "")
342
+ ):
343
+ diffs.append(
344
+ "LDAP lookup notes: "
345
+ f"{b_ldap.get('notes', '')!r} → {o_ldap.get('notes', '')!r}"
346
+ )
347
+
329
348
  # Post actions
330
349
  b_actions = base.get("post_actions", [])
331
350
  o_actions = other.get("post_actions", [])
@@ -26,6 +26,7 @@ import json
26
26
  import logging
27
27
  from decimal import Decimal
28
28
 
29
+ from django.apps import apps
29
30
  from django.conf import settings
30
31
  from django.contrib.auth.models import Group
31
32
  from django.db import transaction
@@ -423,6 +424,42 @@ def _serialize_post_action(action):
423
424
  }
424
425
 
425
426
 
427
+ def _get_ldap_lookup_enabled_form_model():
428
+ """Return the optional site-level LDAP lookup opt-in model.
429
+
430
+ ``LDAPLookupEnabledForm`` belongs to the host project rather than this
431
+ reusable package. Looking it up through Django's app registry lets sync
432
+ include the configuration when the host app is installed without making
433
+ it a package dependency.
434
+ """
435
+ try:
436
+ return apps.get_model("workflows", "LDAPLookupEnabledForm")
437
+ except LookupError:
438
+ return None
439
+
440
+
441
+ def _serialize_ldap_lookup_config(form_definition):
442
+ """Serialize the portable part of the optional LDAP lookup opt-in row.
443
+
444
+ Row presence is the actual enabled flag. ``enabled_at`` and ``enabled_by``
445
+ are deliberately excluded because they are environment-local audit data;
446
+ in particular, user primary keys are not portable between instances.
447
+ """
448
+ model = _get_ldap_lookup_enabled_form_model()
449
+ if model is None:
450
+ return None
451
+
452
+ try:
453
+ config = form_definition.ldap_lookup_config
454
+ except model.DoesNotExist:
455
+ config = None
456
+
457
+ return {
458
+ "enabled": config is not None,
459
+ "notes": config.notes if config is not None else "",
460
+ }
461
+
462
+
426
463
  def serialize_form(form_definition):
427
464
  """Serialize a FormDefinition (with all related objects) to a plain dict."""
428
465
  all_workflows = list(form_definition.workflows.all().order_by("id"))
@@ -490,6 +527,10 @@ def serialize_form(form_definition):
490
527
  _serialize_workflow(wf) for wf in extra_workflows
491
528
  ]
492
529
 
530
+ ldap_lookup_config = _serialize_ldap_lookup_config(form_definition)
531
+ if ldap_lookup_config is not None:
532
+ result["ldap_lookup_config"] = ldap_lookup_config
533
+
493
534
  return result
494
535
 
495
536
 
@@ -530,7 +571,7 @@ def build_export_payload(queryset):
530
571
  changes propagate independently of whether any form in that category
531
572
  was modified.
532
573
  """
533
- qs = queryset.prefetch_related(
574
+ prefetches = [
534
575
  "fields",
535
576
  "fields__prefill_source_config",
536
577
  "fields__shared_option_list",
@@ -553,7 +594,10 @@ def build_export_payload(queryset):
553
594
  "reviewer_groups",
554
595
  "category",
555
596
  "category__allowed_groups",
556
- )
597
+ ]
598
+ if _get_ldap_lookup_enabled_form_model() is not None:
599
+ prefetches.append("ldap_lookup_config")
600
+ qs = queryset.prefetch_related(*prefetches)
557
601
 
558
602
  # Export all categories (topologically sorted) so category-only changes
559
603
  # propagate even when no form in that category was touched.
@@ -636,6 +680,42 @@ def _get_or_create_category(data, category_cache=None):
636
680
  return cat
637
681
 
638
682
 
683
+ def _sync_ldap_lookup_config(form_obj, form_data):
684
+ """Apply optional LDAP lookup opt-in state from a serialized form.
685
+
686
+ Missing data means the payload came from an older package and leaves the
687
+ target unchanged. An explicit disabled value removes the opt-in row.
688
+ """
689
+ if "ldap_lookup_config" not in form_data:
690
+ return
691
+
692
+ model = _get_ldap_lookup_enabled_form_model()
693
+ if model is None:
694
+ logger.warning(
695
+ "Sync import: LDAP lookup configuration supplied for form %s, "
696
+ "but workflows.LDAPLookupEnabledForm is not installed; skipped.",
697
+ form_obj.slug,
698
+ )
699
+ return
700
+
701
+ config_data = form_data["ldap_lookup_config"]
702
+ if isinstance(config_data, dict):
703
+ enabled = config_data.get("enabled", True)
704
+ notes = config_data.get("notes", "")
705
+ else:
706
+ # Tolerate a compact boolean representation from custom clients.
707
+ enabled = bool(config_data)
708
+ notes = ""
709
+
710
+ if enabled:
711
+ model.objects.update_or_create(
712
+ form=form_obj,
713
+ defaults={"notes": notes},
714
+ )
715
+ else:
716
+ model.objects.filter(form=form_obj).delete()
717
+
718
+
639
719
  def _resolve_sub_workflow(sub_wf_form, sub_wf_data, parent_workflow):
640
720
  """Resolve the correct WorkflowDefinition for a sub-workflow reference.
641
721
 
@@ -992,6 +1072,9 @@ def import_form(form_data, conflict="update", category_cache=None):
992
1072
  [_get_or_create_group(n) for n in fd.get("reviewer_groups", [])]
993
1073
  )
994
1074
 
1075
+ # Sync host-project form extensions before the package-owned child rows.
1076
+ _sync_ldap_lookup_config(form_obj, form_data)
1077
+
995
1078
  # ── Workflows (created BEFORE fields so stage FKs can be resolved) ─────────
996
1079
  wf_data = form_data.get("workflow")
997
1080
  additional_wf_data = form_data.get("additional_workflows", [])
@@ -1211,6 +1294,9 @@ def _reset_sequences():
1211
1294
  WorkflowDefinition,
1212
1295
  WorkflowStage,
1213
1296
  ]
1297
+ ldap_lookup_model = _get_ldap_lookup_enabled_form_model()
1298
+ if ldap_lookup_model is not None:
1299
+ models_to_reset.append(ldap_lookup_model)
1214
1300
  with connection.cursor() as cursor:
1215
1301
  for model in models_to_reset:
1216
1302
  table = model._meta.db_table
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-forms-workflows"
3
- version = "0.77.0"
3
+ version = "0.77.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"