django-forms-workflows 0.63.2__tar.gz → 0.63.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.63.2 → django_forms_workflows-0.63.4}/CHANGELOG.md +23 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/PKG-INFO +1 -1
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/forms.py +11 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/css/forms.css +21 -9
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +4 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/approve.html +4 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/form_embed.html +1 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +1 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/pyproject.toml +1 -1
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/LICENSE +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/README.md +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/admin.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/api_urls.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/api_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/apps.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/callback_registry.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/conditions.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/context_processors.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/data_sources/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/data_sources/base.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/data_sources/database_source.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/data_sources/ldap_source.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/data_sources/user_source.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/diff_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/email_backends/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/email_backends/gmail_api.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/form_builder_urls.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/form_builder_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/api_handler.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/base.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/database_handler.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/email_handler.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/executor.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/file_handler.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/handlers/ldap_handler.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/history.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/ldap_backend.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/pull_forms.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/push_forms.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/sync_ldap_users.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0001_initial.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0050_workflowdefinition_collapse_parallel_stages.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0051_formdefinition_is_listed.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0052_dynamic_assignee_and_form_field_notifications.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0053_stageformfieldnotification_static_emails.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0054_rename_approved_pending_to_pending_approval.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0055_add_send_back.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0056_calculated_formula_spreadsheet.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0057_add_currency_field_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0058_rename_assignee_email_field_add_lookup_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0059_add_multiselect_list_field_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0060_alter_workflowstage_assignee_lookup_type_helptext.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0061_add_country_us_state_field_types.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0062_add_batch_import_to_formdefinition.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0063_formdefinition_api_enabled_apitoken.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0064_add_reviewer_groups.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0065_workflownotification.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0066_add_notify_submitter_to_workflownotification.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0067_migrate_legacy_notify_flags.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0068_drop_legacy_notify_fields.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0069_add_signature_field_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0070_workflowstage_allow_edit_form_data.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0071_alter_pendingnotification_notification_type.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0072_add_change_history.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0073_add_stage_notify_assignee_on_final_decision.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0074_add_notification_rule.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0075_migrate_to_notification_rules.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0076_update_notification_event_choices.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0077_drop_legacy_notification_models.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0078_allow_anonymous_submissions.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0079_webhookendpoint_webhookdeliverylog.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0080_add_rating_matrix_address_slider_fields_and_form_controls.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0081_add_success_page_fields.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0082_add_document_template_model.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0083_workflowdefinition_start_trigger.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0084_add_shared_option_list.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0085_add_payment_system.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0086_add_embed_enabled.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0087_notificationrule_use_triggering_stage.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0088_notificationrule_body_template_and_events.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/0089_workflowstage_hide_comment_field.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/migrations/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/models.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/payments/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/payments/base.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/payments/registry.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/payments/stripe_provider.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/payments/views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/reporting_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/signals.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sso_backends.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sso_urls.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sso_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui-bundle.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/api/swagger-ui.css +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/dfw-embed.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/payment-stripe.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/signature-pad.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sync_api.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sync_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/tasks.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/analytics_dashboard.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/api/docs.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/batch_import_result.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/discard_draft_confirm.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/embed_base.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/embed_success.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/payment_collect.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/payment_error.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/public_submission_confirmation.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/rate_limited.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/reassign_task.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/submission_success.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/approval_request.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/email_styles.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templates/registration/login.html +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templatetags/__init__.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/urls.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/utils.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/workflow_builder_views.py +0 -0
- {django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/workflow_engine.py +0 -0
|
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.63.4] - 2026-04-02
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **forms.css now loaded in form_submit, approve, and form_embed templates** —
|
|
14
|
+
the package's `base.html` (which includes `forms.css`) was being overridden
|
|
15
|
+
by host apps that provide their own `base.html` template, causing all
|
|
16
|
+
alignment CSS to be silently dropped. The stylesheet is now included directly
|
|
17
|
+
in each template's `extra_css` block so it loads regardless of base template
|
|
18
|
+
overrides.
|
|
19
|
+
- **Phone field real-time validation** — added a `phone` validation rule type
|
|
20
|
+
to `get_enhancements_config()` and `form-enhancements.js` so phone fields
|
|
21
|
+
get immediate red/green feedback on input (like email fields), rejecting
|
|
22
|
+
non-phone text such as "test" before form submission.
|
|
23
|
+
|
|
24
|
+
## [0.63.3] - 2026-04-02
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **Side-by-side field alignment (take 2)** — inputs in paired half-width
|
|
28
|
+
rows now align correctly even when one label wraps to multiple lines.
|
|
29
|
+
Made each column a flex container (`display: flex; flex-direction: column`)
|
|
30
|
+
and `.mb-3` uses `flex: 1` instead of `height: 100%`, creating a proper
|
|
31
|
+
flex chain that reliably pushes inputs to a consistent vertical position.
|
|
32
|
+
|
|
10
33
|
## [0.63.2] - 2026-04-02
|
|
11
34
|
|
|
12
35
|
### Fixed
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/forms.py
RENAMED
|
@@ -1254,6 +1254,17 @@ class DynamicForm(forms.Form):
|
|
|
1254
1254
|
{"type": "email", "message": "Please enter a valid email address"}
|
|
1255
1255
|
)
|
|
1256
1256
|
|
|
1257
|
+
if field.field_type == "phone":
|
|
1258
|
+
validation_rules.append(
|
|
1259
|
+
{
|
|
1260
|
+
"type": "phone",
|
|
1261
|
+
"message": (
|
|
1262
|
+
"Enter a valid phone number, e.g. 2065551234, "
|
|
1263
|
+
"(206) 555-1234, or +1 (206) 555-1234"
|
|
1264
|
+
),
|
|
1265
|
+
}
|
|
1266
|
+
)
|
|
1267
|
+
|
|
1257
1268
|
if field.field_type == "url":
|
|
1258
1269
|
validation_rules.append(
|
|
1259
1270
|
{"type": "url", "message": "Please enter a valid URL"}
|
|
@@ -3,33 +3,45 @@
|
|
|
3
3
|
═══════════════════════════════════════════════════════════════════════════ */
|
|
4
4
|
|
|
5
5
|
/* ── Side-by-side field alignment ────────────────────────────────────────
|
|
6
|
-
When two or more fields sit in a .row.fields-aligned-row,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
When two or more fields sit in a .row.fields-aligned-row, every column
|
|
7
|
+
becomes a flex column so .mb-3 can stretch to fill it. The input/select
|
|
8
|
+
uses margin-top:auto to push itself to the bottom of the label area,
|
|
9
|
+
keeping inputs horizontally aligned regardless of label wrapping. */
|
|
10
|
+
|
|
11
|
+
/* 1. Make each column a flex column so .mb-3 can stretch */
|
|
12
|
+
.row.fields-aligned-row > [class*="col-"],
|
|
13
|
+
.row.fields-aligned-row > .field-wrapper {
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
}
|
|
11
17
|
|
|
18
|
+
/* 2. .mb-3 fills the column and is itself a flex column */
|
|
12
19
|
.row.fields-aligned-row > [class*="col-"] > .mb-3,
|
|
13
20
|
.row.fields-aligned-row > .field-wrapper > .mb-3 {
|
|
14
21
|
display: flex;
|
|
15
22
|
flex-direction: column;
|
|
16
|
-
|
|
23
|
+
flex: 1 1 auto;
|
|
17
24
|
}
|
|
25
|
+
|
|
26
|
+
/* 3. Labels stay at their natural size */
|
|
18
27
|
.row.fields-aligned-row > [class*="col-"] > .mb-3 > label,
|
|
19
28
|
.row.fields-aligned-row > .field-wrapper > .mb-3 > label {
|
|
20
29
|
flex-shrink: 0;
|
|
21
30
|
}
|
|
31
|
+
|
|
32
|
+
/* 4. Push the input/select to the bottom of the label area */
|
|
22
33
|
.row.fields-aligned-row > [class*="col-"] > .mb-3 > .form-control,
|
|
23
34
|
.row.fields-aligned-row > [class*="col-"] > .mb-3 > .form-select,
|
|
24
35
|
.row.fields-aligned-row > .field-wrapper > .mb-3 > .form-control,
|
|
25
36
|
.row.fields-aligned-row > .field-wrapper > .mb-3 > .form-select {
|
|
26
|
-
margin-top: auto;
|
|
37
|
+
margin-top: auto;
|
|
27
38
|
}
|
|
28
|
-
|
|
39
|
+
|
|
40
|
+
/* 5. Help text sits after the input — reserve consistent space */
|
|
29
41
|
.row.fields-aligned-row > [class*="col-"] > .mb-3 > .form-text,
|
|
30
42
|
.row.fields-aligned-row > .field-wrapper > .mb-3 > .form-text {
|
|
31
43
|
flex-shrink: 0;
|
|
32
|
-
min-height: 1.4em;
|
|
44
|
+
min-height: 1.4em;
|
|
33
45
|
}
|
|
34
46
|
|
|
35
47
|
/* ── Consistent field spacing ────────────────────────────────────────── */
|
|
@@ -453,6 +453,10 @@ class FormEnhancements {
|
|
|
453
453
|
(!Array.isArray(value) || value.length > 0);
|
|
454
454
|
case 'email':
|
|
455
455
|
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
|
456
|
+
case 'phone':
|
|
457
|
+
// Must contain at least 7 digits; only digits, spaces, dashes,
|
|
458
|
+
// dots, parens, and an optional leading + are allowed.
|
|
459
|
+
return /^\+?[\d()\- .]{7,25}$/.test(value) && (value.match(/\d/g) || []).length >= 7;
|
|
456
460
|
case 'url':
|
|
457
461
|
try {
|
|
458
462
|
new URL(value);
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
{% block title %}Approve Submission #{{ submission.id }} - {{ site_name }}{% endblock %}
|
|
7
7
|
|
|
8
|
+
{% block extra_css %}
|
|
9
|
+
<link rel="stylesheet" href="{% static 'django_forms_workflows/css/forms.css' %}">
|
|
10
|
+
{% endblock %}
|
|
11
|
+
|
|
8
12
|
{% block content %}
|
|
9
13
|
<div class="row">
|
|
10
14
|
<div class="col-lg-10 mx-auto">
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
{% block title %}{{ form_def.name }}{% endblock %}
|
|
6
6
|
|
|
7
7
|
{% block extra_css %}
|
|
8
|
+
<link rel="stylesheet" href="{% static 'django_forms_workflows/css/forms.css' %}">
|
|
8
9
|
<style>
|
|
9
10
|
.rating-stars-container { display: inline-flex; gap: 0.15rem; direction: rtl; }
|
|
10
11
|
.rating-stars-container input { display: none; }
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
{% block title %}{{ form_def.name }} - {{ site_name }}{% endblock %}
|
|
6
6
|
|
|
7
7
|
{% block extra_css %}
|
|
8
|
+
<link rel="stylesheet" href="{% static 'django_forms_workflows/css/forms.css' %}">
|
|
8
9
|
<style>
|
|
9
10
|
/* Rating stars widget */
|
|
10
11
|
.rating-stars-container { display: inline-flex; gap: 0.15rem; direction: rtl; }
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/__init__.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/admin.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/api_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/api_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/apps.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.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.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/diff_views.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
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.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
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.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.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/signals.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sso_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.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
|
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sync_api.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/sync_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.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
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/utils.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.63.2 → django_forms_workflows-0.63.4}/django_forms_workflows/views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|