django-forms-workflows 0.28.2__tar.gz → 0.28.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.
Files changed (140) hide show
  1. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/PKG-INFO +1 -1
  2. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/data_sources/database_source.py +11 -5
  3. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/approval_inbox.html +5 -1
  4. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/approve.html +1 -1
  5. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/submission_detail.html +1 -1
  6. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/views.py +19 -4
  7. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/pyproject.toml +1 -1
  8. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/CHANGELOG.md +0 -0
  9. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/LICENSE +0 -0
  10. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/README.md +0 -0
  11. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/__init__.py +0 -0
  12. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/admin.py +0 -0
  13. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/apps.py +0 -0
  14. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/conditions.py +0 -0
  15. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/context_processors.py +0 -0
  16. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/data_sources/__init__.py +0 -0
  17. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/data_sources/base.py +0 -0
  18. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/data_sources/ldap_source.py +0 -0
  19. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/data_sources/user_source.py +0 -0
  20. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/diff_views.py +0 -0
  21. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/email_backends/__init__.py +0 -0
  22. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/email_backends/gmail_api.py +0 -0
  23. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/form_builder_urls.py +0 -0
  24. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/form_builder_views.py +0 -0
  25. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/forms.py +0 -0
  26. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/__init__.py +0 -0
  27. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/api_handler.py +0 -0
  28. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/base.py +0 -0
  29. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/database_handler.py +0 -0
  30. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/email_handler.py +0 -0
  31. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/executor.py +0 -0
  32. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/file_handler.py +0 -0
  33. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/handlers/ldap_handler.py +0 -0
  34. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/ldap_backend.py +0 -0
  35. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/create_default_templates.py +0 -0
  36. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/pull_forms.py +0 -0
  37. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/push_forms.py +0 -0
  38. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/seed_farm_demo.py +0 -0
  39. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/seed_pcn_form.py +0 -0
  40. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/seed_prefill_sources.py +0 -0
  41. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/sync_ldap_profiles.py +0 -0
  42. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/management/commands/test_db_connection.py +0 -0
  43. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0001_initial.py +0 -0
  44. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0002_prefillsource_alter_formfield_prefill_source_and_more.py +0 -0
  45. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0003_postsubmissionaction.py +0 -0
  46. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0004_formtemplate.py +0 -0
  47. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0005_advanced_conditional_logic.py +0 -0
  48. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0006_workflowdefinition_visual_workflow_data_and_more.py +0 -0
  49. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0007_add_userprofile_ldap_enhancements.py +0 -0
  50. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0008_add_file_workflow_models.py +0 -0
  51. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0009_add_formfield_readonly.py +0 -0
  52. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0010_add_prefillsource_template_fields.py +0 -0
  53. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0011_postsubmissionaction_email_body_template_and_more.py +0 -0
  54. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0012_add_approval_step_fields.py +0 -0
  55. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0013_add_database_query_key.py +0 -0
  56. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0014_add_form_category.py +0 -0
  57. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0015_add_workflowstage_staged_approvals.py +0 -0
  58. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0016_add_pdf_generation.py +0 -0
  59. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0017_add_notification_batching.py +0 -0
  60. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0018_add_form_category_parent.py +0 -0
  61. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0019_add_ldap_group_profile.py +0 -0
  62. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0020_add_bulk_export_field.py +0 -0
  63. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0021_alter_pendingnotification_scheduled_for_and_more.py +0 -0
  64. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0022_add_bulk_pdf_export.py +0 -0
  65. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0023_add_performance_indexes.py +0 -0
  66. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0024_add_allow_resubmit.py +0 -0
  67. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0025_workflowstage_approve_label.py +0 -0
  68. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0026_alter_formfield_width.py +0 -0
  69. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0027_formsubmission_form_data_gin.py +0 -0
  70. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0028_workflowstagegroupconfig.py +0 -0
  71. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0029_formfield_workflow_stage_fk_drop_groupconfig.py +0 -0
  72. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0030_formfield_phone_type.py +0 -0
  73. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0031_sub_workflows.py +0 -0
  74. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0032_approved_pending_detached_sub_workflow.py +0 -0
  75. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0033_add_reject_parent_to_subworkflowdefinition.py +0 -0
  76. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0034_add_notificationlog.py +0 -0
  77. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0035_migrate_prefill_source_strings.py +0 -0
  78. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0036_add_workflowstage_auto_created.py +0 -0
  79. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0037_migrate_flat_workflows_to_staged.py +0 -0
  80. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0038_remove_legacy_prefill_source_and_approval_step.py +0 -0
  81. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0039_update_help_text.py +0 -0
  82. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0040_migrate_deprecated_features.py +0 -0
  83. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0041_remove_deprecated_fields.py +0 -0
  84. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0042_add_sub_workflow_section_label.py +0 -0
  85. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0043_fix_form_data_decimal_encoding.py +0 -0
  86. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0044_remove_subworkflowinstance_label.py +0 -0
  87. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0045_stageapprovalgroup_workflow_name_label.py +0 -0
  88. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0046_workflow_definition_one_to_many.py +0 -0
  89. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0047_add_hide_approval_history.py +0 -0
  90. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0048_workflowdefinition_trigger_conditions_and_more.py +0 -0
  91. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/0049_formfield_multifile_type.py +0 -0
  92. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/migrations/__init__.py +0 -0
  93. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/models.py +0 -0
  94. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/signals.py +0 -0
  95. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/sso_backends.py +0 -0
  96. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/sso_urls.py +0 -0
  97. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/sso_views.py +0 -0
  98. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/static/django_forms_workflows/js/form-builder.js +0 -0
  99. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/static/django_forms_workflows/js/form-enhancements.js +0 -0
  100. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/static/django_forms_workflows/js/workflow-builder.js +0 -0
  101. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/sync_api.py +0 -0
  102. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/sync_views.py +0 -0
  103. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/tasks.py +0 -0
  104. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/_sync_diff.html +0 -0
  105. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/diff_forms.html +0 -0
  106. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/form_builder.html +0 -0
  107. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdef_change_form.html +0 -0
  108. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/formdefinition/change_list.html +0 -0
  109. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_import.html +0 -0
  110. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_pull.html +0 -0
  111. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/sync_push.html +0 -0
  112. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/admin/django_forms_workflows/workflow_builder.html +0 -0
  113. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/_category_node.html +0 -0
  114. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/base.html +0 -0
  115. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/completed_approvals.html +0 -0
  116. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/form_categories.html +0 -0
  117. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/form_list.html +0 -0
  118. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/form_submit.html +0 -0
  119. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/my_submissions.html +0 -0
  120. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/resubmit_confirm.html +0 -0
  121. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/sso/login.html +0 -0
  122. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/sub_workflow_detail.html +0 -0
  123. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/submission_bulk_pdf.html +0 -0
  124. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/submission_pdf.html +0 -0
  125. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/django_forms_workflows/withdraw_confirm.html +0 -0
  126. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/approval_notification.html +0 -0
  127. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/approval_reminder.html +0 -0
  128. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/approval_request.html +0 -0
  129. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/email_styles.html +0 -0
  130. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/escalation_notification.html +0 -0
  131. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/notification_digest.html +0 -0
  132. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/rejection_notification.html +0 -0
  133. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/emails/submission_notification.html +0 -0
  134. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templates/registration/login.html +0 -0
  135. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templatetags/__init__.py +0 -0
  136. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/templatetags/forms_workflows_tags.py +0 -0
  137. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/urls.py +0 -0
  138. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/utils.py +0 -0
  139. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/workflow_builder_views.py +0 -0
  140. {django_forms_workflows-0.28.2 → django_forms_workflows-0.28.4}/django_forms_workflows/workflow_engine.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-forms-workflows
