django-forms-workflows 0.72.3__tar.gz → 0.72.4__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.72.3 → django_forms_workflows-0.72.4}/CHANGELOG.md +17 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/PKG-INFO +1 -1
- django_forms_workflows-0.72.4/django_forms_workflows/migrations/0093_normalize_conditional_operators.py +51 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +1 -1
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +1 -1
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +1 -1
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/pyproject.toml +1 -1
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/LICENSE +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/README.md +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/admin.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/api_urls.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/api_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/apps.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/callback_registry.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/conditions.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/context_processors.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/data_sources/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/data_sources/base.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/data_sources/database_source.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/data_sources/ldap_source.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/data_sources/user_source.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/diff_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/email_backends/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/email_backends/gmail_api.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/form_builder_urls.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/form_builder_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/forms.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/api_handler.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/base.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/database_handler.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/email_handler.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/executor.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/file_handler.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/handlers/ldap_handler.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/history.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/ldap_backend.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/pull_forms.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/push_forms.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/sync_ldap_users.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0001_initial.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0050_workflowdefinition_collapse_parallel_stages.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0051_formdefinition_is_listed.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0052_dynamic_assignee_and_form_field_notifications.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0053_stageformfieldnotification_static_emails.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0054_rename_approved_pending_to_pending_approval.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0055_add_send_back.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0056_calculated_formula_spreadsheet.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0057_add_currency_field_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0058_rename_assignee_email_field_add_lookup_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0059_add_multiselect_list_field_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0060_alter_workflowstage_assignee_lookup_type_helptext.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0061_add_country_us_state_field_types.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0062_add_batch_import_to_formdefinition.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0063_formdefinition_api_enabled_apitoken.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0064_add_reviewer_groups.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0065_workflownotification.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0066_add_notify_submitter_to_workflownotification.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0067_migrate_legacy_notify_flags.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0068_drop_legacy_notify_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0069_add_signature_field_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0070_workflowstage_allow_edit_form_data.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0071_alter_pendingnotification_notification_type.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0072_add_change_history.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0073_add_stage_notify_assignee_on_final_decision.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0074_add_notification_rule.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0075_migrate_to_notification_rules.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0076_update_notification_event_choices.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0077_drop_legacy_notification_models.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0078_allow_anonymous_submissions.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0079_webhookendpoint_webhookdeliverylog.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0080_add_rating_matrix_address_slider_fields_and_form_controls.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0081_add_success_page_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0082_add_document_template_model.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0083_workflowdefinition_start_trigger.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0084_add_shared_option_list.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0085_add_payment_system.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0086_add_embed_enabled.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0087_notificationrule_use_triggering_stage.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0088_notificationrule_body_template_and_events.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0089_workflowstage_hide_comment_field.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0090_alter_stageapprovalgroup_options_and_more.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0091_add_uuid_fields.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/0092_add_user_notification_preference.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/migrations/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/models.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/payments/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/payments/base.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/payments/registry.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/payments/stripe_provider.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/payments/views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/reporting_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/signals.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sso_backends.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sso_urls.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sso_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui-bundle.js +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui.css +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/css/forms.css +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/dfw-embed.js +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/payment-stripe.js +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/static/django_forms_workflows/js/signature-pad.js +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sync_api.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sync_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/tasks.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/_field_value.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/_form_data_rows.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/analytics_dashboard.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/api/docs.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/approve.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/batch_import_result.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/discard_draft_confirm.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/embed_base.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/embed_success.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/form_embed.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/notification_preferences.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/payment_collect.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/payment_error.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/public_submission_confirmation.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/rate_limited.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/reassign_task.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/submission_success.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/approval_request.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/email_styles.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templates/registration/login.html +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templatetags/__init__.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/urls.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/utils.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/workflow_builder_views.py +0 -0
- {django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/workflow_engine.py +0 -0
|
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.72.4] - 2026-04-23
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Conditionally-visible fields no longer dropped from submissions.**
|
|
14
|
+
The form builder UI and client-side evaluator used `is_not_empty`
|
|
15
|
+
while the server-side `evaluate_conditions` only recognised
|
|
16
|
+
`not_empty`. Any `show`-gated field whose rule depended on
|
|
17
|
+
`is_not_empty` was treated as hidden on submit, stripped from
|
|
18
|
+
`cleaned_data`, and never written to `form_data` — so its label
|
|
19
|
+
did not render in the submission detail view while client-side JS
|
|
20
|
+
happily showed and accepted input. Standardised on `not_empty`
|
|
21
|
+
across `form-builder.js`, `form-enhancements.js`, and
|
|
22
|
+
`workflow-builder.js`; the dropdown still reads "Is Not Empty" but
|
|
23
|
+
now emits the canonical value. Data migration
|
|
24
|
+
`0093_normalize_conditional_operators` rewrites any existing
|
|
25
|
+
`FormField.conditional_rules` in place.
|
|
26
|
+
|
|
10
27
|
## [0.72.3] - 2026-04-18
|
|
11
28
|
|
|
12
29
|
### Fixed
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Normalize FormField.conditional_rules: rewrite the client-only ``is_not_empty``
|
|
3
|
+
operator to the canonical ``not_empty`` recognised by
|
|
4
|
+
``django_forms_workflows.conditions.evaluate_conditions``.
|
|
5
|
+
|
|
6
|
+
Prior to this migration, the form builder UI wrote ``is_not_empty`` into each
|
|
7
|
+
field's ``conditional_rules`` JSON, but the server-side evaluator only knew
|
|
8
|
+
about ``not_empty``. On submission ``clean()`` treated ``show``-gated fields as
|
|
9
|
+
hidden and dropped their values, so they never reached ``form_data`` and did
|
|
10
|
+
not render in the submission detail view.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from django.db import migrations
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _rewrite_rules(rules):
|
|
17
|
+
"""Recursively swap ``is_not_empty`` → ``not_empty`` in a rules blob."""
|
|
18
|
+
if isinstance(rules, list):
|
|
19
|
+
return [_rewrite_rules(r) for r in rules]
|
|
20
|
+
if isinstance(rules, dict):
|
|
21
|
+
out = {}
|
|
22
|
+
for k, v in rules.items():
|
|
23
|
+
if k == "operator" and v == "is_not_empty":
|
|
24
|
+
out[k] = "not_empty"
|
|
25
|
+
elif k == "conditions":
|
|
26
|
+
out[k] = [_rewrite_rules(c) for c in (v or [])]
|
|
27
|
+
else:
|
|
28
|
+
out[k] = _rewrite_rules(v) if isinstance(v, list | dict) else v
|
|
29
|
+
return out
|
|
30
|
+
return rules
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def forwards(apps, schema_editor):
|
|
34
|
+
FormField = apps.get_model("django_forms_workflows", "FormField")
|
|
35
|
+
for field in FormField.objects.exclude(conditional_rules__isnull=True):
|
|
36
|
+
original = field.conditional_rules
|
|
37
|
+
rewritten = _rewrite_rules(original)
|
|
38
|
+
if rewritten != original:
|
|
39
|
+
field.conditional_rules = rewritten
|
|
40
|
+
field.save(update_fields=["conditional_rules"])
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class Migration(migrations.Migration):
|
|
44
|
+
|
|
45
|
+
dependencies = [
|
|
46
|
+
("django_forms_workflows", "0092_add_user_notification_preference"),
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
operations = [
|
|
50
|
+
migrations.RunPython(forwards, migrations.RunPython.noop),
|
|
51
|
+
]
|
|
@@ -1096,7 +1096,7 @@ class FormBuilder {
|
|
|
1096
1096
|
<option value="greater_than" ${condition.operator === 'greater_than' ? 'selected' : ''}>Greater Than</option>
|
|
1097
1097
|
<option value="less_than" ${condition.operator === 'less_than' ? 'selected' : ''}>Less Than</option>
|
|
1098
1098
|
<option value="is_empty" ${condition.operator === 'is_empty' ? 'selected' : ''}>Is Empty</option>
|
|
1099
|
-
<option value="
|
|
1099
|
+
<option value="not_empty" ${condition.operator === 'not_empty' || condition.operator === 'is_not_empty' ? 'selected' : ''}>Is Not Empty</option>
|
|
1100
1100
|
</select>
|
|
1101
1101
|
</div>
|
|
1102
1102
|
<div class="col-md-4">
|
|
@@ -206,7 +206,7 @@ class FormEnhancements {
|
|
|
206
206
|
return !notInValues.includes(String(fieldValue));
|
|
207
207
|
case 'is_empty':
|
|
208
208
|
return !fieldValue || fieldValue === '' || (Array.isArray(fieldValue) && fieldValue.length === 0);
|
|
209
|
-
case '
|
|
209
|
+
case 'not_empty':
|
|
210
210
|
return fieldValue && fieldValue !== '' && (!Array.isArray(fieldValue) || fieldValue.length > 0);
|
|
211
211
|
case 'is_true':
|
|
212
212
|
return fieldValue === true || fieldValue === 'true' || fieldValue === '1';
|
|
@@ -2933,7 +2933,7 @@ class WorkflowBuilder {
|
|
|
2933
2933
|
'contains': 'contains',
|
|
2934
2934
|
'not_contains': 'not contains',
|
|
2935
2935
|
'is_empty': 'is empty',
|
|
2936
|
-
'
|
|
2936
|
+
'not_empty': 'is not empty'
|
|
2937
2937
|
};
|
|
2938
2938
|
const op = operatorSymbols[node.data.operator] || node.data.operator;
|
|
2939
2939
|
return `If ${node.data.field} ${op} ${node.data.value || ''}`;
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/__init__.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/admin.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/api_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/api_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/apps.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/conditions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/diff_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/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
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/history.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/signals.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sso_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sso_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sync_api.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/sync_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/utils.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.72.3 → django_forms_workflows-0.72.4}/django_forms_workflows/views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|