wbcore 1.61.5__tar.gz → 1.61.6__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 (1245) hide show
  1. {wbcore-1.61.5 → wbcore-1.61.6}/PKG-INFO +1 -1
  2. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/admin.py +7 -1
  3. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/admin.py +3 -10
  4. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/firebase/backends.py +2 -8
  5. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/dispatch.py +21 -21
  6. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/factories/notifications.py +1 -1
  7. wbcore-1.61.6/wbcore/contrib/notifications/migrations/0010_notification_checksum_notification_checksum_unique.py +50 -0
  8. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/models/notification_types.py +71 -76
  9. wbcore-1.61.6/wbcore/contrib/notifications/models/notifications.py +165 -0
  10. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/conftest.py +2 -2
  11. wbcore-1.61.6/wbcore/contrib/notifications/tests/test_models/test_notifications.py +157 -0
  12. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_viewsets/test_notifications.py +4 -4
  13. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/utils.py +11 -0
  14. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/number.py +21 -5
  15. wbcore-1.61.5/wbcore/contrib/notifications/models/notifications.py +0 -82
  16. wbcore-1.61.5/wbcore/contrib/notifications/tasks.py +0 -57
  17. wbcore-1.61.5/wbcore/contrib/notifications/tests/test_models/test_notifications.py +0 -46
  18. wbcore-1.61.5/wbcore/contrib/notifications/tests/test_tasks.py +0 -72
  19. {wbcore-1.61.5 → wbcore-1.61.6}/.gitignore +0 -0
  20. {wbcore-1.61.5 → wbcore-1.61.6}/pyproject.toml +0 -0
  21. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/__init__.py +0 -0
  22. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/admin.py +0 -0
  23. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/apps.py +0 -0
  24. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/__init__.py +0 -0
  25. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/buttons.py +0 -0
  26. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/decorators.py +0 -0
  27. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/mixins.py +0 -0
  28. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/registry.py +0 -0
  29. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/cache/views.py +0 -0
  30. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configs/__init__.py +0 -0
  31. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configs/configs.py +0 -0
  32. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configs/decorators.py +0 -0
  33. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configs/registry.py +0 -0
  34. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configs/views.py +0 -0
  35. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/__init__.py +0 -0
  36. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/base.py +0 -0
  37. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/__init__.py +0 -0
  38. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/apps.py +0 -0
  39. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/authentication.py +0 -0
  40. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/base.py +0 -0
  41. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/cache.py +0 -0
  42. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/celery.py +0 -0
  43. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/i18nl10n.py +0 -0
  44. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/mail.py +0 -0
  45. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/maintenance.py +0 -0
  46. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/media.py +0 -0
  47. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/middleware.py +0 -0
  48. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/network.py +0 -0
  49. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/rest_framework.py +0 -0
  50. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/static.py +0 -0
  51. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/templates.py +0 -0
  52. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/uvicorn.py +0 -0
  53. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/configurations/configurations/wbcore.py +0 -0
  54. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/__init__.py +0 -0
  55. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/__init__.py +0 -0
  56. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/admin/__init__.py +0 -0
  57. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/admin/calendar_item.py +0 -0
  58. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/admin/conference_room.py +0 -0
  59. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/apps.py +0 -0
  60. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/configurations.py +0 -0
  61. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/factories/__init__.py +0 -0
  62. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/factories/calendar_item.py +0 -0
  63. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/factories/conference_room.py +0 -0
  64. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/filters/__init__.py +0 -0
  65. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/filters/calendar_item.py +0 -0
  66. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/filters/conference_room.py +0 -0
  67. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po +0 -0
  68. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po.translated +0 -0
  69. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/locale/en/LC_MESSAGES/django.po +0 -0
  70. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/locale/fr/LC_MESSAGES/django.po +0 -0
  71. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0001_initial.py +0 -0
  72. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0002_initial.py +0 -0
  73. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0003_calendaritem_endpoint_basename.py +0 -0
  74. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0004_alter_calendaritem_item_type.py +0 -0
  75. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0005_building_and_more.py +0 -0
  76. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0006_calendaritem_is_deletable.py +0 -0
  77. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0007_alter_calendaritem_options.py +0 -0
  78. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0008_alter_calendaritem_item_type.py +0 -0
  79. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/0009_alter_calendaritem_icon.py +0 -0
  80. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/migrations/__init__.py +0 -0
  81. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/models/__init__.py +0 -0
  82. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/models/calendar_item.py +0 -0
  83. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/models/conference_room.py +0 -0
  84. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/release_notes/1_0_0.md +0 -0
  85. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/release_notes/__init__.py +0 -0
  86. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/serializers/__init__.py +0 -0
  87. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/serializers/calendar_item.py +0 -0
  88. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/serializers/conference_room.py +0 -0
  89. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/signals.py +0 -0
  90. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/static/agenda/markdown/documentation/building.md +0 -0
  91. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/static/agenda/markdown/documentation/conferenceroom.md +0 -0
  92. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/__init__.py +0 -0
  93. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/conftest.py +0 -0
  94. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/signals.py +0 -0
  95. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/test_models.py +0 -0
  96. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/test_viewsets.py +0 -0
  97. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/tests/tests.py +0 -0
  98. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/typings.py +0 -0
  99. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/urls.py +0 -0
  100. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/__init__.py +0 -0
  101. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/buttons/__init__.py +0 -0
  102. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/buttons/conference_room.py +0 -0
  103. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/calendar_items.py +0 -0
  104. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/conference_room.py +0 -0
  105. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/display/__init__.py +0 -0
  106. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/display/calendar_items.py +0 -0
  107. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/display/conference_room.py +0 -0
  108. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/endpoints/__init__.py +0 -0
  109. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/endpoints/calendar_items.py +0 -0
  110. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/menu/__init__.py +0 -0
  111. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/menu/calendar_items.py +0 -0
  112. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/menu/conference_room.py +0 -0
  113. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/titles/__init__.py +0 -0
  114. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/titles/calendar_items.py +0 -0
  115. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/agenda/viewsets/titles/conference_room.py +0 -0
  116. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/__init__.py +0 -0
  117. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/apps.py +0 -0
  118. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/exceptions.py +0 -0
  119. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/llm/__init__.py +0 -0
  120. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/llm/config.py +0 -0
  121. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/llm/decorators.py +0 -0
  122. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/llm/mixins.py +0 -0
  123. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/ai/llm/utils.py +0 -0
  124. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/__init__.py +0 -0
  125. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/apps.py +0 -0
  126. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/authentication.py +0 -0
  127. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/configs.py +0 -0
  128. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/configurations.py +0 -0
  129. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/dynamic_preferences_registry.py +0 -0
  130. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/factories/__init__.py +0 -0
  131. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/factories/tokens.py +0 -0
  132. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/factories/users.py +0 -0
  133. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/factories/users_activities.py +0 -0
  134. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/filters.py +0 -0
  135. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/fixtures/authentication.json +0 -0
  136. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po +0 -0
  137. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po.translated +0 -0
  138. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/locale/en/LC_MESSAGES/django.po +0 -0
  139. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/locale/fr/LC_MESSAGES/django.po +0 -0
  140. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/management/__init__.py +0 -0
  141. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0001_initial_squashed.py +0 -0
  142. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0002_profile.py +0 -0
  143. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0003_alter_user_profile.py +0 -0
  144. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0004_token.py +0 -0
  145. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0005_user_external_calendar_settings.py +0 -0
  146. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0006_auto_20231206_1422.py +0 -0
  147. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0007_alter_token_unique_together_token_unique_token.py +0 -0
  148. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/0008_user_is_internal.py +0 -0
  149. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/migrations/__init__.py +0 -0
  150. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/models/__init__.py +0 -0
  151. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/models/tokens.py +0 -0
  152. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/models/users.py +0 -0
  153. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/models/users_activities.py +0 -0
  154. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/release_notes/1_0_0.md +0 -0
  155. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/release_notes/__init__.py +0 -0
  156. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/serializers/__init__.py +0 -0
  157. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/serializers/users.py +0 -0
  158. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/serializers/users_activites.py +0 -0
  159. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tasks.py +0 -0
  160. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/activate_confirm.html +0 -0
  161. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/base.html +0 -0
  162. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/email_base_template.html +0 -0
  163. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/password_reset_done.html +0 -0
  164. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/password_reset_email.html +0 -0
  165. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/password_reset_email_html.html +0 -0
  166. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/password_reset_form.html +0 -0
  167. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/password_reset_sent.html +0 -0
  168. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/reset_password.html +0 -0
  169. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/templates/user_registration_email.html +0 -0
  170. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/__init__.py +0 -0
  171. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/conftest.py +0 -0
  172. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/e2e/__init__.py +0 -0
  173. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/e2e/e2e_auth_utility.py +0 -0
  174. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/signals.py +0 -0
  175. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_configs.py +0 -0
  176. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_serializers.py +0 -0
  177. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_tasks.py +0 -0
  178. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_tokens.py +0 -0
  179. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_users.py +0 -0
  180. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/test_viewsets.py +0 -0
  181. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/tests/tests.py +0 -0
  182. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/urls.py +0 -0
  183. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/utils.py +0 -0
  184. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/__init__.py +0 -0
  185. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/buttons/__init__.py +0 -0
  186. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/buttons/users.py +0 -0
  187. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/display/__init__.py +0 -0
  188. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/display/user_activities.py +0 -0
  189. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/display/users.py +0 -0
  190. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/endpoints/__init__.py +0 -0
  191. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/endpoints/user_activities.py +0 -0
  192. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/endpoints/users.py +0 -0
  193. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/menu/__init__.py +0 -0
  194. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/menu/user_activities.py +0 -0
  195. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/menu/users.py +0 -0
  196. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/titles/__init__.py +0 -0
  197. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/titles/user_activities.py +0 -0
  198. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/titles/users.py +0 -0
  199. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/user_activities.py +0 -0
  200. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/authentication/viewsets/users.py +0 -0
  201. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/__init__.py +0 -0
  202. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/admin.py +0 -0
  203. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/apps.py +0 -0
  204. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/enums.py +0 -0
  205. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/factories.py +0 -0
  206. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/fields.py +0 -0
  207. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/forms.py +0 -0
  208. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/migrations/0001_initial.py +0 -0
  209. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/migrations/0002_alter_colorgradient_colors.py +0 -0
  210. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/migrations/__init__.py +0 -0
  211. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/models.py +0 -0
  212. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/tests/conftest.py +0 -0
  213. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/tests/test_color_models.py +0 -0
  214. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/color/tests/test_fields.py +0 -0
  215. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/__init__.py +0 -0
  216. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/admin.py +0 -0
  217. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/apps.py +0 -0
  218. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/filters.py +0 -0
  219. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/serializers.py +0 -0
  220. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/urls.py +0 -0
  221. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/utils.py +0 -0
  222. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/content_type/viewsets.py +0 -0
  223. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/__init__.py +0 -0
  224. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/admin.py +0 -0
  225. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/apps.py +0 -0
  226. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/dynamic_preferences_registry.py +0 -0
  227. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/factories.py +0 -0
  228. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/fixtures/currency.yaml +0 -0
  229. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/fixtures/currency_fx_rate.yaml +0 -0
  230. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/__init__.py +0 -0
  231. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/backends/__init__.py +0 -0
  232. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/backends/fixerio/__init__.py +0 -0
  233. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/backends/fixerio/currency_fx_rates.py +0 -0
  234. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/backends/utils.py +0 -0
  235. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/handlers/__init__.py +0 -0
  236. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/handlers/currency.py +0 -0
  237. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/handlers/currency_fx_rates.py +0 -0
  238. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/parsers/__init__.py +0 -0
  239. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/parsers/fixerio/__init__.py +0 -0
  240. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/import_export/parsers/fixerio/currency_fx_rates.py +0 -0
  241. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/migrations/0001_initial.py +0 -0
  242. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/migrations/0002_alter_currencyfxrates_unique_together_and_more.py +0 -0
  243. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/migrations/__init__.py +0 -0
  244. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/models.py +0 -0
  245. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/release_notes/1_0_0.md +0 -0
  246. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/release_notes/__init__.py +0 -0
  247. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/serializers.py +0 -0
  248. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/tests/__init__.py +0 -0
  249. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/tests/conftest.py +0 -0
  250. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/tests/test_models.py +0 -0
  251. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/tests/test_serializers.py +0 -0
  252. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/tests/test_viewsets.py +0 -0
  253. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/urls.py +0 -0
  254. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/__init__.py +0 -0
  255. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/buttons/__init__.py +0 -0
  256. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/currency.py +0 -0
  257. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/currency_fx_rates.py +0 -0
  258. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/display/__init__.py +0 -0
  259. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/display/currency.py +0 -0
  260. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/display/currency_fx_rates.py +0 -0
  261. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/endpoints/__init__.py +0 -0
  262. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/endpoints/currency_fx_rates.py +0 -0
  263. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/menu/__init__.py +0 -0
  264. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/menu/currency.py +0 -0
  265. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/preview/__init__.py +0 -0
  266. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/preview/currency.py +0 -0
  267. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/titles/__init__.py +0 -0
  268. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/titles/currency.py +0 -0
  269. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/currency/viewsets/titles/currency_fx_rates.py +0 -0
  270. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/__init__.py +0 -0
  271. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/apps.py +0 -0
  272. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/dataloaders/__init__.py +0 -0
  273. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/dataloaders/dataloaders.py +0 -0
  274. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/dataloaders/proxies.py +0 -0
  275. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/models/__init__.py +0 -0
  276. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/models/entities.py +0 -0
  277. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/models/querysets/__init__.py +0 -0
  278. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/models/querysets/entities.py +0 -0
  279. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/__init__.py +0 -0
  280. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/conftest.py +0 -0
  281. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/__init__.py +0 -0
  282. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/dataloaders/__init__.py +0 -0
  283. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/dataloaders/dataloaders.py +0 -0
  284. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/dataloaders/protocols.py +0 -0
  285. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/dataloaders/proxies.py +0 -0
  286. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/factories.py +0 -0
  287. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test/models.py +0 -0
  288. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test_dataloaders.py +0 -0
  289. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/tests/test_entities.py +0 -0
  290. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dataloader/utils.py +0 -0
  291. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/__init__.py +0 -0
  292. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/admin/__init__.py +0 -0
  293. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/admin/contacts.py +0 -0
  294. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/admin/entries.py +0 -0
  295. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/admin/relationships.py +0 -0
  296. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/apps.py +0 -0
  297. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/configs.py +0 -0
  298. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/configurations.py +0 -0
  299. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/dynamic_preferences_registry.py +0 -0
  300. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/factories/__init__.py +0 -0
  301. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/factories/contacts.py +0 -0
  302. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/factories/entries.py +0 -0
  303. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/factories/relationships.py +0 -0
  304. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/filters/__init__.py +0 -0
  305. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/filters/contacts.py +0 -0
  306. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/filters/entries.py +0 -0
  307. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/filters/relationships.py +0 -0
  308. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/fixtures/directory.json +0 -0
  309. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po +0 -0
  310. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po.translated +0 -0
  311. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/locale/en/LC_MESSAGES/django.po +0 -0
  312. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/locale/fr/LC_MESSAGES/django.po +0 -0
  313. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0001_initial.py +0 -0
  314. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0002_auto_20230414_1553.py +0 -0
  315. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0003_remove_entry_last_event.py +0 -0
  316. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0004_entry_is_draft_entry.py +0 -0
  317. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0005_entry_salutation.py +0 -0
  318. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0006_employeremployeerelationship_position_name.py +0 -0
  319. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0007_alter_bankingcontact_options.py +0 -0
  320. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0008_bankingcontact_access.py +0 -0
  321. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0009_remove_entry_external_identfier_and_more.py +0 -0
  322. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0010_remove_addresscontact_city.py +0 -0
  323. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0011_person_description_person_i18n.py +0 -0
  324. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0012_alter_person_managers.py +0 -0
  325. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0013_alter_clientmanagerrelationship_options.py +0 -0
  326. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0014_alter_entry_relationship_managers_and_more.py +0 -0
  327. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/0015_alter_emailcontact_address_and_more.py +0 -0
  328. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/migrations/__init__.py +0 -0
  329. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/models/__init__.py +0 -0
  330. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/models/contacts.py +0 -0
  331. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/models/entries.py +0 -0
  332. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/models/relationships.py +0 -0
  333. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/permissions.py +0 -0
  334. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/preferences.py +0 -0
  335. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/release_notes/1_0_0.md +0 -0
  336. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/release_notes/1_0_1.md +0 -0
  337. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/release_notes/__init__.py +0 -0
  338. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/__init__.py +0 -0
  339. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/companies.py +0 -0
  340. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/contacts.py +0 -0
  341. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/entries.py +0 -0
  342. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/entry_representations.py +0 -0
  343. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/persons.py +0 -0
  344. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/serializers/relationships.py +0 -0
  345. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/signals.py +0 -0
  346. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/address.md +0 -0
  347. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/banking.md +0 -0
  348. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/bankingentry.md +0 -0
  349. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/clientmanagerrelationship.md +0 -0
  350. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/company.md +0 -0
  351. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/companytype.md +0 -0
  352. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/customerstatus.md +0 -0
  353. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/email.md +0 -0
  354. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/employeecompany.md +0 -0
  355. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/employerperson.md +0 -0
  356. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/person.md +0 -0
  357. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/position.md +0 -0
  358. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/relationshiptype.md +0 -0
  359. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/socialmedia.md +0 -0
  360. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/specialization.md +0 -0
  361. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/systememployee.md +0 -0
  362. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/telephone.md +0 -0
  363. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/telephonesearch.md +0 -0
  364. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/userisclient.md +0 -0
  365. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/userismanager.md +0 -0
  366. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/static/directory/markdown/documentation/website.md +0 -0
  367. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/__init__.py +0 -0
  368. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/conftest.py +0 -0
  369. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/disable_signals.py +0 -0
  370. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/e2e/__init__.py +0 -0
  371. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/e2e/e2e_directory_utility.py +0 -0
  372. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/signals.py +0 -0
  373. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_configs.py +0 -0
  374. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_filters.py +0 -0
  375. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_models.py +0 -0
  376. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_permissions.py +0 -0
  377. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_serializers.py +0 -0
  378. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/tests/test_viewsets.py +0 -0
  379. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/typings.py +0 -0
  380. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/urls.py +0 -0
  381. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/__init__.py +0 -0
  382. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/buttons/__init__.py +0 -0
  383. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/buttons/contacts.py +0 -0
  384. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/buttons/entries.py +0 -0
  385. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/buttons/relationships.py +0 -0
  386. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/contacts.py +0 -0
  387. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/display/__init__.py +0 -0
  388. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/display/contacts.py +0 -0
  389. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/display/entries.py +0 -0
  390. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/display/relationships.py +0 -0
  391. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/display/utils.py +0 -0
  392. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/endpoints/__init__.py +0 -0
  393. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/endpoints/contacts.py +0 -0
  394. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/endpoints/entries.py +0 -0
  395. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/endpoints/relationships.py +0 -0
  396. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/entries.py +0 -0
  397. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/menu/__init__.py +0 -0
  398. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/menu/contacts.py +0 -0
  399. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/menu/entries.py +0 -0
  400. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/menu/relationships.py +0 -0
  401. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/menu/utils.py +0 -0
  402. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/mixins.py +0 -0
  403. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/previews/__init__.py +0 -0
  404. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/previews/contacts.py +0 -0
  405. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/previews/entries.py +0 -0
  406. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/relationships.py +0 -0
  407. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/titles/__init__.py +0 -0
  408. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/titles/contacts.py +0 -0
  409. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/titles/entries.py +0 -0
  410. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/titles/relationships.py +0 -0
  411. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/titles/utils.py +0 -0
  412. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/directory/viewsets/utils.py +0 -0
  413. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/__init__.py +0 -0
  414. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/admin.py +0 -0
  415. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/apps.py +0 -0
  416. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/factories.py +0 -0
  417. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/filters.py +0 -0
  418. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/fixtures/docments.json +0 -0
  419. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po +0 -0
  420. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po.translated +0 -0
  421. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/locale/en/LC_MESSAGES/django.po +0 -0
  422. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/locale/fr/LC_MESSAGES/django.po +0 -0
  423. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/0001_initial.py +0 -0
  424. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/0002_documentmodelrelationship_primary_and_more.py +0 -0
  425. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/0003_alter_documentmodelrelationship_unique_together_and_more.py +0 -0
  426. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/0004_auto_20240103_0958.py +0 -0
  427. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/0005_document_valid_from_document_valid_until_and_more.py +0 -0
  428. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/migrations/__init__.py +0 -0
  429. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/__init__.py +0 -0
  430. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/document_model_relationships.py +0 -0
  431. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/document_types.py +0 -0
  432. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/documents.py +0 -0
  433. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/mixins.py +0 -0
  434. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/models/shareable_links.py +0 -0
  435. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/release_notes/1_0_0.md +0 -0
  436. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/release_notes/__init__.py +0 -0
  437. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/serializers/__init__.py +0 -0
  438. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/serializers/document_model_relationships.py +0 -0
  439. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/serializers/document_types.py +0 -0
  440. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/serializers/documents.py +0 -0
  441. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/serializers/shareable_links.py +0 -0
  442. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/static/documents/markdown/documentation/document_types.md +0 -0
  443. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/static/documents/markdown/documentation/documents.md +0 -0
  444. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/static/documents/markdown/documentation/shareablelink.md +0 -0
  445. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/static/documents/markdown/documentation/shareablelinkaccess.md +0 -0
  446. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/tests/conftest.py +0 -0
  447. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/tests/test_models.py +0 -0
  448. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/urls.py +0 -0
  449. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/__init__.py +0 -0
  450. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/buttons/__init__.py +0 -0
  451. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/buttons/documents.py +0 -0
  452. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/buttons/shareable_links.py +0 -0
  453. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/buttons/signals.py +0 -0
  454. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/display/__init__.py +0 -0
  455. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/display/document_model_relationships.py +0 -0
  456. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/display/document_types.py +0 -0
  457. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/display/documents.py +0 -0
  458. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/display/shareable_links.py +0 -0
  459. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/document_model_relationships.py +0 -0
  460. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/document_types.py +0 -0
  461. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/documents.py +0 -0
  462. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/endpoints/__init__.py +0 -0
  463. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/endpoints/documents.py +0 -0
  464. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/endpoints/documents_model_relationships.py +0 -0
  465. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/endpoints/shareable_links.py +0 -0
  466. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/menu/__init__.py +0 -0
  467. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/menu/documents.py +0 -0
  468. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/previews/__init__.py +0 -0
  469. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/previews/documents.py +0 -0
  470. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/shareable_links.py +0 -0
  471. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/titles/__init__.py +0 -0
  472. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/titles/document_types.py +0 -0
  473. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/titles/documents.py +0 -0
  474. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/documents/viewsets/titles/shareable_links.py +0 -0
  475. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dynamic_preferences/__init__.py +0 -0
  476. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dynamic_preferences/types.py +0 -0
  477. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/dynamic_preferences/viewsets.py +0 -0
  478. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/__init__.py +0 -0
  479. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/admin.py +0 -0
  480. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/apps.py +0 -0
  481. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/__init__.py +0 -0
  482. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/event.py +0 -0
  483. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/league.py +0 -0
  484. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/match.py +0 -0
  485. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/person.py +0 -0
  486. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/role.py +0 -0
  487. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/sport.py +0 -0
  488. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/stadium.py +0 -0
  489. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/factories/team.py +0 -0
  490. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/__init__.py +0 -0
  491. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/event.py +0 -0
  492. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/league.py +0 -0
  493. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/match.py +0 -0
  494. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/person.py +0 -0
  495. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/role.py +0 -0
  496. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/sport.py +0 -0
  497. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/stadium.py +0 -0
  498. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/team.py +0 -0
  499. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/filters/teamresult.py +0 -0
  500. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/fixtures/example_app.json +0 -0
  501. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0001_initial.py +0 -0
  502. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0002_sportperson_profile.py +0 -0
  503. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0003_change_stadium_capacity.py +0 -0
  504. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0004_alter_player_transfer_value.py +0 -0
  505. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0005_sportperson_profile_image.py +0 -0
  506. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0006_league_season_period_player_is_active_and_more.py +0 -0
  507. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/0007_alter_player_options_alter_team_options_and_more.py +0 -0
  508. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/migrations/__init__.py +0 -0
  509. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/models.py +0 -0
  510. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/__init__.py +0 -0
  511. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/league.py +0 -0
  512. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/match_event.py +0 -0
  513. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/person_team.py +0 -0
  514. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/role.py +0 -0
  515. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/season.py +0 -0
  516. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/sport.py +0 -0
  517. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/stadium.py +0 -0
  518. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/serializers/teamresult.py +0 -0
  519. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/templates/example_app/embedded_view.html +0 -0
  520. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/__init__.py +0 -0
  521. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/conftest.py +0 -0
  522. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/e2e/__init__.py +0 -0
  523. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/e2e/e2e_example_app_utility.py +0 -0
  524. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/e2e/test_league.py +0 -0
  525. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/e2e/test_person.py +0 -0
  526. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/e2e/test_teams.py +0 -0
  527. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/signals.py +0 -0
  528. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_displays.py +0 -0
  529. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_filters.py +0 -0
  530. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_models/test_event.py +0 -0
  531. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_models/test_match.py +0 -0
  532. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_models/test_others.py +0 -0
  533. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_league_serializer.py +0 -0
  534. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_match_serializer.py +0 -0
  535. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_role_serializer.py +0 -0
  536. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_sport_serializer.py +0 -0
  537. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_stadium_serializer.py +0 -0
  538. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_team_result_serializer.py +0 -0
  539. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_serializers/test_team_serializer.py +0 -0
  540. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_utils.py +0 -0
  541. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_event_viewset.py +0 -0
  542. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_league_viewset.py +0 -0
  543. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_match_viewset.py +0 -0
  544. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_person_viewset.py +0 -0
  545. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_role_viewset.py +0 -0
  546. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_sport_viewset.py +0 -0
  547. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_stadium_viewset.py +0 -0
  548. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_team_viewset.py +0 -0
  549. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_teamresult_viewset.py +0 -0
  550. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/tests/test_viewsets/test_utils_viewsets.py +0 -0
  551. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/urls.py +0 -0
  552. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/utils.py +0 -0
  553. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/views.py +0 -0
  554. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/__init__.py +0 -0
  555. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/buttons/__init__.py +0 -0
  556. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/buttons/person.py +0 -0
  557. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/buttons/team.py +0 -0
  558. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/__init__.py +0 -0
  559. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/event.py +0 -0
  560. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/league.py +0 -0
  561. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/match.py +0 -0
  562. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/person.py +0 -0
  563. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/role.py +0 -0
  564. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/season.py +0 -0
  565. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/sport.py +0 -0
  566. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/stadium.py +0 -0
  567. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/team.py +0 -0
  568. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/displays/teamresult.py +0 -0
  569. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/endpoints/__init__.py +0 -0
  570. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/endpoints/endpoints.py +0 -0
  571. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/event.py +0 -0
  572. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/league.py +0 -0
  573. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/match.py +0 -0
  574. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/menu/__init__.py +0 -0
  575. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/menu/menus.py +0 -0
  576. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/menus.py +0 -0
  577. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/person.py +0 -0
  578. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/role.py +0 -0
  579. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/season.py +0 -0
  580. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/sport.py +0 -0
  581. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/stadium.py +0 -0
  582. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/team.py +0 -0
  583. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/teamresult.py +0 -0
  584. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/__init__.py +0 -0
  585. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/event.py +0 -0
  586. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/league.py +0 -0
  587. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/match.py +0 -0
  588. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/person.py +0 -0
  589. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/role.py +0 -0
  590. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/sport.py +0 -0
  591. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/stadium.py +0 -0
  592. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/team.py +0 -0
  593. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/example_app/viewsets/titles/teamresult.py +0 -0
  594. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/__init__.py +0 -0
  595. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/admin.py +0 -0
  596. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/apps.py +0 -0
  597. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/factories.py +0 -0
  598. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/fixtures/geography.json +0 -0
  599. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/import_export/__init__.py +0 -0
  600. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/import_export/resources/__init__.py +0 -0
  601. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/import_export/resources/geography.py +0 -0
  602. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/migrations/0001_initial.py +0 -0
  603. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/migrations/0002_geography_geography_geography_tree_i739a.py +0 -0
  604. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/migrations/__init__.py +0 -0
  605. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/models.py +0 -0
  606. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/release_notes/1_0_0.md +0 -0
  607. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/release_notes/__init__.py +0 -0
  608. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/serializers.py +0 -0
  609. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/static/geography/markdown/documentation/geography.md +0 -0
  610. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/tests/__init__.py +0 -0
  611. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/tests/conftest.py +0 -0
  612. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/tests/signals.py +0 -0
  613. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/tests/test_models.py +0 -0
  614. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/tests/test_viewsets.py +0 -0
  615. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/urls.py +0 -0
  616. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/__init__.py +0 -0
  617. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/buttons/__init__.py +0 -0
  618. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/display/__init__.py +0 -0
  619. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/display/geography.py +0 -0
  620. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/endpoints/__init__.py +0 -0
  621. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/geography.py +0 -0
  622. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/menu/__init__.py +0 -0
  623. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/menu/geography.py +0 -0
  624. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/preview/__init__.py +0 -0
  625. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/preview/geography.py +0 -0
  626. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/titles/__init__.py +0 -0
  627. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/geography/viewsets/titles/geography.py +0 -0
  628. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/__init__.py +0 -0
  629. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/apps.py +0 -0
  630. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/configs.py +0 -0
  631. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/configurations.py +0 -0
  632. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/hashes.py +0 -0
  633. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/tests/__init__.py +0 -0
  634. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/tests/conftest.py +0 -0
  635. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/tests/tests.py +0 -0
  636. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/urls.py +0 -0
  637. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/gleap/views.py +0 -0
  638. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/__init__.py +0 -0
  639. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/buttons.py +0 -0
  640. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/serializers/__init__.py +0 -0
  641. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/serializers/fields.py +0 -0
  642. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/serializers/mixins.py +0 -0
  643. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/tests/conftest.py +0 -0
  644. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/tests/test_viewsets.py +0 -0
  645. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/translation.py +0 -0
  646. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/i18n/viewsets.py +0 -0
  647. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/__init__.py +0 -0
  648. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/apps.py +0 -0
  649. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/backends/__init__.py +0 -0
  650. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/backends/default.py +0 -0
  651. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/backends/material.py +0 -0
  652. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/icons.py +0 -0
  653. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/models.py +0 -0
  654. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/icons/serializers.py +0 -0
  655. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/__init__.py +0 -0
  656. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/admin.py +0 -0
  657. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/apps.py +0 -0
  658. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/backends/__init__.py +0 -0
  659. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/backends/abstract.py +0 -0
  660. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/backends/mail.py +0 -0
  661. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/backends/utils.py +0 -0
  662. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/configs/__init__.py +0 -0
  663. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/configs/endpoints.py +0 -0
  664. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/configurations/__init__.py +0 -0
  665. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/configurations/base.py +0 -0
  666. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/dynamic_preferences_registry.py +0 -0
  667. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/enums.py +0 -0
  668. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/exceptions.py +0 -0
  669. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/factories.py +0 -0
  670. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/fixtures/io.json +0 -0
  671. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/backends/__init__.py +0 -0
  672. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/backends/mail.py +0 -0
  673. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/backends/sftp.py +0 -0
  674. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/backends/stream.py +0 -0
  675. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/parsers/__init__.py +0 -0
  676. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/parsers/base_csv.py +0 -0
  677. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/import_export/parsers/resources.py +0 -0
  678. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/imports.py +0 -0
  679. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/locale/de/LC_MESSAGES/django.po +0 -0
  680. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/locale/de/LC_MESSAGES/django.po.translated +0 -0
  681. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/locale/en/LC_MESSAGES/django.po +0 -0
  682. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/locale/fr/LC_MESSAGES/django.po +0 -0
  683. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/management/__init__.py +0 -0
  684. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0001_initial_squashed.py +0 -0
  685. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0002_importsource_creator.py +0 -0
  686. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0003_auto_20240103_1000.py +0 -0
  687. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0004_alter_importsource_status_exportsource.py +0 -0
  688. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0005_exportsource_data_alter_exportsource_query_str_and_more.py +0 -0
  689. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0006_alter_exportsource_query_params.py +0 -0
  690. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0007_alter_exportsource_query_params.py +0 -0
  691. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0008_importsource_resource_kwargs.py +0 -0
  692. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/0009_alter_importedobjectproviderrelationship_unique_together_and_more.py +0 -0
  693. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/migrations/__init__.py +0 -0
  694. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/mixins.py +0 -0
  695. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/models.py +0 -0
  696. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/release_notes/1_0_0.md +0 -0
  697. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/release_notes/__init__.py +0 -0
  698. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/resources.py +0 -0
  699. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/serializers.py +0 -0
  700. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/signals.py +0 -0
  701. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tasks.py +0 -0
  702. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/__init__.py +0 -0
  703. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/conftest.py +0 -0
  704. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/test_backends.py +0 -0
  705. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/test_exports.py +0 -0
  706. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/test_imports.py +0 -0
  707. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/test_models.py +0 -0
  708. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/tests/test_viewsets.py +0 -0
  709. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/urls.py +0 -0
  710. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/utils.py +0 -0
  711. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/viewset_mixins.py +0 -0
  712. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/io/viewsets.py +0 -0
  713. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/__init__.py +0 -0
  714. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/apps.py +0 -0
  715. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/__init__.py +0 -0
  716. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/abstract_backend.py +0 -0
  717. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/console/__init__.py +0 -0
  718. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/console/backends.py +0 -0
  719. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/backends/firebase/__init__.py +0 -0
  720. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/configs.py +0 -0
  721. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/configurations.py +0 -0
  722. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/factories/__init__.py +0 -0
  723. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/factories/notification_types.py +0 -0
  724. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/factories/tokens.py +0 -0
  725. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po +0 -0
  726. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po.translated +0 -0
  727. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/locale/en/LC_MESSAGES/django.po +0 -0
  728. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/locale/fr/LC_MESSAGES/django.po +0 -0
  729. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0001_initial.py +0 -0
  730. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0002_notificationusertoken_unique_user_token_device.py +0 -0
  731. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0003_notificationusertoken_updated.py +0 -0
  732. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0004_alter_notification_body.py +0 -0
  733. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0005_alter_notification_endpoint.py +0 -0
  734. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0006_notification_created.py +0 -0
  735. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0007_notificationtype_resource_button_label.py +0 -0
  736. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0008_notificationtype_is_lock.py +0 -0
  737. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/0009_alter_notificationtypesetting_options_and_more.py +0 -0
  738. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/migrations/__init__.py +0 -0
  739. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/models/__init__.py +0 -0
  740. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/models/tokens.py +0 -0
  741. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/release_notes/1_0_0.md +0 -0
  742. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/release_notes/__init__.py +0 -0
  743. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/serializers/__init__.py +0 -0
  744. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/serializers/notification_types.py +0 -0
  745. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/serializers/notifications.py +0 -0
  746. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/static/notifications/service-worker.js +0 -0
  747. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/templates/notifications/notification_template.html +0 -0
  748. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/__init__.py +0 -0
  749. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_backends/__init__.py +0 -0
  750. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_backends/test_firebase.py +0 -0
  751. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_configs.py +0 -0
  752. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_models/__init__.py +0 -0
  753. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_models/test_notification_types.py +0 -0
  754. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_models/test_tokens.py +0 -0
  755. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_serializers/__init__.py +0 -0
  756. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_serializers/test_notification_types.py +0 -0
  757. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_serializers/test_notifications.py +0 -0
  758. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_utils.py +0 -0
  759. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_viewsets/__init__.py +0 -0
  760. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/tests/test_viewsets/test_notification_types.py +0 -0
  761. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/urls.py +0 -0
  762. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/views.py +0 -0
  763. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/__init__.py +0 -0
  764. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/configs/notification_types.py +0 -0
  765. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/configs/notifications.py +0 -0
  766. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/menus.py +0 -0
  767. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/notification_types.py +0 -0
  768. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/notifications/viewsets/notifications.py +0 -0
  769. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/__init__.py +0 -0
  770. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/fields.py +0 -0
  771. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/filters.py +0 -0
  772. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/filterset.py +0 -0
  773. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/metadata.py +0 -0
  774. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/__init__.py +0 -0
  775. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_base.py +0 -0
  776. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_fields/__init__.py +0 -0
  777. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_fields/test_number_fields.py +0 -0
  778. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_filters/__init__.py +0 -0
  779. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_filters/test_pandas.py +0 -0
  780. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/tests/test_views.py +0 -0
  781. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/utils.py +0 -0
  782. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/pandas/views.py +0 -0
  783. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/__init__.py +0 -0
  784. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/apps.py +0 -0
  785. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/configurations.py +0 -0
  786. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/filters.py +0 -0
  787. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/internal/__init__.py +0 -0
  788. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/internal/backend.py +0 -0
  789. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/internal/registry.py +0 -0
  790. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/management/__init__.py +0 -0
  791. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/migrations/0001_initial.py +0 -0
  792. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/migrations/__init__.py +0 -0
  793. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/models/__init__.py +0 -0
  794. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/models/mixins.py +0 -0
  795. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/models/models.py +0 -0
  796. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/permissions.py +0 -0
  797. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tasks.py +0 -0
  798. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/__init__.py +0 -0
  799. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/conftest.py +0 -0
  800. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/test_backend.py +0 -0
  801. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/test_model_mixins.py +0 -0
  802. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/test_tasks.py +0 -0
  803. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/test_utils.py +0 -0
  804. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/tests/test_viewsets.py +0 -0
  805. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/urls.py +0 -0
  806. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/utils.py +0 -0
  807. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/__init__.py +0 -0
  808. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/configs/__init__.py +0 -0
  809. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/configs/buttons.py +0 -0
  810. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/configs/displays.py +0 -0
  811. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/configs/endpoints.py +0 -0
  812. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/configs/titles.py +0 -0
  813. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/mixins.py +0 -0
  814. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/permission/viewsets/viewsets.py +0 -0
  815. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/__init__.py +0 -0
  816. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/admin.py +0 -0
  817. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/apps.py +0 -0
  818. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/factories.py +0 -0
  819. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/filters.py +0 -0
  820. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/migrations/0001_initial.py +0 -0
  821. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/migrations/0002_alter_tag_unique_together_tag_unique_tag.py +0 -0
  822. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/migrations/__init__.py +0 -0
  823. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/models/__init__.py +0 -0
  824. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/models/mixins.py +0 -0
  825. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/models/tags.py +0 -0
  826. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/release_notes/1_0_0.md +0 -0
  827. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/release_notes/__init__.py +0 -0
  828. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/serializers.py +0 -0
  829. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/signals.py +0 -0
  830. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/tests/__init__.py +0 -0
  831. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/tests/conftest.py +0 -0
  832. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/tests/tests.py +0 -0
  833. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/urls.py +0 -0
  834. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/viewsets/__init__.py +0 -0
  835. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/viewsets/display.py +0 -0
  836. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/viewsets/menu.py +0 -0
  837. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/tags/viewsets/viewsets.py +0 -0
  838. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/__init__.py +0 -0
  839. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/__init__.py +0 -0
  840. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/condition.py +0 -0
  841. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/data.py +0 -0
  842. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/display.py +0 -0
  843. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/process.py +0 -0
  844. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/step.py +0 -0
  845. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/transition.py +0 -0
  846. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/admin/workflow.py +0 -0
  847. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/apps.py +0 -0
  848. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/configs.py +0 -0
  849. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/decorators.py +0 -0
  850. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/dispatch.py +0 -0
  851. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/__init__.py +0 -0
  852. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/condition.py +0 -0
  853. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/data.py +0 -0
  854. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/display.py +0 -0
  855. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/process.py +0 -0
  856. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/step.py +0 -0
  857. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/transition.py +0 -0
  858. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/factories/workflow.py +0 -0
  859. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/__init__.py +0 -0
  860. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/condition.py +0 -0
  861. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/data.py +0 -0
  862. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/process.py +0 -0
  863. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/step.py +0 -0
  864. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/transition.py +0 -0
  865. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/filters/workflow.py +0 -0
  866. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/fixtures/workflow.json +0 -0
  867. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po +0 -0
  868. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po.translated +0 -0
  869. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/locale/en/LC_MESSAGES/django.po +0 -0
  870. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/locale/fr/LC_MESSAGES/django.po +0 -0
  871. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/0001_initial.py +0 -0
  872. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/0002_alter_step_step_type.py +0 -0
  873. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/0003_alter_condition_attribute_name_and_more.py +0 -0
  874. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/0004_alter_userstep_assignee_method.py +0 -0
  875. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/0005_alter_userstep_assignee_method.py +0 -0
  876. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/migrations/__init__.py +0 -0
  877. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/__init__.py +0 -0
  878. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/condition.py +0 -0
  879. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/data.py +0 -0
  880. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/display.py +0 -0
  881. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/process.py +0 -0
  882. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/step.py +0 -0
  883. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/transition.py +0 -0
  884. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/models/workflow.py +0 -0
  885. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/__init__.py +0 -0
  886. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/condition.py +0 -0
  887. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/data.py +0 -0
  888. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/display.py +0 -0
  889. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/process.py +0 -0
  890. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/signals.py +0 -0
  891. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/step.py +0 -0
  892. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/transition.py +0 -0
  893. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/serializers/workflow.py +0 -0
  894. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/sites.py +0 -0
  895. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/assignedprocessstep.md +0 -0
  896. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/condition.md +0 -0
  897. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/decisionstep.md +0 -0
  898. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/emailstep.md +0 -0
  899. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/finishstep.md +0 -0
  900. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/joinstep.md +0 -0
  901. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/process.md +0 -0
  902. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/processstep.md +0 -0
  903. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/scriptstep.md +0 -0
  904. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/splitstep.md +0 -0
  905. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/startstep.md +0 -0
  906. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/transition.md +0 -0
  907. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/userstep.md +0 -0
  908. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/static/workflow/markdown/documentation/workflow.md +0 -0
  909. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/templates/Test_Templates.txt +0 -0
  910. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/__init__.py +0 -0
  911. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/conftest.py +0 -0
  912. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_configs.py +0 -0
  913. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_dispatch.py +0 -0
  914. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_displays.py +0 -0
  915. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_filters.py +0 -0
  916. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_decision_step.py +0 -0
  917. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_email_step.py +0 -0
  918. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_finish_step.py +0 -0
  919. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_join_step.py +0 -0
  920. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_script_step.py +0 -0
  921. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_split_step.py +0 -0
  922. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_step.py +0 -0
  923. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/step/test_user_step.py +0 -0
  924. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/test_condition.py +0 -0
  925. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/test_data.py +0 -0
  926. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/test_process.py +0 -0
  927. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/test_transition.py +0 -0
  928. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_models/test_workflow.py +0 -0
  929. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_serializers.py +0 -0
  930. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_viewsets.py +0 -0
  931. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/tests/test_workflow_assignees.py +0 -0
  932. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/urls.py +0 -0
  933. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/utils.py +0 -0
  934. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/__init__.py +0 -0
  935. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/buttons/__init__.py +0 -0
  936. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/buttons/step.py +0 -0
  937. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/condition.py +0 -0
  938. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/data.py +0 -0
  939. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/__init__.py +0 -0
  940. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/condition.py +0 -0
  941. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/data.py +0 -0
  942. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/process.py +0 -0
  943. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/step.py +0 -0
  944. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/transition.py +0 -0
  945. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/display/workflow.py +0 -0
  946. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/__init__.py +0 -0
  947. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/condition.py +0 -0
  948. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/data.py +0 -0
  949. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/process.py +0 -0
  950. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/step.py +0 -0
  951. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/endpoints/transition.py +0 -0
  952. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/__init__.py +0 -0
  953. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/condition.py +0 -0
  954. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/data.py +0 -0
  955. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/process.py +0 -0
  956. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/step.py +0 -0
  957. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/transition.py +0 -0
  958. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/menu/workflow.py +0 -0
  959. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/process.py +0 -0
  960. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/step.py +0 -0
  961. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/__init__.py +0 -0
  962. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/condition.py +0 -0
  963. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/data.py +0 -0
  964. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/process.py +0 -0
  965. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/step.py +0 -0
  966. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/transition.py +0 -0
  967. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/titles/workflow.py +0 -0
  968. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/transition.py +0 -0
  969. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/viewsets/workflow.py +0 -0
  970. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/workflows/__init__.py +0 -0
  971. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/contrib/workflow/workflows/assignees.py +0 -0
  972. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/crontab/__init__.py +0 -0
  973. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/crontab/serializers.py +0 -0
  974. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/crontab/viewsets.py +0 -0
  975. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/dispatch.py +0 -0
  976. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/docs/__init__.py +0 -0
  977. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/docs/orderable.md +0 -0
  978. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/docs/reparent.md +0 -0
  979. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/dynamic_preferences_registry.py +0 -0
  980. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/enums.py +0 -0
  981. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/__init__.py +0 -0
  982. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/backends.py +0 -0
  983. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/defaults.py +0 -0
  984. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/__init__.py +0 -0
  985. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/booleans.py +0 -0
  986. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/choices.py +0 -0
  987. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/datetime.py +0 -0
  988. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/models.py +0 -0
  989. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/multiple_lookups.py +0 -0
  990. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/numbers.py +0 -0
  991. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/fields/text.py +0 -0
  992. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/filterset.py +0 -0
  993. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/lookups.py +0 -0
  994. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/mixins.py +0 -0
  995. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/filters/utils.py +0 -0
  996. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/forms.py +0 -0
  997. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/frontend.py +0 -0
  998. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/frontend_user_configuration.py +0 -0
  999. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/fsm/__init__.py +0 -0
  1000. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/fsm/markdown_extensions.py +0 -0
  1001. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/fsm/mixins.py +0 -0
  1002. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/locale/de/LC_MESSAGES/django.po +0 -0
  1003. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/locale/de/LC_MESSAGES/django.po.translated +0 -0
  1004. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/locale/en/LC_MESSAGES/django.po +0 -0
  1005. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/locale/fr/LC_MESSAGES/django.po +0 -0
  1006. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/management/__init__.py +0 -0
  1007. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/management/commands/__init__.py +0 -0
  1008. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/management/commands/bootstrap.py +0 -0
  1009. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/management/commands/clean_obsolete_object.py +0 -0
  1010. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/management/commands/handle_release_notes.py +0 -0
  1011. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/__init__.py +0 -0
  1012. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/admin.py +0 -0
  1013. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/dynamic_preferences_registry.py +0 -0
  1014. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/models.py +0 -0
  1015. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/template.py +0 -0
  1016. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/utils.py +0 -0
  1017. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/markdown/views.py +0 -0
  1018. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/menus/__init__.py +0 -0
  1019. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/menus/menus.py +0 -0
  1020. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/menus/registry.py +0 -0
  1021. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/menus/views.py +0 -0
  1022. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/messages.py +0 -0
  1023. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/__init__.py +0 -0
  1024. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/__init__.py +0 -0
  1025. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/base.py +0 -0
  1026. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/__init__.py +0 -0
  1027. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/bases.py +0 -0
  1028. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/buttons.py +0 -0
  1029. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/enums.py +0 -0
  1030. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/metadata.py +0 -0
  1031. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/buttons/view_config.py +0 -0
  1032. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/__init__.py +0 -0
  1033. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/configs.py +0 -0
  1034. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/display.py +0 -0
  1035. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/formatting.py +0 -0
  1036. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/__init__.py +0 -0
  1037. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/display.py +0 -0
  1038. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/enums.py +0 -0
  1039. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/layouts/__init__.py +0 -0
  1040. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/layouts/inlines.py +0 -0
  1041. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/layouts/layouts.py +0 -0
  1042. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/layouts/sections.py +0 -0
  1043. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/operators.py +0 -0
  1044. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/pages.py +0 -0
  1045. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/shortcuts.py +0 -0
  1046. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/signals.py +0 -0
  1047. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/styles.py +0 -0
  1048. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/instance_display/utils.py +0 -0
  1049. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/list_display.py +0 -0
  1050. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/models.py +0 -0
  1051. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/view_config.py +0 -0
  1052. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/views.py +0 -0
  1053. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/display/windows.py +0 -0
  1054. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/documentations.py +0 -0
  1055. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/endpoints.py +0 -0
  1056. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/fields.py +0 -0
  1057. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/filter_fields.py +0 -0
  1058. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/identifiers.py +0 -0
  1059. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/ordering_fields.py +0 -0
  1060. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/paginations.py +0 -0
  1061. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/preview.py +0 -0
  1062. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/primary_keys.py +0 -0
  1063. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/search_fields.py +0 -0
  1064. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/titles.py +0 -0
  1065. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/configs/window_types.py +0 -0
  1066. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/exceptions.py +0 -0
  1067. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/metadata.py +0 -0
  1068. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/mixins.py +0 -0
  1069. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/tests/__init__.py +0 -0
  1070. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/tests/test_buttons.py +0 -0
  1071. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/metadata/utils.py +0 -0
  1072. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0001_initial_squashed_squashed_0010_preset_appliedpreset.py +0 -0
  1073. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0011_genericmodel.py +0 -0
  1074. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0012_delete_notification.py +0 -0
  1075. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0013_delete_colorgradient.py +0 -0
  1076. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0014_biguserobjectpermission_system.py +0 -0
  1077. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/0015_delete_genericmodel.py +0 -0
  1078. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/migrations/__init__.py +0 -0
  1079. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/models/__init__.py +0 -0
  1080. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/models/base.py +0 -0
  1081. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/models/fields.py +0 -0
  1082. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/models/orderable.py +0 -0
  1083. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/pagination.py +0 -0
  1084. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/__init__.py +0 -0
  1085. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/admin.py +0 -0
  1086. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/buttons.py +0 -0
  1087. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/display.py +0 -0
  1088. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/filters.py +0 -0
  1089. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/models.py +0 -0
  1090. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/serializers.py +0 -0
  1091. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/utils.py +0 -0
  1092. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/release_notes/viewsets.py +0 -0
  1093. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/__init__.py +0 -0
  1094. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/filters.py +0 -0
  1095. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/serializers.py +0 -0
  1096. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/__init__.py +0 -0
  1097. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/buttons.py +0 -0
  1098. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/displays.py +0 -0
  1099. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/endpoints.py +0 -0
  1100. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/titles.py +0 -0
  1101. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/reversion/viewsets/viewsets.py +0 -0
  1102. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/routers.py +0 -0
  1103. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/search/__init__.py +0 -0
  1104. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/__init__.py +0 -0
  1105. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/__init__.py +0 -0
  1106. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/boolean.py +0 -0
  1107. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/choice.py +0 -0
  1108. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/datetime.py +0 -0
  1109. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/fields.py +0 -0
  1110. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/file.py +0 -0
  1111. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/fsm.py +0 -0
  1112. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/json.py +0 -0
  1113. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/list.py +0 -0
  1114. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/mixins.py +0 -0
  1115. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/other.py +0 -0
  1116. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/primary_key.py +0 -0
  1117. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/related.py +0 -0
  1118. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/text.py +0 -0
  1119. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/fields/types.py +0 -0
  1120. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/mixins.py +0 -0
  1121. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/serializers.py +0 -0
  1122. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/serializers/utils.py +0 -0
  1123. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/__init__.py +0 -0
  1124. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/config.py +0 -0
  1125. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/decorator.py +0 -0
  1126. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/signals.py +0 -0
  1127. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/sites.py +0 -0
  1128. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/shares/views.py +0 -0
  1129. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/__init__.py +0 -0
  1130. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/clone.py +0 -0
  1131. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/filters.py +0 -0
  1132. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/instance_buttons.py +0 -0
  1133. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/merge.py +0 -0
  1134. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/models.py +0 -0
  1135. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/permissions.py +0 -0
  1136. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/signals/serializers.py +0 -0
  1137. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tasks.py +0 -0
  1138. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/template.py +0 -0
  1139. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/errors/404.html +0 -0
  1140. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/errors/500.html +0 -0
  1141. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/errors/503.html +0 -0
  1142. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/errors/custom.html +0 -0
  1143. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/forms.py +0 -0
  1144. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/notifications/email_template.html +0 -0
  1145. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/reversion/__init__.py +0 -0
  1146. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/reversion/compare_detail.html +0 -0
  1147. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/admin/change_list.html +0 -0
  1148. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/admin/csv_form.html +0 -0
  1149. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/dynamic_color_array.html +0 -0
  1150. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/email_base_template.html +0 -0
  1151. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/email_notification_template.html +0 -0
  1152. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/templates/wbcore/frontend.html +0 -0
  1153. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/__init__.py +0 -0
  1154. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/e2e_helpers_methods/e2e_checks.py +0 -0
  1155. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/e2e_helpers_methods/e2e_helper_methods.py +0 -0
  1156. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/mixins.py +0 -0
  1157. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/signals.py +0 -0
  1158. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/tests.py +0 -0
  1159. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/test/utils.py +0 -0
  1160. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/__init__.py +0 -0
  1161. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/conftest.py +0 -0
  1162. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/e2e/__init__.py +0 -0
  1163. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/e2e/test_e2e.py +0 -0
  1164. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/models.py +0 -0
  1165. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_cache/__init__.py +0 -0
  1166. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_cache/test_decorators.py +0 -0
  1167. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_cache/test_mixins.py +0 -0
  1168. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_cache/test_registry.py +0 -0
  1169. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_configs.py +0 -0
  1170. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_enums.py +0 -0
  1171. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/__init__.py +0 -0
  1172. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_boolean_fields.py +0 -0
  1173. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_choice_fields.py +0 -0
  1174. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_datetime_fields.py +0 -0
  1175. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_fields.py +0 -0
  1176. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_file_fields.py +0 -0
  1177. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_json_fields.py +0 -0
  1178. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_list_fields.py +0 -0
  1179. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_mixins.py +0 -0
  1180. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_number_fields.py +0 -0
  1181. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_other_fields.py +0 -0
  1182. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_primary_key_fields.py +0 -0
  1183. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_related.py +0 -0
  1184. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_fields/test_text_fields.py +0 -0
  1185. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_filters/__init__.py +0 -0
  1186. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_filters/test_mixins.py +0 -0
  1187. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_list_display.py +0 -0
  1188. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_models/__init__.py +0 -0
  1189. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_models/test_fields.py +0 -0
  1190. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_models/test_mixins.py +0 -0
  1191. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/__init__.py +0 -0
  1192. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_inlines.py +0 -0
  1193. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_layouts.py +0 -0
  1194. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_operators.py +0 -0
  1195. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_pages.py +0 -0
  1196. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_sections.py +0 -0
  1197. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_shortcuts.py +0 -0
  1198. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_new_display/test_utils.py +0 -0
  1199. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_pagination.py +0 -0
  1200. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_serializers/__init__.py +0 -0
  1201. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_serializers/test_fields.py +0 -0
  1202. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_serializers/test_mixins.py +0 -0
  1203. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_serializers/test_related.py +0 -0
  1204. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_something.py +0 -0
  1205. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_utils/__init__.py +0 -0
  1206. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_utils/test_date.py +0 -0
  1207. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_utils/test_date_builder.py +0 -0
  1208. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_utils/test_primary.py +0 -0
  1209. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_utils/test_signals.py +0 -0
  1210. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/tests/test_viewsets.py +0 -0
  1211. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/urls.py +0 -0
  1212. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/__init__.py +0 -0
  1213. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/cache.py +0 -0
  1214. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/date.py +0 -0
  1215. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/date_builder/__init__.py +0 -0
  1216. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/date_builder/components.py +0 -0
  1217. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/date_builder/offsets.py +0 -0
  1218. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/deprecations.py +0 -0
  1219. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/enum.py +0 -0
  1220. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/figures.py +0 -0
  1221. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/html.py +0 -0
  1222. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/importlib.py +0 -0
  1223. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/itertools.py +0 -0
  1224. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/models.py +0 -0
  1225. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/numbers.py +0 -0
  1226. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/prettytable.py +0 -0
  1227. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/print.py +0 -0
  1228. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/renderers.py +0 -0
  1229. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/reportlab.py +0 -0
  1230. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/rrules.py +0 -0
  1231. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/serializers.py +0 -0
  1232. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/settings.py +0 -0
  1233. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/signals.py +0 -0
  1234. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/string_loader.py +0 -0
  1235. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/strings.py +0 -0
  1236. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/urls.py +0 -0
  1237. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/utils/views.py +0 -0
  1238. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/views.py +0 -0
  1239. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/__init__.py +0 -0
  1240. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/encoders.py +0 -0
  1241. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/generics.py +0 -0
  1242. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/mixins.py +0 -0
  1243. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/utils.py +0 -0
  1244. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/viewsets/viewsets.py +0 -0
  1245. {wbcore-1.61.5 → wbcore-1.61.6}/wbcore/workers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbcore
