wbcore 1.46.0__py2.py3-none-any.whl → 1.58.2__py2.py3-none-any.whl

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 (321) hide show
  1. wbcore/cache/decorators.py +5 -3
  2. wbcore/cache/registry.py +14 -7
  3. wbcore/configs/__init__.py +1 -0
  4. wbcore/configs/configs.py +5 -0
  5. wbcore/configs/decorators.py +1 -1
  6. wbcore/configurations/configurations/apps.py +3 -2
  7. wbcore/configurations/configurations/authentication.py +1 -1
  8. wbcore/configurations/configurations/base.py +1 -1
  9. wbcore/configurations/configurations/cache.py +1 -1
  10. wbcore/configurations/configurations/i18nl10n.py +2 -1
  11. wbcore/configurations/configurations/maintenance.py +1 -1
  12. wbcore/configurations/configurations/media.py +1 -1
  13. wbcore/configurations/configurations/middleware.py +1 -1
  14. wbcore/configurations/configurations/rest_framework.py +1 -1
  15. wbcore/configurations/configurations/static.py +3 -3
  16. wbcore/configurations/configurations/wbcore.py +1 -1
  17. wbcore/content_type/serializers.py +13 -5
  18. wbcore/content_type/utils.py +3 -3
  19. wbcore/content_type/viewsets.py +2 -2
  20. wbcore/contrib/agenda/filters/calendar_item.py +5 -4
  21. wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po +145 -52
  22. wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po.translated +236 -0
  23. wbcore/contrib/agenda/locale/en/LC_MESSAGES/django.po +200 -0
  24. wbcore/contrib/agenda/locale/fr/LC_MESSAGES/django.po +201 -0
  25. wbcore/contrib/agenda/viewsets/calendar_items.py +7 -7
  26. wbcore/contrib/agenda/viewsets/menu/calendar_items.py +0 -6
  27. wbcore/contrib/ai/exceptions.py +5 -5
  28. wbcore/contrib/ai/llm/config.py +76 -27
  29. wbcore/contrib/ai/llm/mixins.py +5 -8
  30. wbcore/contrib/ai/llm/utils.py +50 -26
  31. wbcore/contrib/authentication/admin.py +2 -2
  32. wbcore/contrib/authentication/factories/__init__.py +8 -1
  33. wbcore/contrib/authentication/factories/users.py +19 -0
  34. wbcore/contrib/authentication/filters.py +1 -2
  35. wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po +209 -187
  36. wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po.translated +634 -0
  37. wbcore/contrib/authentication/locale/en/LC_MESSAGES/django.po +590 -0
  38. wbcore/contrib/authentication/locale/fr/LC_MESSAGES/django.po +592 -0
  39. wbcore/contrib/authentication/models/users.py +3 -3
  40. wbcore/contrib/authentication/models/users_activities.py +1 -1
  41. wbcore/contrib/authentication/serializers/users.py +2 -2
  42. wbcore/contrib/authentication/tests/test_tokens.py +3 -3
  43. wbcore/contrib/authentication/tests/test_users.py +0 -1
  44. wbcore/contrib/authentication/urls.py +0 -4
  45. wbcore/contrib/authentication/viewsets/endpoints/user_activities.py +2 -11
  46. wbcore/contrib/authentication/viewsets/endpoints/users.py +0 -3
  47. wbcore/contrib/authentication/viewsets/user_activities.py +2 -1
  48. wbcore/contrib/authentication/viewsets/users.py +6 -4
  49. wbcore/contrib/color/models.py +2 -1
  50. wbcore/contrib/currency/factories.py +1 -1
  51. wbcore/contrib/currency/import_export/backends/fixerio/currency_fx_rates.py +3 -1
  52. wbcore/contrib/currency/models.py +30 -8
  53. wbcore/contrib/currency/serializers.py +5 -1
  54. wbcore/contrib/currency/tests/test_serializers.py +7 -3
  55. wbcore/contrib/currency/tests/test_viewsets.py +1 -1
  56. wbcore/contrib/currency/viewsets/currency.py +2 -2
  57. wbcore/contrib/currency/viewsets/endpoints/currency_fx_rates.py +0 -9
  58. wbcore/contrib/dataloader/tests/test/dataloaders/protocols.py +1 -2
  59. wbcore/contrib/dataloader/utils.py +2 -2
  60. wbcore/contrib/directory/factories/__init__.py +1 -1
  61. wbcore/contrib/directory/factories/entries.py +2 -1
  62. wbcore/contrib/directory/filters/entries.py +9 -0
  63. wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po +728 -714
  64. wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po.translated +1779 -0
  65. wbcore/contrib/directory/locale/en/LC_MESSAGES/django.po +1652 -0
  66. wbcore/contrib/directory/locale/fr/LC_MESSAGES/django.po +1654 -0
  67. wbcore/contrib/directory/migrations/0011_person_description_person_i18n.py +24 -0
  68. wbcore/contrib/directory/migrations/0012_alter_person_managers.py +20 -0
  69. wbcore/contrib/directory/migrations/0013_alter_clientmanagerrelationship_options.py +17 -0
  70. wbcore/contrib/directory/models/contacts.py +2 -2
  71. wbcore/contrib/directory/models/entries.py +31 -5
  72. wbcore/contrib/directory/models/relationships.py +31 -35
  73. wbcore/contrib/directory/permissions.py +6 -0
  74. wbcore/contrib/directory/serializers/companies.py +16 -8
  75. wbcore/contrib/directory/serializers/contacts.py +8 -8
  76. wbcore/contrib/directory/serializers/entries.py +26 -15
  77. wbcore/contrib/directory/serializers/entry_representations.py +4 -2
  78. wbcore/contrib/directory/serializers/persons.py +12 -10
  79. wbcore/contrib/directory/serializers/relationships.py +2 -2
  80. wbcore/contrib/directory/tests/conftest.py +2 -0
  81. wbcore/contrib/directory/tests/disable_signals.py +11 -1
  82. wbcore/contrib/directory/tests/signals.py +2 -2
  83. wbcore/contrib/directory/tests/test_models.py +88 -66
  84. wbcore/contrib/directory/tests/test_serializers.py +1 -1
  85. wbcore/contrib/directory/tests/test_viewsets.py +8 -8
  86. wbcore/contrib/directory/viewsets/buttons/__init__.py +1 -1
  87. wbcore/contrib/directory/viewsets/buttons/relationships.py +32 -0
  88. wbcore/contrib/directory/viewsets/contacts.py +6 -6
  89. wbcore/contrib/directory/viewsets/display/__init__.py +1 -1
  90. wbcore/contrib/directory/viewsets/display/contacts.py +1 -14
  91. wbcore/contrib/directory/viewsets/display/entries.py +68 -38
  92. wbcore/contrib/directory/viewsets/display/relationships.py +26 -50
  93. wbcore/contrib/directory/viewsets/endpoints/relationships.py +1 -26
  94. wbcore/contrib/directory/viewsets/entries.py +8 -6
  95. wbcore/contrib/directory/viewsets/previews/entries.py +3 -3
  96. wbcore/contrib/directory/viewsets/relationships.py +16 -2
  97. wbcore/contrib/directory/viewsets/titles/relationships.py +2 -3
  98. wbcore/contrib/documents/filters.py +0 -2
  99. wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po +103 -94
  100. wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po.translated +285 -0
  101. wbcore/contrib/documents/locale/en/LC_MESSAGES/django.po +271 -0
  102. wbcore/contrib/documents/locale/fr/LC_MESSAGES/django.po +270 -0
  103. wbcore/contrib/documents/tests/test_models.py +32 -28
  104. wbcore/contrib/documents/viewsets/endpoints/shareable_links.py +2 -21
  105. wbcore/contrib/dynamic_preferences/types.py +108 -0
  106. wbcore/contrib/dynamic_preferences/viewsets.py +27 -0
  107. wbcore/contrib/example_app/filters/event.py +3 -1
  108. wbcore/contrib/example_app/filters/match.py +1 -1
  109. wbcore/contrib/example_app/models.py +91 -22
  110. wbcore/contrib/example_app/serializers/person_team.py +4 -4
  111. wbcore/contrib/example_app/templates/example_app/embedded_view.html +19 -0
  112. wbcore/contrib/example_app/tests/e2e/test_teams.py +1 -1
  113. wbcore/contrib/example_app/tests/test_models/test_match.py +17 -7
  114. wbcore/contrib/example_app/urls.py +2 -0
  115. wbcore/contrib/example_app/views.py +7 -0
  116. wbcore/contrib/example_app/viewsets/displays/team.py +23 -4
  117. wbcore/contrib/example_app/viewsets/menu/menus.py +1 -1
  118. wbcore/contrib/example_app/viewsets/menus.py +1 -1
  119. wbcore/contrib/geography/tests/conftest.py +14 -0
  120. wbcore/contrib/geography/tests/test_models.py +23 -8
  121. wbcore/contrib/geography/tests/test_viewsets.py +96 -2
  122. wbcore/contrib/guardian/tests/test_model_mixins.py +3 -4
  123. wbcore/contrib/guardian/tests/test_tasks.py +9 -9
  124. wbcore/contrib/guardian/tests/test_viewsets.py +2 -2
  125. wbcore/contrib/guardian/viewsets/configs/__init__.py +1 -1
  126. wbcore/contrib/guardian/viewsets/configs/buttons.py +9 -0
  127. wbcore/contrib/guardian/viewsets/configs/endpoints.py +7 -0
  128. wbcore/contrib/guardian/viewsets/viewsets.py +2 -0
  129. wbcore/contrib/i18n/__init__.py +2 -0
  130. wbcore/contrib/i18n/buttons.py +33 -0
  131. wbcore/contrib/i18n/serializers/__init__.py +0 -0
  132. wbcore/contrib/i18n/serializers/fields.py +20 -0
  133. wbcore/contrib/i18n/serializers/mixins.py +13 -0
  134. wbcore/contrib/i18n/tests/conftest.py +11 -0
  135. wbcore/contrib/i18n/tests/test_viewsets.py +67 -0
  136. wbcore/contrib/i18n/translation.py +140 -0
  137. wbcore/contrib/i18n/viewsets.py +36 -0
  138. wbcore/contrib/icons/backends/default.py +1 -0
  139. wbcore/contrib/icons/backends/material.py +1 -0
  140. wbcore/contrib/icons/icons.py +5 -8
  141. wbcore/contrib/io/admin.py +1 -0
  142. wbcore/contrib/io/backends/mail.py +3 -2
  143. wbcore/contrib/io/backends/utils.py +14 -17
  144. wbcore/contrib/io/exceptions.py +8 -0
  145. wbcore/contrib/io/factories.py +1 -1
  146. wbcore/contrib/io/import_export/backends/mail.py +1 -0
  147. wbcore/contrib/io/import_export/backends/sftp.py +29 -20
  148. wbcore/contrib/io/import_export/backends/stream.py +2 -2
  149. wbcore/contrib/io/import_export/parsers/__init__.py +0 -0
  150. wbcore/contrib/io/import_export/parsers/base_csv.py +36 -0
  151. wbcore/contrib/io/import_export/parsers/resources.py +50 -0
  152. wbcore/contrib/io/imports.py +33 -25
  153. wbcore/contrib/io/locale/de/LC_MESSAGES/django.po +114 -22
  154. wbcore/contrib/io/locale/de/LC_MESSAGES/django.po.translated +103 -0
  155. wbcore/contrib/io/locale/en/LC_MESSAGES/django.po +138 -0
  156. wbcore/contrib/io/locale/fr/LC_MESSAGES/django.po +138 -0
  157. wbcore/contrib/io/migrations/0008_importsource_resource_kwargs.py +18 -0
  158. wbcore/contrib/io/models.py +65 -45
  159. wbcore/contrib/io/resources.py +0 -6
  160. wbcore/contrib/io/serializers.py +2 -2
  161. wbcore/contrib/io/signals.py +4 -0
  162. wbcore/contrib/io/tests/test_backends.py +19 -13
  163. wbcore/contrib/io/tests/test_exports.py +1 -1
  164. wbcore/contrib/io/tests/test_imports.py +1 -1
  165. wbcore/contrib/io/tests/test_models.py +47 -14
  166. wbcore/contrib/io/tests/test_viewsets.py +271 -0
  167. wbcore/contrib/io/viewset_mixins.py +41 -54
  168. wbcore/contrib/notifications/admin.py +1 -0
  169. wbcore/contrib/notifications/apps.py +2 -1
  170. wbcore/contrib/notifications/backends/abstract_backend.py +2 -4
  171. wbcore/contrib/notifications/backends/firebase/backends.py +5 -2
  172. wbcore/contrib/notifications/dispatch.py +18 -7
  173. wbcore/contrib/notifications/factories/notification_types.py +1 -0
  174. wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po +25 -19
  175. wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po.translated +63 -0
  176. wbcore/contrib/notifications/locale/en/LC_MESSAGES/django.po +61 -0
  177. wbcore/contrib/notifications/locale/fr/LC_MESSAGES/django.po +62 -0
  178. wbcore/contrib/notifications/migrations/0008_notificationtype_is_lock.py +18 -0
  179. wbcore/contrib/notifications/migrations/0009_alter_notificationtypesetting_options_and_more.py +32 -0
  180. wbcore/contrib/notifications/models/notification_types.py +67 -24
  181. wbcore/contrib/notifications/serializers/notification_types.py +16 -1
  182. wbcore/contrib/notifications/tests/test_models/test_tokens.py +8 -0
  183. wbcore/contrib/notifications/tests/test_serializers/test_notification_types.py +5 -0
  184. wbcore/contrib/notifications/tests/test_viewsets/test_notification_types.py +3 -5
  185. wbcore/contrib/notifications/utils.py +3 -2
  186. wbcore/contrib/notifications/viewsets/configs/notification_types.py +28 -6
  187. wbcore/contrib/notifications/viewsets/menus.py +1 -1
  188. wbcore/contrib/notifications/viewsets/notification_types.py +12 -2
  189. wbcore/contrib/pandas/fields.py +38 -10
  190. wbcore/contrib/pandas/filters.py +4 -1
  191. wbcore/contrib/pandas/filterset.py +8 -7
  192. wbcore/contrib/pandas/tests/test_fields/test_number_fields.py +2 -7
  193. wbcore/contrib/pandas/utils.py +1 -1
  194. wbcore/contrib/pandas/views.py +14 -13
  195. wbcore/contrib/tags/models/tags.py +4 -1
  196. wbcore/contrib/workflow/factories/display.py +2 -2
  197. wbcore/contrib/workflow/factories/transition.py +16 -15
  198. wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po +457 -566
  199. wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po.translated +1326 -0
  200. wbcore/contrib/workflow/locale/en/LC_MESSAGES/django.po +1102 -0
  201. wbcore/contrib/workflow/locale/fr/LC_MESSAGES/django.po +1114 -0
  202. wbcore/contrib/workflow/models/data.py +7 -4
  203. wbcore/contrib/workflow/models/process.py +2 -2
  204. wbcore/contrib/workflow/models/step.py +57 -15
  205. wbcore/contrib/workflow/serializers/data.py +8 -8
  206. wbcore/contrib/workflow/serializers/process.py +3 -2
  207. wbcore/contrib/workflow/tests/conftest.py +224 -0
  208. wbcore/contrib/workflow/tests/test_dispatch.py +82 -77
  209. wbcore/contrib/workflow/tests/test_displays.py +10 -88
  210. wbcore/contrib/workflow/tests/test_filters.py +57 -40
  211. wbcore/contrib/workflow/tests/test_models/step/test_decision_step.py +71 -68
  212. wbcore/contrib/workflow/tests/test_models/step/test_email_step.py +78 -38
  213. wbcore/contrib/workflow/tests/test_models/step/test_finish_step.py +152 -90
  214. wbcore/contrib/workflow/tests/test_models/step/test_join_step.py +100 -110
  215. wbcore/contrib/workflow/tests/test_models/step/test_step.py +168 -33
  216. wbcore/contrib/workflow/tests/test_models/test_condition.py +1 -1
  217. wbcore/contrib/workflow/tests/test_models/test_workflow.py +3 -3
  218. wbcore/contrib/workflow/tests/test_serializers.py +172 -150
  219. wbcore/contrib/workflow/tests/test_viewsets.py +264 -323
  220. wbcore/contrib/workflow/tests/test_workflow_assignees.py +215 -205
  221. wbcore/contrib/workflow/viewsets/process.py +4 -1
  222. wbcore/contrib/workflow/workflows/assignees.py +12 -7
  223. wbcore/dynamic_preferences_registry.py +102 -0
  224. wbcore/enums.py +2 -51
  225. wbcore/filters/fields/choices.py +4 -6
  226. wbcore/filters/fields/content_type.py +15 -4
  227. wbcore/filters/fields/datetime.py +50 -25
  228. wbcore/filters/fields/models.py +18 -9
  229. wbcore/filters/fields/numbers.py +9 -8
  230. wbcore/filters/filterset.py +27 -6
  231. wbcore/filters/mixins.py +41 -42
  232. wbcore/forms.py +6 -6
  233. wbcore/fsm/markdown_extensions.py +1 -1
  234. wbcore/fsm/mixins.py +20 -6
  235. wbcore/locale/de/LC_MESSAGES/django.po +982 -397
  236. wbcore/locale/de/LC_MESSAGES/django.po.translated +1580 -0
  237. wbcore/locale/en/LC_MESSAGES/django.po +1234 -0
  238. wbcore/locale/fr/LC_MESSAGES/django.po +1235 -0
  239. wbcore/markdown/models.py +8 -5
  240. wbcore/markdown/views.py +1 -1
  241. wbcore/menus/menus.py +2 -2
  242. wbcore/metadata/configs/buttons/bases.py +10 -7
  243. wbcore/metadata/configs/buttons/buttons.py +2 -1
  244. wbcore/metadata/configs/buttons/enums.py +50 -0
  245. wbcore/metadata/configs/buttons/view_config.py +13 -46
  246. wbcore/metadata/configs/display/display.py +2 -2
  247. wbcore/metadata/configs/display/formatting.py +6 -9
  248. wbcore/metadata/configs/display/instance_display/display.py +5 -2
  249. wbcore/metadata/configs/display/instance_display/pages.py +1 -1
  250. wbcore/metadata/configs/display/instance_display/shortcuts.py +1 -1
  251. wbcore/metadata/configs/display/list_display.py +54 -40
  252. wbcore/metadata/configs/display/models.py +6 -0
  253. wbcore/metadata/configs/display/view_config.py +11 -9
  254. wbcore/metadata/configs/endpoints.py +11 -4
  255. wbcore/metadata/configs/fields.py +6 -1
  256. wbcore/metadata/configs/filter_fields.py +12 -13
  257. wbcore/metadata/configs/identifiers.py +3 -1
  258. wbcore/metadata/tests/test_buttons.py +13 -16
  259. wbcore/models/fields.py +2 -2
  260. wbcore/pagination.py +1 -2
  261. wbcore/permissions/permissions.py +2 -2
  262. wbcore/permissions/utils.py +2 -2
  263. wbcore/release_notes/display.py +2 -8
  264. wbcore/release_notes/serializers.py +2 -9
  265. wbcore/release_notes/viewsets.py +8 -2
  266. wbcore/reversion/viewsets/titles.py +4 -3
  267. wbcore/serializers/__init__.py +2 -0
  268. wbcore/serializers/fields/__init__.py +2 -1
  269. wbcore/serializers/fields/boolean.py +1 -1
  270. wbcore/serializers/fields/choice.py +28 -4
  271. wbcore/serializers/fields/datetime.py +45 -36
  272. wbcore/serializers/fields/fields.py +1 -1
  273. wbcore/serializers/fields/fsm.py +1 -1
  274. wbcore/serializers/fields/list.py +2 -5
  275. wbcore/serializers/fields/mixins.py +24 -11
  276. wbcore/serializers/fields/number.py +6 -23
  277. wbcore/serializers/fields/other.py +2 -10
  278. wbcore/serializers/fields/related.py +4 -6
  279. wbcore/serializers/fields/text.py +1 -1
  280. wbcore/serializers/fields/types.py +2 -0
  281. wbcore/serializers/serializers.py +12 -3
  282. wbcore/signals/__init__.py +1 -0
  283. wbcore/signals/clone.py +4 -0
  284. wbcore/signals/models.py +2 -6
  285. wbcore/tasks.py +2 -2
  286. wbcore/templates/wbcore/email_base_template.html +3 -3
  287. wbcore/test/e2e_helpers_methods/e2e_checks.py +10 -4
  288. wbcore/test/e2e_helpers_methods/e2e_helper_methods.py +4 -2
  289. wbcore/test/mixins.py +52 -102
  290. wbcore/test/tests.py +6 -9
  291. wbcore/test/utils.py +3 -4
  292. wbcore/tests/e2e/test_e2e.py +2 -2
  293. wbcore/tests/test_cache/test_decorators.py +4 -7
  294. wbcore/tests/test_configs.py +2 -5
  295. wbcore/tests/test_enums.py +2 -1
  296. wbcore/tests/test_fields/test_choice_fields.py +9 -1
  297. wbcore/tests/test_fields/test_number_fields.py +7 -15
  298. wbcore/tests/test_fields/test_other_fields.py +1 -2
  299. wbcore/tests/test_filters/test_mixins.py +35 -35
  300. wbcore/tests/test_list_display.py +0 -2
  301. wbcore/tests/test_models/test_mixins.py +1 -1
  302. wbcore/tests/test_utils/test_date.py +1 -1
  303. wbcore/tests/test_utils/test_date_builder.py +25 -1
  304. wbcore/tests/test_utils/test_primary.py +1 -1
  305. wbcore/urls.py +4 -0
  306. wbcore/utils/date.py +18 -2
  307. wbcore/utils/figures.py +2 -2
  308. wbcore/utils/models.py +21 -4
  309. wbcore/utils/reportlab.py +7 -0
  310. wbcore/utils/rrules.py +3 -1
  311. wbcore/utils/string_loader.py +1 -1
  312. wbcore/utils/strings.py +3 -3
  313. wbcore/utils/views.py +8 -3
  314. wbcore/viewsets/mixins.py +9 -4
  315. {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/METADATA +9 -5
  316. {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/RECORD +317 -271
  317. wbcore/contrib/geography/tests/test_serializers.py +0 -7
  318. wbcore/contrib/geography/tests/tests.py +0 -13
  319. wbcore/contrib/io/tests/tests.py +0 -19
  320. wbcore/contrib/workflow/tests/tests.py +0 -25
  321. {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,592 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ #, fuzzy
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: PACKAGE VERSION\n"
10
+ "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
12
+ "PO-Revision-Date: 2025-05-30 09:40+0000\n"
13
+ "Language-Team: French (https://app.transifex.com/stainly/teams/171242/fr/)\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Language: fr\n"
18
+ "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
19
+
20
+ #: contrib/authentication/admin.py:75
21
+ msgid "Main information"
22
+ msgstr ""
23
+
24
+ #: contrib/authentication/admin.py:76
25
+ msgid "Synchronization"
26
+ msgstr ""
27
+
28
+ #: contrib/authentication/admin.py:78
29
+ #: contrib/authentication/viewsets/display/users.py:68
30
+ msgid "Permissions"
31
+ msgstr ""
32
+
33
+ #: contrib/authentication/admin.py:151
34
+ msgid ""
35
+ "Your user does not have the \"Change user\" permission. In order to add "
36
+ "users, Django requires that your user account have both the \"Add user\" and"
37
+ " \"Change user\" permissions set."
38
+ msgstr ""
39
+
40
+ #: contrib/authentication/admin.py:175
41
+ #, python-format
42
+ msgid "%(name)s object with primary key %(key)r does not exist."
43
+ msgstr ""
44
+
45
+ #: contrib/authentication/admin.py:187
46
+ msgid "Password changed successfully."
47
+ msgstr ""
48
+
49
+ #: contrib/authentication/admin.py:208
50
+ #, python-format
51
+ msgid "Change password: %s"
52
+ msgstr ""
53
+
54
+ #: contrib/authentication/dynamic_preferences_registry.py:15
55
+ msgid "Immunity Period"
56
+ msgstr ""
57
+
58
+ #: contrib/authentication/dynamic_preferences_registry.py:16
59
+ msgid "Set the maximum number of hours a user can remain without registration"
60
+ msgstr ""
61
+
62
+ #: contrib/authentication/dynamic_preferences_registry.py:25
63
+ msgid "Default Token Validity (in Hours)"
64
+ msgstr ""
65
+
66
+ #: contrib/authentication/dynamic_preferences_registry.py:26
67
+ msgid ""
68
+ "If not specified, a newly created token will be valid for that amount of "
69
+ "hours"
70
+ msgstr ""
71
+
72
+ #: contrib/authentication/models/tokens.py:21
73
+ msgid "Valid Until"
74
+ msgstr ""
75
+
76
+ #: contrib/authentication/models/tokens.py:29
77
+ msgid "Number of allowed usage"
78
+ msgstr ""
79
+
80
+ #: contrib/authentication/models/tokens.py:30
81
+ msgid "Is Valid"
82
+ msgstr ""
83
+
84
+ #: contrib/authentication/models/tokens.py:32
85
+ #: contrib/authentication/viewsets/display/user_activities.py:18
86
+ #: contrib/authentication/viewsets/display/user_activities.py:64
87
+ #: contrib/authentication/viewsets/display/user_activities.py:80
88
+ msgid "User"
89
+ msgstr ""
90
+
91
+ #: contrib/authentication/models/tokens.py:138
92
+ msgid "Token"
93
+ msgstr ""
94
+
95
+ #: contrib/authentication/models/tokens.py:139
96
+ msgid "Tokens"
97
+ msgstr ""
98
+
99
+ #: contrib/authentication/models/users.py:25
100
+ msgid "No E-Mail provided"
101
+ msgstr ""
102
+
103
+ #: contrib/authentication/models/users.py:28
104
+ msgid "No Username provided"
105
+ msgstr ""
106
+
107
+ #: contrib/authentication/models/users.py:57
108
+ #: contrib/authentication/serializers/users.py:144
109
+ msgid "E-Mail"
110
+ msgstr ""
111
+
112
+ #: contrib/authentication/models/users.py:58
113
+ msgid "username"
114
+ msgstr ""
115
+
116
+ #: contrib/authentication/models/users.py:61
117
+ msgid "staff status"
118
+ msgstr ""
119
+
120
+ #: contrib/authentication/models/users.py:63
121
+ msgid "Specifies whether the user can log into this admin site."
122
+ msgstr ""
123
+
124
+ #: contrib/authentication/models/users.py:66
125
+ msgid "active"
126
+ msgstr ""
127
+
128
+ #: contrib/authentication/models/users.py:69
129
+ msgid ""
130
+ "Specifies whether this user should be treated as active. Unselect this "
131
+ "instead of deleting accounts."
132
+ msgstr ""
133
+
134
+ #: contrib/authentication/models/users.py:73
135
+ msgid "register"
136
+ msgstr ""
137
+
138
+ #: contrib/authentication/models/users.py:73
139
+ msgid "Specifies whether this user has registered its email. "
140
+ msgstr ""
141
+
142
+ #: contrib/authentication/models/users.py:75
143
+ msgid "date joined"
144
+ msgstr ""
145
+
146
+ #: contrib/authentication/models/users.py:84
147
+ msgid "user"
148
+ msgstr ""
149
+
150
+ #: contrib/authentication/models/users.py:85
151
+ msgid "users"
152
+ msgstr ""
153
+
154
+ #: contrib/authentication/models/users.py:140
155
+ msgid "You need to specify a username or a pair of first and last name"
156
+ msgstr ""
157
+
158
+ #: contrib/authentication/models/users_activities.py:18
159
+ #: contrib/authentication/models/users_activities.py:21
160
+ msgid "Success"
161
+ msgstr ""
162
+
163
+ #: contrib/authentication/models/users_activities.py:19
164
+ #: contrib/authentication/models/users_activities.py:21
165
+ msgid "Failed"
166
+ msgstr ""
167
+
168
+ #: contrib/authentication/models/users_activities.py:24
169
+ #: contrib/authentication/templates/password_reset_done.html:11
170
+ #: contrib/authentication/viewsets/users.py:172
171
+ msgid "Login"
172
+ msgstr ""
173
+
174
+ #: contrib/authentication/models/users_activities.py:38
175
+ #, python-brace-format
176
+ msgid "Activity of {user} at {date}"
177
+ msgstr ""
178
+
179
+ #: contrib/authentication/models/users_activities.py:41
180
+ msgid "User Login Activity"
181
+ msgstr ""
182
+
183
+ #: contrib/authentication/models/users_activities.py:42
184
+ msgid "User Login Activities"
185
+ msgstr ""
186
+
187
+ #: contrib/authentication/serializers/users.py:30
188
+ msgid "Old password"
189
+ msgstr ""
190
+
191
+ #: contrib/authentication/serializers/users.py:31
192
+ msgid "New Password"
193
+ msgstr ""
194
+
195
+ #: contrib/authentication/serializers/users.py:32
196
+ msgid "Confirm new Password"
197
+ msgstr ""
198
+
199
+ #: contrib/authentication/serializers/users.py:36
200
+ msgid "No request found"
201
+ msgstr ""
202
+
203
+ #: contrib/authentication/serializers/users.py:41
204
+ msgid "Wrong password"
205
+ msgstr ""
206
+
207
+ #: contrib/authentication/serializers/users.py:47
208
+ msgid "Password don't match"
209
+ msgstr ""
210
+
211
+ #: contrib/authentication/serializers/users.py:53
212
+ #: contrib/authentication/serializers/users.py:54
213
+ msgid "New and old password cannot be the same"
214
+ msgstr ""
215
+
216
+ #: contrib/authentication/serializers/users.py:141
217
+ #: contrib/authentication/viewsets/display/users.py:50
218
+ msgid "Is Active"
219
+ msgstr ""
220
+
221
+ #: contrib/authentication/serializers/users.py:143
222
+ msgid "Last Connection"
223
+ msgstr ""
224
+
225
+ #: contrib/authentication/serializers/users.py:145
226
+ msgid "Username"
227
+ msgstr ""
228
+
229
+ #: contrib/authentication/serializers/users.py:146
230
+ #: contrib/authentication/viewsets/buttons/users.py:55
231
+ msgid "Profile"
232
+ msgstr ""
233
+
234
+ #: contrib/authentication/serializers/users.py:208
235
+ msgid "You need to assign a profile or add a valid email address"
236
+ msgstr ""
237
+
238
+ #: contrib/authentication/serializers/users.py:210
239
+ msgid "You need to assign a profile or add a valid last name"
240
+ msgstr ""
241
+
242
+ #: contrib/authentication/templates/activate_confirm.html:5
243
+ msgid "Register Account"
244
+ msgstr ""
245
+
246
+ #: contrib/authentication/templates/base.html:12
247
+ #: contrib/authentication/templates/password_reset_done.html:6
248
+ #: contrib/authentication/templates/password_reset_form.html:6
249
+ #: contrib/authentication/templates/password_reset_form.html:18
250
+ #: contrib/authentication/templates/password_reset_sent.html:5
251
+ #: contrib/authentication/templates/reset_password.html:5
252
+ msgid "Password Reset"
253
+ msgstr ""
254
+
255
+ #: contrib/authentication/templates/base.html:128
256
+ msgid "if you see this, something is wrong!"
257
+ msgstr ""
258
+
259
+ #: contrib/authentication/templates/email_base_template.html:325
260
+ #: contrib/authentication/templates/password_reset_email.html:10
261
+ msgid ""
262
+ "This E-Mail is autogenerated by Stainly. If you need more information, "
263
+ "please visit the Stainly-Bench."
264
+ msgstr ""
265
+
266
+ #: contrib/authentication/templates/password_reset_done.html:8
267
+ msgid "Password reset complete"
268
+ msgstr ""
269
+
270
+ #: contrib/authentication/templates/password_reset_done.html:9
271
+ msgid "Your Password has been set. You may go ahead and login."
272
+ msgstr ""
273
+
274
+ #: contrib/authentication/templates/password_reset_email.html:3
275
+ #, python-format
276
+ msgid ""
277
+ "Reset Password You're receiving this email because you requested a password "
278
+ "reset for your user account at %(site_name)s. Please click and choose a new "
279
+ "password"
280
+ msgstr ""
281
+
282
+ #: contrib/authentication/templates/password_reset_email.html:8
283
+ #: contrib/authentication/templates/password_reset_email_html.html:8
284
+ #: contrib/authentication/templates/password_reset_email_html.html:29
285
+ #: contrib/authentication/viewsets/buttons/users.py:51
286
+ #: contrib/authentication/viewsets/buttons/users.py:52
287
+ msgid "Reset Password"
288
+ msgstr ""
289
+
290
+ #: contrib/authentication/templates/password_reset_email_html.html:16
291
+ #, python-format
292
+ msgid ""
293
+ "You're receiving this email because you requested a password reset for your "
294
+ "user account at %(site_name)s."
295
+ msgstr ""
296
+
297
+ #: contrib/authentication/templates/password_reset_email_html.html:17
298
+ msgid "Please click and choose a new password"
299
+ msgstr ""
300
+
301
+ #: contrib/authentication/templates/password_reset_form.html:8
302
+ msgid "Password Reset Form"
303
+ msgstr ""
304
+
305
+ #: contrib/authentication/templates/password_reset_form.html:9
306
+ msgid "Please enter your new password."
307
+ msgstr ""
308
+
309
+ #: contrib/authentication/templates/password_reset_form.html:20
310
+ msgid "Password reset failed"
311
+ msgstr ""
312
+
313
+ #: contrib/authentication/templates/password_reset_form.html:21
314
+ msgid ""
315
+ "The password reset link was invalid, possibly because it has already been "
316
+ "used. Please request a new password reset."
317
+ msgstr ""
318
+
319
+ #: contrib/authentication/templates/password_reset_sent.html:7
320
+ msgid "Password reset sent"
321
+ msgstr ""
322
+
323
+ #: contrib/authentication/templates/password_reset_sent.html:8
324
+ msgid ""
325
+ "We’ve emailed you instructions for setting your password, if an account "
326
+ "exists with the email you entered. You should receive them shortly."
327
+ msgstr ""
328
+
329
+ #: contrib/authentication/templates/password_reset_sent.html:9
330
+ msgid ""
331
+ "If you don’t receive an email, please make sure you’ve entered the address "
332
+ "you registered with, and check your spam folder."
333
+ msgstr ""
334
+
335
+ #: contrib/authentication/templates/user_registration_email.html:8
336
+ msgid "Confirm Your Email"
337
+ msgstr ""
338
+
339
+ #: contrib/authentication/templates/user_registration_email.html:16
340
+ msgid "Please click on the link to confirm your registration."
341
+ msgstr ""
342
+
343
+ #: contrib/authentication/templates/user_registration_email.html:28
344
+ msgid "Confirm Email"
345
+ msgstr ""
346
+
347
+ #: contrib/authentication/viewsets/buttons/users.py:15
348
+ msgid "See Profile"
349
+ msgstr ""
350
+
351
+ #: contrib/authentication/viewsets/buttons/users.py:19
352
+ msgid "Resetting Settings"
353
+ msgstr ""
354
+
355
+ #: contrib/authentication/viewsets/buttons/users.py:21
356
+ msgid "<p>This will reset all widgets on all pages.</p>"
357
+ msgstr ""
358
+
359
+ #: contrib/authentication/viewsets/buttons/users.py:23
360
+ #: contrib/authentication/viewsets/buttons/users.py:24
361
+ msgid "Reset Settings"
362
+ msgstr ""
363
+
364
+ #: contrib/authentication/viewsets/buttons/users.py:29
365
+ msgid "Changing Password"
366
+ msgstr ""
367
+
368
+ #: contrib/authentication/viewsets/buttons/users.py:31
369
+ msgid "<p>Change Password</p>"
370
+ msgstr ""
371
+
372
+ #: contrib/authentication/viewsets/buttons/users.py:34
373
+ #: contrib/authentication/viewsets/buttons/users.py:35
374
+ msgid "Change Password"
375
+ msgstr ""
376
+
377
+ #: contrib/authentication/viewsets/buttons/users.py:46
378
+ msgid "Resetting Password"
379
+ msgstr ""
380
+
381
+ #: contrib/authentication/viewsets/buttons/users.py:48
382
+ msgid "<p>Reset Password</p>"
383
+ msgstr ""
384
+
385
+ #: contrib/authentication/viewsets/buttons/users.py:54
386
+ #: contrib/authentication/viewsets/display/users.py:70
387
+ #: contrib/authentication/viewsets/menu/user_activities.py:6
388
+ #: contrib/authentication/viewsets/titles/user_activities.py:10
389
+ msgid "User Activity"
390
+ msgstr ""
391
+
392
+ #: contrib/authentication/viewsets/display/user_activities.py:17
393
+ #: contrib/authentication/viewsets/display/user_activities.py:63
394
+ msgid "IP"
395
+ msgstr ""
396
+
397
+ #: contrib/authentication/viewsets/display/user_activities.py:19
398
+ #: contrib/authentication/viewsets/display/user_activities.py:65
399
+ msgid "First Login"
400
+ msgstr ""
401
+
402
+ #: contrib/authentication/viewsets/display/user_activities.py:20
403
+ #: contrib/authentication/viewsets/display/user_activities.py:66
404
+ msgid "Latest Refresh"
405
+ msgstr ""
406
+
407
+ #: contrib/authentication/viewsets/display/user_activities.py:21
408
+ #: contrib/authentication/viewsets/display/user_activities.py:67
409
+ msgid "Time Online (Minutes)"
410
+ msgstr ""
411
+
412
+ #: contrib/authentication/viewsets/display/user_activities.py:22
413
+ #: contrib/authentication/viewsets/display/user_activities.py:68
414
+ msgid "Agent Info"
415
+ msgstr ""
416
+
417
+ #: contrib/authentication/viewsets/display/users.py:19
418
+ msgid "Name"
419
+ msgstr ""
420
+
421
+ #: contrib/authentication/viewsets/display/users.py:20
422
+ msgid "Code Name"
423
+ msgstr ""
424
+
425
+ #: contrib/authentication/viewsets/display/users.py:21
426
+ msgid "Content Type"
427
+ msgstr ""
428
+
429
+ #: contrib/authentication/viewsets/display/users.py:38
430
+ msgid "Token (Sensitive information: handle with care)"
431
+ msgstr ""
432
+
433
+ #: contrib/authentication/viewsets/display/users.py:49
434
+ msgid "Email"
435
+ msgstr ""
436
+
437
+ #: contrib/authentication/viewsets/display/users.py:51
438
+ msgid "Joined"
439
+ msgstr ""
440
+
441
+ #: contrib/authentication/viewsets/display/users.py:52
442
+ msgid "Latest Connection"
443
+ msgstr ""
444
+
445
+ #: contrib/authentication/viewsets/display/users.py:67
446
+ msgid "Groups"
447
+ msgstr ""
448
+
449
+ #: contrib/authentication/viewsets/menu/user_activities.py:18
450
+ #: contrib/authentication/viewsets/titles/user_activities.py:21
451
+ msgid "User Activity Table"
452
+ msgstr ""
453
+
454
+ #: contrib/authentication/viewsets/menu/user_activities.py:30
455
+ #: contrib/authentication/viewsets/titles/user_activities.py:26
456
+ msgid "User Activity Chart"
457
+ msgstr ""
458
+
459
+ #: contrib/authentication/viewsets/menu/users.py:7
460
+ #: contrib/authentication/viewsets/titles/users.py:24
461
+ msgid "Users"
462
+ msgstr ""
463
+
464
+ #: contrib/authentication/viewsets/menu/users.py:13
465
+ msgid "Create New User"
466
+ msgstr ""
467
+
468
+ #: contrib/authentication/viewsets/titles/user_activities.py:16
469
+ #: contrib/authentication/viewsets/titles/user_activities.py:32
470
+ #, python-brace-format
471
+ msgid "User Activity of {user}"
472
+ msgstr ""
473
+
474
+ #: contrib/authentication/viewsets/titles/users.py:11
475
+ #, python-brace-format
476
+ msgid "Permissions for {email}"
477
+ msgstr ""
478
+
479
+ #: contrib/authentication/viewsets/titles/users.py:16
480
+ msgid "Your Profile"
481
+ msgstr ""
482
+
483
+ #: contrib/authentication/viewsets/titles/users.py:21
484
+ msgid "User: {{email}}"
485
+ msgstr ""
486
+
487
+ #: contrib/authentication/viewsets/titles/users.py:27
488
+ msgid "New User"
489
+ msgstr ""
490
+
491
+ #: contrib/authentication/viewsets/user_activities.py:178
492
+ msgid "<b>User Activity</b>"
493
+ msgstr ""
494
+
495
+ #: contrib/authentication/viewsets/user_activities.py:179
496
+ msgid "Time"
497
+ msgstr ""
498
+
499
+ #: contrib/authentication/viewsets/user_activities.py:180
500
+ msgid "Cummulative time"
501
+ msgstr ""
502
+
503
+ #: contrib/authentication/viewsets/user_activities.py:191
504
+ msgid "Hour"
505
+ msgstr ""
506
+
507
+ #: contrib/authentication/viewsets/user_activities.py:196
508
+ msgid "Day"
509
+ msgstr ""
510
+
511
+ #: contrib/authentication/viewsets/user_activities.py:201
512
+ msgid "Week"
513
+ msgstr ""
514
+
515
+ #: contrib/authentication/viewsets/user_activities.py:206
516
+ msgid "Month"
517
+ msgstr ""
518
+
519
+ #: contrib/authentication/viewsets/users.py:77
520
+ msgid ""
521
+ "If the email matches a user, it will receive an email inviting him to reset "
522
+ "his password."
523
+ msgstr ""
524
+
525
+ #: contrib/authentication/viewsets/users.py:94
526
+ msgid "first and last name are too long. please provider a shorter name."
527
+ msgstr ""
528
+
529
+ #: contrib/authentication/viewsets/users.py:101
530
+ msgid ""
531
+ "password is too long. please provider a password shorter than 128 "
532
+ "characters."
533
+ msgstr ""
534
+
535
+ #: contrib/authentication/viewsets/users.py:109
536
+ msgid ""
537
+ "email is too long. please provider an email shorter than 255 characters."
538
+ msgstr ""
539
+
540
+ #: contrib/authentication/viewsets/users.py:128
541
+ msgid "Activate your account."
542
+ msgstr ""
543
+
544
+ #: contrib/authentication/viewsets/users.py:136
545
+ msgid "Please confirm your email address to complete the registration"
546
+ msgstr ""
547
+
548
+ #: contrib/authentication/viewsets/users.py:141
549
+ msgid "Your account already exists"
550
+ msgstr ""
551
+
552
+ #: contrib/authentication/viewsets/users.py:145
553
+ msgid "Something went wrong with the submitted data, please try again later"
554
+ msgstr ""
555
+
556
+ #: contrib/authentication/viewsets/users.py:149
557
+ msgid "email, first_name, last_name and password must be provided"
558
+ msgstr ""
559
+
560
+ #: contrib/authentication/viewsets/users.py:170
561
+ msgid "Activation Successful"
562
+ msgstr ""
563
+
564
+ #: contrib/authentication/viewsets/users.py:171
565
+ msgid "You are successfully registered. Please login"
566
+ msgstr ""
567
+
568
+ #: contrib/authentication/viewsets/users.py:184
569
+ msgid "Activation Failed"
570
+ msgstr ""
571
+
572
+ #: contrib/authentication/viewsets/users.py:186
573
+ msgid ""
574
+ "The registration link you clicked was probably expired or your account is "
575
+ "already activated. Please try to register again."
576
+ msgstr ""
577
+
578
+ #: contrib/authentication/viewsets/users.py:188
579
+ msgid "Register"
580
+ msgstr ""
581
+
582
+ #: contrib/authentication/viewsets/users.py:276
583
+ msgid "Password changed."
584
+ msgstr ""
585
+
586
+ #: contrib/authentication/viewsets/users.py:319
587
+ msgid "Reset Password E-Mail sent: Check your mailbox"
588
+ msgstr ""
589
+
590
+ #: contrib/authentication/viewsets/users.py:321
591
+ msgid "Reset Password Failed. Please contact an administrator"
592
+ msgstr ""
@@ -166,7 +166,7 @@ class User(AbstractBaseUser, PermissionsMixin):
166
166
  return self.profile.last_name
167
167
 
168
168
  @classmethod
169
- def get_endpoint_basename(self):
169
+ def get_endpoint_basename(cls):
170
170
  return "wbcore:authentication:user"
171
171
 
172
172
  @classmethod
@@ -187,7 +187,7 @@ class Group(DjangoBaseGroup):
187
187
  proxy = True
188
188
 
189
189
  @classmethod
190
- def get_endpoint_basename(self):
190
+ def get_endpoint_basename(cls):
191
191
  return "wbcore:authentication:group"
192
192
 
193
193
  @classmethod
@@ -208,7 +208,7 @@ class Permission(DjangoBasePermission):
208
208
  proxy = True
209
209
 
210
210
  @classmethod
211
- def get_endpoint_basename(self):
211
+ def get_endpoint_basename(cls):
212
212
  return "wbcore:authentication:permission"
213
213
 
214
214
  @classmethod
@@ -59,7 +59,7 @@ class UserActivity(models.Model):
59
59
  return Subquery(qs.order_by("-latest_refresh").values("latest_refresh")[:1], output_field=DateTimeField())
60
60
 
61
61
  @classmethod
62
- def get_endpoint_basename(self):
62
+ def get_endpoint_basename(cls):
63
63
  return "wbcore:authentication:useractivity"
64
64
 
65
65
  @classmethod
@@ -60,7 +60,7 @@ class ChangePasswordSerializer(wb_serializers.Serializer):
60
60
  validate_password(new_password)
61
61
  return super().validate(data)
62
62
  except serializers.ValidationError as e:
63
- raise serializers.ValidationError({"new_password": e, "confirm_password": e})
63
+ raise serializers.ValidationError({"new_password": e, "confirm_password": e}) from e
64
64
 
65
65
  class Meta:
66
66
  fields = ("current_password", "new_password", "confirm_password")
@@ -336,7 +336,7 @@ class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
336
336
  raise exceptions.AuthenticationFailed(
337
337
  self.error_messages["no_active_account"],
338
338
  "no_active_account",
339
- )
339
+ ) from None
340
340
  return data
341
341
 
342
342
 
@@ -9,7 +9,7 @@ from rest_framework import exceptions
9
9
  from rest_framework.test import APIRequestFactory
10
10
 
11
11
  from wbcore.contrib.authentication.authentication import inject_short_lived_token
12
- from wbcore.contrib.authentication.models import Token
12
+ from wbcore.contrib.authentication.models import Token, User
13
13
 
14
14
  fake = Faker()
15
15
  now = datetime.now()
@@ -17,9 +17,9 @@ now = datetime.now()
17
17
 
18
18
  class TestTokenUnitTests:
19
19
  @pytest.fixture
20
- def request_with_user(user):
20
+ def request_with_user(self: User):
21
21
  request = APIRequestFactory().get("/")
22
- request.user = user
22
+ request.user = self
23
23
  return request
24
24
 
25
25
  def setup_method(self):
@@ -155,7 +155,6 @@ class TestRegistrationAndActivationViews:
155
155
  # Arrange
156
156
  mock_get_user = mocker.patch(
157
157
  "wbcore.contrib.authentication.models.users.UserManager.get",
158
- side_effect=Exception if should_fail else None,
159
158
  return_value=None if should_fail else test_user,
160
159
  )
161
160
  mock_reset_password = mocker.patch.object(test_user, "reset_password")
@@ -1,7 +1,5 @@
1
1
  from django.contrib.auth import views as auth_views
2
2
  from django.urls import include, path, reverse_lazy
3
- from dynamic_preferences.api.viewsets import GlobalPreferencesViewSet
4
- from dynamic_preferences.users.viewsets import UserPreferencesViewSet
5
3
  from rest_framework_simplejwt.views import ( # TokenObtainPairView,; TokenRefreshView,
6
4
  TokenVerifyView,
7
5
  )
@@ -36,8 +34,6 @@ router.register(r"group", GroupViewSet)
36
34
  router.register(r"permission", PermissionViewSet)
37
35
  router.register(r"user", UserModelViewSet, basename="user")
38
36
  router.register(r"userprofile", UserProfileModelViewSet, basename="userprofile")
39
- router.register(r"global_preferences", GlobalPreferencesViewSet, basename="global_preferences")
40
- router.register(r"user_preferences", UserPreferencesViewSet, basename="user_preferences")
41
37
 
42
38
  router.register(r"useractivitychart", UserActivityChart, basename="useractivitychart")
43
39
  router.register(r"useractivity", UserActivityModelViewSet, basename="useractivity")