3
- Version: 0.28.2
3
+ Version: 0.28.4
4
4
  Summary: Enterprise-grade, database-driven form builder with approval workflows and external data integration
5
5
  License: LGPL-3.0-only
6
6
  License-File: LICENSE
@@ -133,11 +133,17 @@ class DatabaseDataSource(DataSource):
133
133
  if value:
134
134
  return value
135
135
 
136
- # Then check the user's profile
137
- if hasattr(user, "forms_profile"):
138
- profile = user.forms_profile
139
- if hasattr(profile, user_id_field):
140
- return getattr(profile, user_id_field)
136
+ # Then check the user's profile — try both known related names
137
+ for profile_attr in ("profile", "forms_profile", "userprofile"):
138
+ if hasattr(user, profile_attr):
139
+ try:
140
+ profile = getattr(user, profile_attr)
141
+ if hasattr(profile, user_id_field):
142
+ value = getattr(profile, user_id_field)
143
+ if value:
144
+ return value
145
+ except Exception:
146
+ continue
141
147
  return None
142
148
  except Exception as e:
143
149
  logger.error(f"Error getting user ID field {user_id_field}: {e}")
@@ -253,7 +253,9 @@
253
253
  <th>Actions</th>
254
254
  <th>Form</th>
255
255
  <th>Submitter</th>
256
+ <th>Stage</th>
256
257
  <th>Step</th>
258
+ <th>Assigned</th>
257
259
  <th>Submitted</th>
258
260
  {% for field in form_fields %}<th class="extra-form-col" data-field="{{ field.field_name }}">{{ field.field_label }}</th>{% endfor %}
