django-forms-workflows 0.35.4__tar.gz → 0.35.7__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.35.4 → django_forms_workflows-0.35.7}/PKG-INFO +1 -1
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/ldap_backend.py +21 -3
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/approve.html +32 -6
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +7 -4
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/workflow_engine.py +32 -2
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/pyproject.toml +1 -1
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/CHANGELOG.md +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/LICENSE +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/README.md +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/admin.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/apps.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/conditions.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/context_processors.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/data_sources/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/data_sources/base.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/data_sources/database_source.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/data_sources/ldap_source.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/data_sources/user_source.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/diff_views.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/email_backends/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/email_backends/gmail_api.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/form_builder_urls.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/form_builder_views.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/forms.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/api_handler.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/base.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/database_handler.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/email_handler.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/executor.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/file_handler.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/handlers/ldap_handler.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/pull_forms.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/push_forms.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/sync_ldap_users.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0001_initial.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0050_workflowdefinition_collapse_parallel_stages.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0051_formdefinition_is_listed.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0052_dynamic_assignee_and_form_field_notifications.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0053_stageformfieldnotification_static_emails.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0054_rename_approved_pending_to_pending_approval.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0055_add_send_back.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0056_calculated_formula_spreadsheet.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0057_add_currency_field_type.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0058_rename_assignee_email_field_add_lookup_type.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0059_add_multiselect_list_field_type.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/0060_alter_workflowstage_assignee_lookup_type_helptext.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/migrations/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/models.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/signals.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sso_backends.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sso_urls.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sso_views.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sync_api.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sync_views.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/tasks.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/reassign_task.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/approval_request.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/email_styles.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templates/registration/login.html +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templatetags/__init__.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/urls.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/utils.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/views.py +0 -0
- {django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/workflow_builder_views.py +0 -0
|
@@ -394,10 +394,20 @@ def search_ldap_users(search_term, max_results=10):
|
|
|
394
394
|
settings, "FORMS_WORKFLOWS_LDAP_USERNAME_ATTR", "sAMAccountName"
|
|
395
395
|
)
|
|
396
396
|
|
|
397
|
-
# Build search filter
|
|
397
|
+
# Build search filter.
|
|
398
|
+
# Searches displayName in addition to sAMAccountName, givenName, and sn
|
|
399
|
+
# so that full-name values (e.g. "Jarred Simmonds") from form fields are
|
|
400
|
+
# matched correctly. displayName is the authoritative full-name field in
|
|
401
|
+
# Active Directory and is what the _lookup_by_ldap engine passes here.
|
|
398
402
|
if search_term:
|
|
399
403
|
escaped_term = escape_filter_chars(search_term)
|
|
400
|
-
search_filter =
|
|
404
|
+
search_filter = (
|
|
405
|
+
f"(&(objectClass=user)"
|
|
406
|
+
f"(|({username_attr}=*{escaped_term}*)"
|
|
407
|
+
f"(displayName=*{escaped_term}*)"
|
|
408
|
+
f"(givenName=*{escaped_term}*)"
|
|
409
|
+
f"(sn=*{escaped_term}*)))"
|
|
410
|
+
)
|
|
401
411
|
else:
|
|
402
412
|
search_filter = "(objectClass=user)"
|
|
403
413
|
|
|
@@ -407,7 +417,15 @@ def search_ldap_users(search_term, max_results=10):
|
|
|
407
417
|
settings.AUTH_LDAP_USER_SEARCH.base_dn,
|
|
408
418
|
ldap.SCOPE_SUBTREE,
|
|
409
419
|
search_filter,
|
|
410
|
-
[
|
|
420
|
+
[
|
|
421
|
+
username_attr,
|
|
422
|
+
"displayName",
|
|
423
|
+
"givenName",
|
|
424
|
+
"sn",
|
|
425
|
+
"mail",
|
|
426
|
+
"department",
|
|
427
|
+
"title",
|
|
428
|
+
],
|
|
411
429
|
)
|
|
412
430
|
|
|
413
431
|
users = []
|
|
@@ -255,7 +255,10 @@
|
|
|
255
255
|
</div>
|
|
256
256
|
{% endif %}
|
|
257
257
|
{% if section.comments %}
|
|
258
|
-
<p class="mb-2 small fst-italic text-secondary"
|
|
258
|
+
<p class="mb-2 small fst-italic text-secondary">
|
|
259
|
+
<span class="badge bg-warning text-dark me-1" title="This comment is visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span>
|
|
260
|
+
“{{ section.comments }}”
|
|
261
|
+
</p>
|
|
259
262
|
{% endif %}
|
|
260
263
|
{% if section.fields %}
|
|
261
264
|
<table class="table table-bordered table-sm mb-0">
|
|
@@ -333,8 +336,18 @@
|
|
|
333
336
|
<!-- Decision Section inline -->
|
|
334
337
|
<h6 class="mb-3"><i class="bi bi-clipboard-check"></i> Your Decision</h6>
|
|
335
338
|
<div class="mb-3">
|
|
336
|
-
<label for="comments" class="form-label">
|
|
337
|
-
|
|
339
|
+
<label for="comments" class="form-label">
|
|
340
|
+
Decision Comment
|
|
341
|
+
<span class="badge bg-warning text-dark ms-1" title="This comment is visible to the submitter and all parties on the submission record.">
|
|
342
|
+
<i class="bi bi-eye-fill"></i> Public
|
|
343
|
+
</span>
|
|
344
|
+
</label>
|
|
345
|
+
<textarea class="form-control" id="comments" name="comments" rows="2" placeholder="Optional — visible to the submitter and all parties..."></textarea>
|
|
346
|
+
<div class="form-text text-muted">
|
|
347
|
+
<i class="bi bi-info-circle"></i>
|
|
348
|
+
This comment is <strong>visible to the submitter</strong> and appears on the public submission record.
|
|
349
|
+
For internal notes, add a private field to this approval step's configuration instead.
|
|
350
|
+
</div>
|
|
338
351
|
</div>
|
|
339
352
|
<div class="d-grid gap-2 d-md-block">
|
|
340
353
|
<button type="submit" name="decision" value="approve" class="btn btn-success btn-lg">
|
|
@@ -494,7 +507,10 @@
|
|
|
494
507
|
</div>
|
|
495
508
|
{% endif %}
|
|
496
509
|
{% if section.comments %}
|
|
497
|
-
<p class="mb-0 mt-1 small fst-italic text-secondary"
|
|
510
|
+
<p class="mb-0 mt-1 small fst-italic text-secondary">
|
|
511
|
+
<span class="badge bg-warning text-dark me-1" title="This comment is visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span>
|
|
512
|
+
“{{ section.comments }}”
|
|
513
|
+
</p>
|
|
498
514
|
{% endif %}
|
|
499
515
|
</div>
|
|
500
516
|
</div>
|
|
@@ -564,8 +580,18 @@
|
|
|
564
580
|
<form method="post" data-loading-message="Processing your decision...">
|
|
565
581
|
{% csrf_token %}
|
|
566
582
|
<div class="mb-3">
|
|
567
|
-
<label for="comments" class="form-label">
|
|
568
|
-
|
|
583
|
+
<label for="comments" class="form-label">
|
|
584
|
+
Decision Comment
|
|
585
|
+
<span class="badge bg-warning text-dark ms-1" title="This comment is visible to the submitter and all parties on the submission record.">
|
|
586
|
+
<i class="bi bi-eye-fill"></i> Public
|
|
587
|
+
</span>
|
|
588
|
+
</label>
|
|
589
|
+
<textarea class="form-control" id="comments" name="comments" rows="3" placeholder="Optional — visible to the submitter and all parties..."></textarea>
|
|
590
|
+
<div class="form-text text-muted">
|
|
591
|
+
<i class="bi bi-info-circle"></i>
|
|
592
|
+
This comment is <strong>visible to the submitter</strong> and appears on the public submission record.
|
|
593
|
+
For internal notes, add a private field to this approval step's configuration instead.
|
|
594
|
+
</div>
|
|
569
595
|
</div>
|
|
570
596
|
<div class="d-grid gap-2 d-md-block">
|
|
571
597
|
<button type="submit" name="decision" value="approve" class="btn btn-success btn-lg">
|
|
@@ -186,7 +186,10 @@
|
|
|
186
186
|
</div>
|
|
187
187
|
{% endif %}
|
|
188
188
|
{% if section.comments %}
|
|
189
|
-
<p class="mb-0 mt-1 small fst-italic text-secondary"
|
|
189
|
+
<p class="mb-0 mt-1 small fst-italic text-secondary">
|
|
190
|
+
<span class="badge bg-warning text-dark me-1" title="This comment is visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span>
|
|
191
|
+
“{{ section.comments }}”
|
|
192
|
+
</p>
|
|
190
193
|
{% endif %}
|
|
191
194
|
</div>
|
|
192
195
|
</div>
|
|
@@ -320,7 +323,7 @@
|
|
|
320
323
|
<th>Status</th>
|
|
321
324
|
<th>Completed By</th>
|
|
322
325
|
<th>Completed At</th>
|
|
323
|
-
<th>Comments</th>
|
|
326
|
+
<th>Decision Comment <span class="badge bg-warning text-dark" title="Comments are visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span></th>
|
|
324
327
|
</tr>
|
|
325
328
|
</thead>
|
|
326
329
|
<tbody>
|
|
@@ -388,7 +391,7 @@
|
|
|
388
391
|
<th>Status</th>
|
|
389
392
|
<th>Completed By</th>
|
|
390
393
|
<th>Completed At</th>
|
|
391
|
-
<th>Comments</th>
|
|
394
|
+
<th>Decision Comment <span class="badge bg-warning text-dark" title="Comments are visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span></th>
|
|
392
395
|
</tr>
|
|
393
396
|
</thead>
|
|
394
397
|
<tbody>
|
|
@@ -441,7 +444,7 @@
|
|
|
441
444
|
<th>Status</th>
|
|
442
445
|
<th>Completed By</th>
|
|
443
446
|
<th>Completed At</th>
|
|
444
|
-
<th>Comments</th>
|
|
447
|
+
<th>Decision Comment <span class="badge bg-warning text-dark" title="Comments are visible to the submitter."><i class="bi bi-eye-fill"></i> Public</span></th>
|
|
445
448
|
</tr>
|
|
446
449
|
</thead>
|
|
447
450
|
<tbody>
|
|
@@ -471,8 +471,9 @@ def _lookup_by_ldap(user_model, value, stage, submission):
|
|
|
471
471
|
return None
|
|
472
472
|
|
|
473
473
|
# Get or JIT-create the Django User
|
|
474
|
+
jit_created = False
|
|
474
475
|
try:
|
|
475
|
-
|
|
476
|
+
user = user_model.objects.get(username__iexact=username)
|
|
476
477
|
except user_model.DoesNotExist:
|
|
477
478
|
# Auto-provision the user so the approval task can be assigned.
|
|
478
479
|
# When they later SSO in, the social-auth pipeline's
|
|
@@ -484,6 +485,7 @@ def _lookup_by_ldap(user_model, value, stage, submission):
|
|
|
484
485
|
last_name=match.get("last_name", ""),
|
|
485
486
|
is_active=True,
|
|
486
487
|
)
|
|
488
|
+
jit_created = True
|
|
487
489
|
# Create a profile if the model exists
|
|
488
490
|
try:
|
|
489
491
|
from .models import UserProfile
|
|
@@ -509,7 +511,35 @@ def _lookup_by_ldap(user_model, value, stage, submission):
|
|
|
509
511
|
stage.name,
|
|
510
512
|
submission.id,
|
|
511
513
|
)
|
|
512
|
-
|
|
514
|
+
|
|
515
|
+
# Sync LDAP group memberships so the user has the correct Django permissions.
|
|
516
|
+
# Always do this for JIT-provisioned users (they have no groups yet), and
|
|
517
|
+
# also for existing pre-provisioned users in case their groups have changed
|
|
518
|
+
# since they were last synced.
|
|
519
|
+
try:
|
|
520
|
+
from .sso_backends import sync_user_ldap_groups
|
|
521
|
+
|
|
522
|
+
n = sync_user_ldap_groups(user)
|
|
523
|
+
logger.info(
|
|
524
|
+
"Dynamic assignee lookup (ldap): synced %d LDAP groups for user '%s' "
|
|
525
|
+
"(jit_created=%s, stage '%s', submission %s).",
|
|
526
|
+
n,
|
|
527
|
+
username,
|
|
528
|
+
jit_created,
|
|
529
|
+
stage.name,
|
|
530
|
+
submission.id,
|
|
531
|
+
)
|
|
532
|
+
except Exception:
|
|
533
|
+
logger.warning(
|
|
534
|
+
"Dynamic assignee lookup (ldap): could not sync LDAP groups for "
|
|
535
|
+
"user '%s' (stage '%s', submission %s).",
|
|
536
|
+
username,
|
|
537
|
+
stage.name,
|
|
538
|
+
submission.id,
|
|
539
|
+
exc_info=True,
|
|
540
|
+
)
|
|
541
|
+
|
|
542
|
+
return user
|
|
513
543
|
|
|
514
544
|
|
|
515
545
|
def _notify_stage_form_field_recipients(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/__init__.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/admin.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/apps.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/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.35.4 → django_forms_workflows-0.35.7}/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.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/forms.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/models.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/signals.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sso_urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sso_views.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sync_api.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/sync_views.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/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
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/urls.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/utils.py
RENAMED
|
File without changes
|
{django_forms_workflows-0.35.4 → django_forms_workflows-0.35.7}/django_forms_workflows/views.py
RENAMED
|
File without changes
|
|
File without changes
|