3
- Version: 1.61.5
3
+ Version: 1.61.6
4
4
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
5
5
  Requires-Dist: celery[redis]==5.*
6
6
  Requires-Dist: croniter==2.*
@@ -78,7 +78,13 @@ class UserAdmin(admin.ModelAdmin):
78
78
  (_("Synchronization"), {"fields": ("metadata",)}),
79
79
  (
80
80
  _("Permissions"),
81
- {"fields": ("is_active", "is_register", "is_staff", "is_superuser", "groups", "user_permissions")},
81
+ {
82
+ "fields": (
83
+ ("is_active", "is_register", "is_staff", "is_superuser", "is_internal"),
84
+ ("groups",),
85
+ ("user_permissions",),
86
+ )
87
+ },
82
88
  ),
83
89
  )
84
90
  raw_id_fields = ("profile",)
@@ -2,7 +2,7 @@ from datetime import date, timedelta
2
2
 
3
3
  from django.contrib import admin
4
4
 
5
- from wbcore.contrib.notifications.tasks import send_notification_task
5
+ from wbcore.contrib.notifications.models.notifications import send_notification_as_task
6
6
 
7
7
  from .models import (
8
8
  Notification,
@@ -16,19 +16,12 @@ from .models import (
16
16
  class NotificationModelAdmin(admin.ModelAdmin):
17
17
  search_fields = ["title", "body"]
18
18
 
19
- list_display = [
20
- "title",
21
- "user",
22
- "notification_type",
23
- "endpoint",
24
- "sent",
25
- "read",
26
- ]
19
+ list_display = ["title", "user", "notification_type", "endpoint", "sent", "read", "created"]
27
20
 
28
21
  @admin.action(description="Send Notification")
29
22
  def send_notification(self, request, queryset):
30
23
  for notification in queryset:
31
- send_notification_task.delay(notification.id)
24
+ send_notification_as_task.delay(notification.id)
32
25
 
33
26
  actions = [send_notification]
34
27
 
@@ -11,9 +11,6 @@ from wbcore.contrib.notifications.backends.abstract_backend import (
11
11
  AbstractNotificationBackend,
12
12
  )
13
13
  from wbcore.contrib.notifications.models import Notification, NotificationUserToken
14
- from wbcore.contrib.notifications.models.notification_types import (
15
- NotificationTypeSetting,
16
- )
17
14
 
18
15
 
19
16
  class NotificationBackend(AbstractNotificationBackend):
@@ -34,11 +31,8 @@ class NotificationBackend(AbstractNotificationBackend):
34
31
  @classmethod
35
32
  def send_notification(cls, notification: Notification):
36
33
  app = cls.get_firebase_app(cls.get_firebase_credentials())
37
- notification_user_settings = NotificationTypeSetting.objects.get(
38
- notification_type=notification.notification_type,
39
- user=notification.user,
40
- )
41
- tokens = NotificationUserToken.objects.filter_for_user_settings(notification_user_settings)
34
+ notification_user_setting = notification.notification_type.get_setting_for_user(notification.user)
35
+ tokens = NotificationUserToken.objects.filter_for_user_settings(notification_user_setting)
42
36
  endpoint_data = {} # Firebase can't accept non-string value
43
37
  if full_endpoint := notification.get_full_endpoint():
44
38
  endpoint_data["endpoint"] = full_endpoint
@@ -4,7 +4,6 @@ from celery import shared_task
4
4
  from django.conf import settings
5
5
  from django.db import transaction
6
6
  from django.dispatch import receiver
7
- from django.utils import timezone
8
7
  from django.utils.module_loading import import_string
9
8
  from django.utils.translation import gettext
10
9
  from rest_framework.reverse import reverse
@@ -13,15 +12,24 @@ from wbcore.contrib.authentication.models.users import User
13
12
  from wbcore.shares.signals import handle_widget_sharing
14
13
 
15
14
  from ...workers import Queue
16
- from .models import Notification, NotificationType, NotificationTypeSetting
17
- from .tasks import send_notification_task
15
+ from .models import NotificationType
16
+ from .models.notifications import Notification, send_notification_as_task
18
17
 
19
18
 
19
+ def get_user(u: User | int) -> User:
20
+ if isinstance(u, User):
21
+ return u
22
+ elif isinstance(u, int):
23
+ return User.objects.get(id=u)
24
+ raise ValueError("Invalid user type")
25
+
26
+
27
+ @shared_task(queue=Queue.HIGH_PRIORITY.value)
20
28
  def send_notification(
21
29
  code: str,
22
30
  title: str,
23
31
  body: str,
24
- user: User | Iterable[User],
32
+ user: User | Iterable[User | int] | int,
25
33
  reverse_name: str | None = None,
26
34
  reverse_args=None,
27
35
  reverse_kwargs=None,
@@ -39,15 +47,16 @@ def send_notification(
39
47
  reverse_kwargs: The keyword arguments passed to the `reverse` function
40
48
  endpoint: The endpoint of resource. If provided, reverse_name + args + kwargs are disregarded
41
49
  """
42
- users = user
43
- if isinstance(users, User):
44
- users = [users]
50
+ users = []
51
+ if isinstance(user, list):
52
+ for u in user:
53
+ users.append(get_user(u))
54
+ else:
55
+ users.append(get_user(user))
56
+
45
57
  for user in users:
46
58
  notification_type = NotificationType.objects.get(code=code)
47
- if (
48
- user.is_active
49
- and NotificationTypeSetting.objects.filter(notification_type=notification_type, user=user).exists()
50
- ):
59
+ if user.is_active:
51
60
  if not endpoint:
52
61
  endpoint = reverse(reverse_name, reverse_args, reverse_kwargs) if reverse_name else None
53
62
  notification = Notification.objects.create(
@@ -56,21 +65,12 @@ def send_notification(
56
65
  user=user,
57
66
  notification_type=notification_type,
58
67
  endpoint=endpoint,
59
- sent=timezone.now(),
60
68
  )
61
69
  transaction.on_commit(
62
- lambda notification_pk=notification.pk: send_notification_task.delay(notification_pk)
70
+ lambda notification_pk=notification.pk: send_notification_as_task.delay(notification_pk)
63
71
  )
64
72
 
65
73
 
66
- @shared_task(queue=Queue.HIGH_PRIORITY.value)
67
- def send_notification_as_task(code, title, body, user_id, **kwargs):
68
- if not isinstance(user_id, list):
69
- user_id = [user_id]
70
- user = User.objects.filter(id__in=user_id)
71
- send_notification(code, title, body, user, **kwargs)
72
-
73
-
74
74
  @receiver(handle_widget_sharing)
75
75
  def share_notification(
76
76
  request, widget_relative_endpoint, share=False, share_message=None, share_recipients=None, **kwargs
@@ -6,7 +6,7 @@ from wbcore.contrib.notifications.factories.notification_types import (
6
6
  from wbcore.contrib.notifications.models import Notification
7
7
 
8
8
 
9
- class NotificationModelFactory(factory.django.DjangoModelFactory):
9
+ class NotificationFactory(factory.django.DjangoModelFactory):
10
10
  title = factory.Faker("pystr")
11
11
  body = factory.Faker("pystr")
12
12
  notification_type = factory.SubFactory(NotificationTypeModelFactory)
@@ -0,0 +1,50 @@
1
+ # Generated by Django 5.2.9 on 2026-02-02 11:27
2
+ import hashlib
3
+
4
+ from django.conf import settings
5
+ from django.db import migrations, models
6
+ from tqdm import tqdm
7
+
8
+ from wbcore.contrib.notifications.utils import get_checksum
9
+
10
+
11
+ def migrate_checksum(apps, schema_editor):
12
+ Notification = apps.get_model('notifications', 'Notification')
13
+ qs = Notification.objects.all()
14
+ objs = []
15
+ for notification in tqdm(qs, total=qs.count()):
16
+ notification.checksum = get_checksum(notification.title, notification.body, notification.endpoint)
17
+ objs.append(notification)
18
+ Notification.objects.bulk_update(objs, ["checksum"], batch_size=1000)
19
+
20
+ class Migration(migrations.Migration):
21
+
22
+ dependencies = [
23
+ ('notifications', '0009_alter_notificationtypesetting_options_and_more'),
24
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
25
+ ]
26
+
27
+ operations = [
28
+ migrations.AddField(
29
+ model_name='notification',
30
+ name='checksum',
31
+ field=models.CharField(null=True, blank=True, max_length=64),
32
+ preserve_default=False,
33
+ ),
34
+ migrations.RunPython(migrate_checksum),
35
+ migrations.AlterField(
36
+ model_name='notification',
37
+ name='body',
38
+ field=models.TextField(default=''),
39
+ ),
40
+ migrations.AlterField(
41
+ model_name='notification',
42
+ name='checksum',
43
+ field=models.CharField(default=None, max_length=64),
44
+ preserve_default=False,
45
+ ),
46
+ migrations.AddIndex(
47
+ model_name='notification',
48
+ index=models.Index(fields=['user', 'notification_type', 'checksum'], name='notificatio_user_id_b90c58_idx'),
49
+ ),
50
+ ]
@@ -10,54 +10,6 @@ from wbcore.contrib.authentication.models.users import User
10
10
  from wbcore.models import WBModel
11
11
 
12
12
 
13
- class NotificationType(WBModel):
14
- code = models.CharField(max_length=128, unique=True)
15
- title = models.CharField(max_length=128, default="")
16
- help_text = models.CharField(max_length=512, default="")
17
-
18
- stale = models.BooleanField(default=False)
19
- contenttype = models.ForeignKey(
20
- to="contenttypes.ContentType", related_name="+", null=True, blank=True, on_delete=models.SET_NULL
21
- )
22
- resource_button_label = models.CharField(max_length=128)
23
-
24
- default_enable_web = models.BooleanField(default=False)
25
- default_enable_mobile = models.BooleanField(default=False)
26
- default_enable_email = models.BooleanField(default=False)
27
- is_lock = models.BooleanField(default=False)
28
-
29
- def __str__(self) -> str:
30
- return f"{self.title}"
31
-
32
- def save(self, *args, **kwargs):
33
- if not self.resource_button_label:
34
- if self.contenttype:
35
- self.resource_button_label = f"Open {self.contenttype.name}"
36
- else:
37
- self.resource_button_label = "Open Resource"
38
- super().save(*args, **kwargs)
39
-
40
- class Meta:
41
- verbose_name = "Notification Type"
42
- verbose_name_plural = "Notification Types"
43
-
44
- @classmethod
45
- def get_endpoint_basename(cls):
46
- return "wbcore:notifications:notification_type"
47
-
48
- @classmethod
49
- def get_representation_endpoint(cls):
50
- return "wbcore:notifications:notification_type_representation-list"
51
-
52
- @classmethod
53
- def get_representation_value_key(cls):
54
- return "id"
55
-
56
- @classmethod
57
- def get_representation_label_key(cls):
58
- return "{{title}}"
59
-
60
-
61
13
  class NotificationTypeSetting(WBModel):
62
14
  notification_type = models.ForeignKey(
63
15
  to="notifications.NotificationType", related_name="user_settings", on_delete=models.CASCADE
@@ -106,31 +58,81 @@ class NotificationTypeSetting(WBModel):
106
58
  return "{{notification_type}}"
107
59
 
108
60
 
61
+ class NotificationType(WBModel):
62
+ code = models.CharField(max_length=128, unique=True)
63
+ title = models.CharField(max_length=128, default="")
64
+ help_text = models.CharField(max_length=512, default="")
65
+
66
+ stale = models.BooleanField(default=False)
67
+ contenttype = models.ForeignKey(
68
+ to="contenttypes.ContentType", related_name="+", null=True, blank=True, on_delete=models.SET_NULL
69
+ )
70
+ resource_button_label = models.CharField(max_length=128)
71
+
72
+ default_enable_web = models.BooleanField(default=False)
73
+ default_enable_mobile = models.BooleanField(default=False)
74
+ default_enable_email = models.BooleanField(default=False)
75
+ is_lock = models.BooleanField(default=False)
76
+
77
+ def __str__(self) -> str:
78
+ return f"{self.title}"
79
+
80
+ def save(self, *args, **kwargs):
81
+ if not self.resource_button_label:
82
+ if self.contenttype:
83
+ self.resource_button_label = f"Open {self.contenttype.name}"
84
+ else:
85
+ self.resource_button_label = "Open Resource"
86
+ super().save(*args, **kwargs)
87
+
88
+ class Meta:
89
+ verbose_name = "Notification Type"
90
+ verbose_name_plural = "Notification Types"
91
+
92
+ def get_setting_for_user(self, user: User, bulk: bool = False) -> NotificationTypeSetting:
93
+ try:
94
+ setting = NotificationTypeSetting.objects.get(user=user, notification_type=self)
95
+ setting.enable_web = setting.enable_web if not self.is_lock else self.default_enable_web
96
+ setting.enable_mobile = setting.enable_mobile if not self.is_lock else self.default_enable_mobile
97
+ setting.enable_email = setting.enable_email if not self.is_lock else self.default_enable_email
98
+ return setting
99
+ except NotificationTypeSetting.DoesNotExist:
100
+ setting = NotificationTypeSetting(
101
+ user=user,
102
+ notification_type=self,
103
+ enable_web=self.default_enable_web,
104
+ enable_mobile=self.default_enable_mobile,
105
+ enable_email=self.default_enable_email,
106
+ )
107
+ if not bulk:
108
+ setting.save()
109
+ return setting
110
+
111
+ @classmethod
112
+ def get_endpoint_basename(cls):
113
+ return "wbcore:notifications:notification_type"
114
+
115
+ @classmethod
116
+ def get_representation_endpoint(cls):
117
+ return "wbcore:notifications:notification_type_representation-list"
118
+
119
+ @classmethod
120
+ def get_representation_value_key(cls):
121
+ return "id"
122
+
123
+ @classmethod
124
+ def get_representation_label_key(cls):
125
+ return "{{title}}"
126
+
127
+
109
128
  @receiver(post_save, sender="notifications.NotificationType")
110
129
  def post_save_notification_type(instance, **kwargs):
111
130
  anonymous_user = get_anonymous_user()
112
131
 
113
132
  objs = []
114
133
  for user in User.objects.filter(~models.Q(pk=anonymous_user.pk)):
115
- try:
116
- existing_setting = NotificationTypeSetting.objects.get(user=user, notification_type=instance)
117
- enable_web = existing_setting.enable_web if not instance.is_lock else instance.default_enable_web
118
- enable_mobile = existing_setting.enable_mobile if not instance.is_lock else instance.default_enable_mobile
119
- enable_email = existing_setting.enable_email if not instance.is_lock else instance.default_enable_email
120
- except NotificationTypeSetting.DoesNotExist:
121
- enable_web = instance.default_enable_web
122
- enable_mobile = instance.default_enable_mobile
123
- enable_email = instance.default_enable_email
124
-
125
- objs.append(
126
- NotificationTypeSetting(
127
- notification_type=instance,
128
- user=user,
129
- enable_web=enable_web,
130
- enable_mobile=enable_mobile,
131
- enable_email=enable_email,
132
- )
133
- )
134
+ setting = instance.get_setting_for_user(user, bulk=True)
135
+ objs.append(setting)
134
136
  if objs:
135
137
  NotificationTypeSetting.objects.bulk_create(
136
138
  objs,
@@ -150,14 +152,7 @@ def post_save_user(sender, instance, created, raw, **kwargs):
150
152
 
151
153
  objs = []
152
154
  for notification_type in NotificationType.objects.all():
153
- objs.append(
154
- NotificationTypeSetting(
155
- notification_type=notification_type,
156
- user=instance,
157
- enable_web=notification_type.default_enable_web,
158
- enable_mobile=notification_type.default_enable_mobile,
159
- enable_email=notification_type.default_enable_email,
160
- )
161
- )
155
+ setting = notification_type.get_setting_for_user(instance, bulk=True)
156
+ objs.append(setting)
162
157
  if objs:
163
158
  NotificationTypeSetting.objects.bulk_create(objs, unique_fields=["notification_type", "user"])
@@ -0,0 +1,165 @@
1
+ import urllib
2
+ from contextlib import suppress
3
+ from datetime import timedelta
4
+
5
+ from celery import shared_task
6
+ from django.conf import settings
7
+ from django.core.mail import EmailMultiAlternatives
8
+ from django.core.validators import URLValidator, ValidationError
9
+ from django.db import models
10
+ from django.template.loader import get_template
11
+ from django.urls import Resolver404, resolve
12
+ from django.utils import timezone
13
+ from django.utils.functional import cached_property
14
+ from django.utils.html import strip_tags
15
+ from django.utils.module_loading import import_string
16
+
17
+ from wbcore.contrib.authentication.models.users import User
18
+ from wbcore.contrib.notifications.utils import base_domain, create_notification_type, get_checksum
19
+ from wbcore.workers import Queue
20
+
21
+
22
+ class Notification(models.Model):
23
+ title = models.CharField(max_length=255)
24
+ body = models.TextField(default="")
25
+ endpoint = models.CharField(max_length=2048, null=True, blank=True)
26
+
27
+ user = models.ForeignKey(to=User, related_name="notifications_notifications", on_delete=models.CASCADE)
28
+ notification_type = models.ForeignKey(
29
+ to="notifications.NotificationType", related_name="notifications", on_delete=models.CASCADE
30
+ )
31
+
32
+ created = models.DateTimeField(auto_now_add=True)
33
+ sent = models.DateTimeField(null=True, blank=True)
34
+ read = models.DateTimeField(null=True, blank=True)
35
+ checksum = models.CharField(max_length=64)
36
+
37
+ def __str__(self) -> str:
38
+ return f"{self.user} {self.title}"
39
+
40
+ class Meta:
41
+ verbose_name = "Notification"
42
+ verbose_name_plural = "Notifications"
43
+
44
+ notification_types = [
45
+ create_notification_type(
46
+ "workbench.system",
47
+ "System Notifications",
48
+ "System Notifications.",
49
+ True,
50
+ True,
51
+ False,
52
+ ),
53
+ ]
54
+ indexes = [
55
+ models.Index(fields=["user", "notification_type", "checksum"]),
56
+ ]
57
+ # constraints = [
58
+ # models.UniqueConstraint(fields=["user", "checksum"], name="checksum_unique"),
59
+ # ]
60
+
61
+ @cached_property
62
+ def is_endpoint_internal(self) -> bool:
63
+ with suppress(Resolver404):
64
+ if self.endpoint:
65
+ resolve(
66
+ urllib.parse.urlsplit(urllib.parse.unquote(self.endpoint)).path
67
+ ) # we need to truncate query parameters
68
+ return True
69
+ return False
70
+
71
+ @cached_property
72
+ def is_endpoint_valid(self) -> bool:
73
+ try:
74
+ URLValidator()(self.endpoint)
75
+ return True
76
+ except ValidationError:
77
+ return False
78
+
79
+ def _send_as_mail(self):
80
+ """Sends out a notification to the user specified inside the notification"""
81
+
82
+ context = {
83
+ "title": self.title,
84
+ "message": self.body or "",
85
+ "notification_share_url": self.get_full_endpoint(as_shareable_internal_link=True),
86
+ "notification_endpoint": self.get_full_endpoint(),
87
+ }
88
+ rendered_template = get_template("notifications/notification_template.html").render(context)
89
+ msg = EmailMultiAlternatives(
90
+ subject=self.title,
91
+ body=strip_tags(rendered_template),
92
+ from_email=getattr(settings, "WBCORE_NOTIFICATION_EMAIL_FROM", "no_reply@stainly.com"),
93
+ to=[self.user.email], # type: ignore
94
+ )
95
+ msg.attach_alternative(rendered_template, "text/html")
96
+ msg.send()
97
+
98
+ def save(self, *args, **kwargs):
99
+ if not self.checksum:
100
+ self.checksum = self.get_checksum()
101
+ super().save(*args, **kwargs)
102
+
103
+ def has_duplicated(self, interval: int = 60 * 4) -> bool:
104
+ return (
105
+ Notification.objects.exclude(id=self.id)
106
+ .filter(
107
+ user=self.user,
108
+ notification_type=self.notification_type,
109
+ checksum=self.checksum,
110
+ sent__isnull=False,
111
+ created__gt=self.created - timedelta(minutes=interval),
112
+ created__lt=self.created + timedelta(minutes=interval),
113
+ )
114
+ .exists()
115
+ )
116
+
117
+ def send(self):
118
+ notification_user_setting = self.notification_type.get_setting_for_user(self.user)
119
+
120
+ # we do not sent notification through email if we detect similar already sent notification
121
+ if notification_user_setting.enable_email and not self.has_duplicated():
122
+ self._send_as_mail()
123
+ if notification_user_setting.enable_web or notification_user_setting.enable_mobile:
124
+ backend = import_string(settings.NOTIFICATION_BACKEND)
125
+ backend.send_notification(self)
126
+
127
+ # mark this notification as sent
128
+ self.sent = timezone.now()
129
+ self.save()
130
+
131
+ def get_checksum(self) -> str:
132
+ return get_checksum(self.title, self.body, self.endpoint)
133
+
134
+ def get_full_endpoint(self, as_shareable_internal_link: bool = False) -> str | None:
135
+ if self.is_endpoint_internal:
136
+ if as_shareable_internal_link:
137
+ return f"{base_domain()}?widget_endpoint={self.endpoint}"
138
+ else:
139
+ return f"{base_domain()}{self.endpoint}"
140
+ elif self.is_endpoint_valid:
141
+ return self.endpoint
142
+
143
+ @classmethod
144
+ def get_endpoint_basename(cls) -> str:
145
+ return "wbcore:notifications:notification"
146
+
147
+ @classmethod
148
+ def get_representation_value_key(cls) -> str:
149
+ return "id"
150
+
151
+ @classmethod
152
+ def get_representation_label_key(cls) -> str:
153
+ return "{{title}}"
154
+
155
+
156
+ @shared_task(queue=Queue.HIGH_PRIORITY.value)
157
+ def send_notification_as_task(notification_pk: int):
158
+ """A celery task to send out a notification via email, web or mobile
159
+
160
+ Args:
161
+ notification_pk: The primary key of the notification that is going to be send out
162
+ """
163
+
164
+ notification = Notification.objects.get(pk=notification_pk)
165
+ notification.send()
@@ -8,7 +8,7 @@ from wbcore.contrib.notifications.factories.notification_types import (
8
8
  NotificationTypeSettingModelFactory,
9
9
  )
10
10
  from wbcore.contrib.notifications.factories.notifications import (
11
- NotificationModelFactory,
11
+ NotificationFactory,
12
12
  )
13
13
  from wbcore.contrib.notifications.factories.tokens import (
14
14
  NotificationUserTokenModelFactory,
@@ -19,7 +19,7 @@ register(UserFactory)
19
19
  register(PersonFactory)
20
20
  register(NotificationTypeModelFactory, name="notification_type")
21
21
  register(NotificationTypeSettingModelFactory, name="notification_type_setting")
22
- register(NotificationModelFactory, name="notification")
22
+ register(NotificationFactory)
23
23
  register(NotificationUserTokenModelFactory, name="notification_user_token")
24
24
 
25
25