259
261
  </tr>
@@ -344,7 +346,9 @@ $(document).ready(function() {
344
346
  { data: 'actions', name: '', orderable: false },
345
347
  { data: 'form', name: 'submission__form_definition__name' },
346
348
  { data: 'submitter', name: 'submission__submitter__last_name' },
347
- { data: 'step', name: 'step_name' },
349
+ { data: 'stage', name: 'stage_number' },
350
+ { data: 'step_num', name: 'workflow_stage__name' },
351
+ { data: 'assigned', name: 'assigned_group__name' },
348
352
  { data: 'submitted_at', name: 'submission__submitted_at' },
349
353
  {% for field in form_fields %}{ data: '{{ field.field_name }}', name: '', orderable: false },{% endfor %}
350
354
  ],
@@ -180,7 +180,7 @@
180
180
  </a>
181
181
  {% elif entry.value.path %}
182
182
  <span class="text-muted">{{ entry.value.filename }}</span>
183
- {% elif entry.value|length and entry.value.0 %}
183
+ {% elif entry.value.0.filename %}
184
184
  {# Multi-file upload: list of file dicts #}
185
185
  <ul class="list-unstyled mb-0">
186
186
  {% for f in entry.value %}
@@ -104,7 +104,7 @@
104
104
  {# Single file with path but no URL #}
105
105
  <span class="text-muted">{{ entry.value.filename }}</span>
106
106
  <small class="text-muted ms-2">(File stored but URL unavailable)</small>
107
- {% elif entry.value|length and entry.value.0 %}
107
+ {% elif entry.value.0.filename %}
108
108
  {# Multi-file upload: list of file dicts #}
109
109
  <ul class="list-unstyled mb-0">
110
110
  {% for f in entry.value %}
@@ -884,8 +884,8 @@ def approval_inbox(request):
884
884
  # Compute default sort column index for DataTables (submitted_at)
885
885
  _exp_off = 1 if (any_exportable or any_pdf_exportable) else 0
886
886
  _cat_off = 0 if category_slug else 1
887
- # columns: [checkbox?] [category?] actions form submitter step submitted_at
888
- default_sort_col = _exp_off + _cat_off + 1 + 3 # index of submitted_at
887
+ # columns: [checkbox?] [category?] actions form submitter stage step_num assigned submitted_at
888
+ default_sort_col = _exp_off + _cat_off + 1 + 5 # index of submitted_at
889
889
 
890
890
  return render(
891
891
  request,
@@ -2366,7 +2366,9 @@ _INBOX_SORTABLE = {
2366
2366
  "submission__form_definition__category__name",
2367
2367
  "submission__form_definition__name",
2368
2368
  "submission__submitter__last_name",
2369
- "step_name",
2369
+ "stage_number",
2370
+ "workflow_stage__name",
2371
+ "assigned_group__name",
2370
2372
  "submission__submitted_at",
2371
2373
  }
2372
2374
  _MY_SUB_SORTABLE = {
@@ -2627,6 +2629,9 @@ def approval_inbox_ajax(request):
2627
2629
  page_qs = qs.select_related(
2628
2630
  "submission__form_definition__category",
2629
2631
  "submission__submitter",
2632
+ "workflow_stage",
2633
+ "assigned_group",
2634
+ "assigned_to",
2630
2635
  ).prefetch_related("submission__form_definition__workflows")[start : start + length]
2631
2636
 
2632
2637
  # --- Serialise ---
@@ -2655,7 +2660,17 @@ def approval_inbox_ajax(request):
2655
2660
  "submitter": escape(
2656
2661
  sub.submitter.get_full_name() or sub.submitter.username
2657
2662
  ),
2658
- "step": escape(task.step_name or ""),
2663
+ "stage": f"Stage {task.stage_number}" if task.stage_number else "—",
2664
+ "step_num": escape(task.workflow_stage.name if task.workflow_stage else ""),
2665
+ "assigned": escape(
2666
+ task.assigned_group.name
2667
+ if task.assigned_group
2668
+ else (
2669
+ task.assigned_to.get_full_name() or task.assigned_to.username
2670
+ if task.assigned_to
2671
+ else "—"
2672
+ )
2673
+ ),
2659
2674
  "submitted_at": sub.submitted_at.strftime("%Y-%m-%d %H:%M")
2660
2675
  if sub.submitted_at
2661
2676
  else "—",
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "django-forms-workflows"
3
- version = "0.28.2"
3
+ version = "0.28.4"
4
4
  description = "Enterprise-grade, database-driven form builder with approval workflows and external data integration"
5
5
  license = "LGPL-3.0-only"
6
6
  readme = "README.md"