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,271 @@
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
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
11
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+
19
+ #: contrib/documents/filters.py:14
20
+ #: contrib/documents/serializers/shareable_links.py:15
21
+ #: contrib/documents/viewsets/display/shareable_links.py:30
22
+ msgid "Valid"
23
+ msgstr ""
24
+
25
+ #: contrib/documents/filters.py:19
26
+ #: contrib/documents/viewsets/display/shareable_links.py:22
27
+ msgid "Link"
28
+ msgstr ""
29
+
30
+ #: contrib/documents/filters.py:50
31
+ #: contrib/documents/models/document_types.py:36
32
+ #: contrib/documents/viewsets/menu/documents.py:17
33
+ #: contrib/documents/viewsets/titles/document_types.py:8
34
+ msgid "Document Types"
35
+ msgstr ""
36
+
37
+ #: contrib/documents/filters.py:70 contrib/documents/filters.py:76
38
+ msgid "Document Count"
39
+ msgstr ""
40
+
41
+ #: contrib/documents/models/document_model_relationships.py:31
42
+ msgid "Document Model Relationship"
43
+ msgstr ""
44
+
45
+ #: contrib/documents/models/document_model_relationships.py:32
46
+ msgid "Document Model Relationships"
47
+ msgstr ""
48
+
49
+ #: contrib/documents/models/document_types.py:12
50
+ #: contrib/documents/viewsets/display/document_types.py:18
51
+ msgid "Parent"
52
+ msgstr ""
53
+
54
+ #: contrib/documents/models/document_types.py:35
55
+ #: contrib/documents/models/documents.py:63
56
+ msgid "Document Type"
57
+ msgstr ""
58
+
59
+ #: contrib/documents/models/documents.py:57
60
+ msgid "Description"
61
+ msgstr ""
62
+
63
+ #: contrib/documents/models/documents.py:58
64
+ msgid "File"
65
+ msgstr ""
66
+
67
+ #: contrib/documents/models/documents.py:65
68
+ #: contrib/documents/serializers/documents.py:11
69
+ msgid "System Created"
70
+ msgstr ""
71
+
72
+ #: contrib/documents/models/documents.py:66
73
+ msgid "System Key"
74
+ msgstr ""
75
+
76
+ #: contrib/documents/models/documents.py:68
77
+ #: contrib/documents/viewsets/display/documents.py:18
78
+ msgid "Valid From"
79
+ msgstr ""
80
+
81
+ #: contrib/documents/models/documents.py:69
82
+ #: contrib/documents/models/shareable_links.py:16
83
+ #: contrib/documents/viewsets/display/documents.py:19
84
+ #: contrib/documents/viewsets/display/shareable_links.py:20
85
+ msgid "Valid Until"
86
+ msgstr ""
87
+
88
+ #: contrib/documents/models/documents.py:71
89
+ msgid "Created"
90
+ msgstr ""
91
+
92
+ #: contrib/documents/models/documents.py:72
93
+ #: contrib/documents/viewsets/display/documents.py:20
94
+ msgid "Updated"
95
+ msgstr ""
96
+
97
+ #: contrib/documents/models/documents.py:237
98
+ msgid "Document"
99
+ msgstr ""
100
+
101
+ #: contrib/documents/models/documents.py:238
102
+ #: contrib/documents/viewsets/menu/documents.py:6
103
+ #: contrib/documents/viewsets/titles/documents.py:17
104
+ msgid "Documents"
105
+ msgstr ""
106
+
107
+ #: contrib/documents/models/documents.py:270
108
+ msgid "A file was shared with you"
109
+ msgstr ""
110
+
111
+ #: contrib/documents/models/documents.py:275
112
+ #, python-brace-format
113
+ msgid ""
114
+ "\n"
115
+ " <p>Please find your {document_type} \"{filename}\" under this <a "
116
+ "href={link}>link</a></p>\n"
117
+ " "
118
+ msgstr ""
119
+
120
+ #: contrib/documents/models/documents.py:281
121
+ #, python-brace-format
122
+ msgid ""
123
+ "\n"
124
+ " <p>Please find the {document_type} \"{filename}\" attached to this "
125
+ "mail.</p>\n"
126
+ " "
127
+ msgstr ""
128
+
129
+ #: contrib/documents/models/shareable_links.py:17
130
+ #: contrib/documents/viewsets/display/shareable_links.py:21
131
+ msgid "One Time Link"
132
+ msgstr ""
133
+
134
+ #: contrib/documents/models/shareable_links.py:59
135
+ #: contrib/documents/viewsets/titles/shareable_links.py:11
136
+ msgid "Shareable Link"
137
+ msgstr ""
138
+
139
+ #: contrib/documents/models/shareable_links.py:60
140
+ #: contrib/documents/viewsets/titles/shareable_links.py:8
141
+ msgid "Shareable Links"
142
+ msgstr ""
143
+
144
+ #: contrib/documents/models/shareable_links.py:90
145
+ msgid "Shareable Link Access"
146
+ msgstr ""
147
+
148
+ #: contrib/documents/models/shareable_links.py:91
149
+ msgid "Shareable Link Accesses"
150
+ msgstr ""
151
+
152
+ #: contrib/documents/viewsets/buttons/documents.py:18
153
+ msgid "All Children"
154
+ msgstr ""
155
+
156
+ #: contrib/documents/viewsets/buttons/documents.py:23
157
+ msgid "All Documents"
158
+ msgstr ""
159
+
160
+ #: contrib/documents/viewsets/buttons/documents.py:32
161
+ msgid "Recipient"
162
+ msgstr ""
163
+
164
+ #: contrib/documents/viewsets/buttons/documents.py:38
165
+ msgid "Download"
166
+ msgstr ""
167
+
168
+ #: contrib/documents/viewsets/buttons/documents.py:44
169
+ msgid "Send Mail"
170
+ msgstr ""
171
+
172
+ #: contrib/documents/viewsets/buttons/documents.py:45
173
+ msgid "<p>Send this document as mail?</p>"
174
+ msgstr ""
175
+
176
+ #: contrib/documents/viewsets/buttons/documents.py:46
177
+ msgid "Sending Mail"
178
+ msgstr ""
179
+
180
+ #: contrib/documents/viewsets/buttons/documents.py:47
181
+ msgid "Send document as mail"
182
+ msgstr ""
183
+
184
+ #: contrib/documents/viewsets/buttons/shareable_links.py:15
185
+ #: contrib/documents/viewsets/buttons/shareable_links.py:18
186
+ msgid "Invalidate"
187
+ msgstr ""
188
+
189
+ #: contrib/documents/viewsets/buttons/shareable_links.py:17
190
+ msgid "<p> Are you sure you want to invalidate this link? </p>"
191
+ msgstr ""
192
+
193
+ #: contrib/documents/viewsets/buttons/shareable_links.py:19
194
+ msgid "Invalidation"
195
+ msgstr ""
196
+
197
+ #: contrib/documents/viewsets/display/document_model_relationships.py:13
198
+ #: contrib/documents/viewsets/display/documents.py:17
199
+ msgid "Type"
200
+ msgstr ""
201
+
202
+ #: contrib/documents/viewsets/display/document_model_relationships.py:14
203
+ msgid "Instance"
204
+ msgstr ""
205
+
206
+ #: contrib/documents/viewsets/display/document_types.py:17
207
+ #: contrib/documents/viewsets/display/documents.py:16
208
+ msgid "Name"
209
+ msgstr ""
210
+
211
+ #: contrib/documents/viewsets/display/document_types.py:19
212
+ msgid "Number of Documents"
213
+ msgstr ""
214
+
215
+ #: contrib/documents/viewsets/display/documents.py:28
216
+ msgid "Created By System"
217
+ msgstr ""
218
+
219
+ #: contrib/documents/viewsets/display/shareable_links.py:52
220
+ msgid "Hits"
221
+ msgstr ""
222
+
223
+ #: contrib/documents/viewsets/display/shareable_links.py:60
224
+ msgid "Date"
225
+ msgstr ""
226
+
227
+ #: contrib/documents/viewsets/display/shareable_links.py:61
228
+ msgid "Meta Data"
229
+ msgstr ""
230
+
231
+ #: contrib/documents/viewsets/documents.py:81
232
+ msgid "Document is going to be sent with email"
233
+ msgstr ""
234
+
235
+ #: contrib/documents/viewsets/menu/documents.py:10
236
+ msgid "Create New Document"
237
+ msgstr ""
238
+
239
+ #: contrib/documents/viewsets/menu/documents.py:21
240
+ msgid "Create New Document Type"
241
+ msgstr ""
242
+
243
+ #: contrib/documents/viewsets/titles/document_types.py:11
244
+ msgid "Document Type: {{name}}"
245
+ msgstr ""
246
+
247
+ #: contrib/documents/viewsets/titles/document_types.py:14
248
+ msgid "New Document Type"
249
+ msgstr ""
250
+
251
+ #: contrib/documents/viewsets/titles/documents.py:16
252
+ #, python-brace-format
253
+ msgid "Documents for {object}"
254
+ msgstr ""
255
+
256
+ #: contrib/documents/viewsets/titles/documents.py:20
257
+ msgid "Document: {{name}}"
258
+ msgstr ""
259
+
260
+ #: contrib/documents/viewsets/titles/documents.py:26
261
+ #, python-brace-format
262
+ msgid "New Document for {object}"
263
+ msgstr ""
264
+
265
+ #: contrib/documents/viewsets/titles/documents.py:27
266
+ msgid "New Document"
267
+ msgstr ""
268
+
269
+ #: contrib/documents/viewsets/titles/shareable_links.py:14
270
+ msgid "New Shareable Link"
271
+ msgstr ""
@@ -0,0 +1,270 @@
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/documents/filters.py:14
21
+ #: contrib/documents/serializers/shareable_links.py:15
22
+ #: contrib/documents/viewsets/display/shareable_links.py:30
23
+ msgid "Valid"
24
+ msgstr ""
25
+
26
+ #: contrib/documents/filters.py:19
27
+ #: contrib/documents/viewsets/display/shareable_links.py:22
28
+ msgid "Link"
29
+ msgstr ""
30
+
31
+ #: contrib/documents/filters.py:50
32
+ #: contrib/documents/models/document_types.py:36
33
+ #: contrib/documents/viewsets/menu/documents.py:17
34
+ #: contrib/documents/viewsets/titles/document_types.py:8
35
+ msgid "Document Types"
36
+ msgstr ""
37
+
38
+ #: contrib/documents/filters.py:70 contrib/documents/filters.py:76
39
+ msgid "Document Count"
40
+ msgstr ""
41
+
42
+ #: contrib/documents/models/document_model_relationships.py:31
43
+ msgid "Document Model Relationship"
44
+ msgstr ""
45
+
46
+ #: contrib/documents/models/document_model_relationships.py:32
47
+ msgid "Document Model Relationships"
48
+ msgstr ""
49
+
50
+ #: contrib/documents/models/document_types.py:12
51
+ #: contrib/documents/viewsets/display/document_types.py:18
52
+ msgid "Parent"
53
+ msgstr ""
54
+
55
+ #: contrib/documents/models/document_types.py:35
56
+ #: contrib/documents/models/documents.py:63
57
+ msgid "Document Type"
58
+ msgstr ""
59
+
60
+ #: contrib/documents/models/documents.py:57
61
+ msgid "Description"
62
+ msgstr ""
63
+
64
+ #: contrib/documents/models/documents.py:58
65
+ msgid "File"
66
+ msgstr ""
67
+
68
+ #: contrib/documents/models/documents.py:65
69
+ #: contrib/documents/serializers/documents.py:11
70
+ msgid "System Created"
71
+ msgstr ""
72
+
73
+ #: contrib/documents/models/documents.py:66
74
+ msgid "System Key"
75
+ msgstr ""
76
+
77
+ #: contrib/documents/models/documents.py:68
78
+ #: contrib/documents/viewsets/display/documents.py:18
79
+ msgid "Valid From"
80
+ msgstr ""
81
+
82
+ #: contrib/documents/models/documents.py:69
83
+ #: contrib/documents/models/shareable_links.py:16
84
+ #: contrib/documents/viewsets/display/documents.py:19
85
+ #: contrib/documents/viewsets/display/shareable_links.py:20
86
+ msgid "Valid Until"
87
+ msgstr ""
88
+
89
+ #: contrib/documents/models/documents.py:71
90
+ msgid "Created"
91
+ msgstr ""
92
+
93
+ #: contrib/documents/models/documents.py:72
94
+ #: contrib/documents/viewsets/display/documents.py:20
95
+ msgid "Updated"
96
+ msgstr ""
97
+
98
+ #: contrib/documents/models/documents.py:237
99
+ msgid "Document"
100
+ msgstr ""
101
+
102
+ #: contrib/documents/models/documents.py:238
103
+ #: contrib/documents/viewsets/menu/documents.py:6
104
+ #: contrib/documents/viewsets/titles/documents.py:17
105
+ msgid "Documents"
106
+ msgstr ""
107
+
108
+ #: contrib/documents/models/documents.py:270
109
+ msgid "A file was shared with you"
110
+ msgstr ""
111
+
112
+ #: contrib/documents/models/documents.py:275
113
+ #, python-brace-format
114
+ msgid ""
115
+ "\n"
116
+ " <p>Please find your {document_type} \"{filename}\" under this <a href={link}>link</a></p>\n"
117
+ " "
118
+ msgstr ""
119
+
120
+ #: contrib/documents/models/documents.py:281
121
+ #, python-brace-format
122
+ msgid ""
123
+ "\n"
124
+ " <p>Please find the {document_type} \"{filename}\" attached to this mail.</p>\n"
125
+ " "
126
+ msgstr ""
127
+
128
+ #: contrib/documents/models/shareable_links.py:17
129
+ #: contrib/documents/viewsets/display/shareable_links.py:21
130
+ msgid "One Time Link"
131
+ msgstr ""
132
+
133
+ #: contrib/documents/models/shareable_links.py:59
134
+ #: contrib/documents/viewsets/titles/shareable_links.py:11
135
+ msgid "Shareable Link"
136
+ msgstr ""
137
+
138
+ #: contrib/documents/models/shareable_links.py:60
139
+ #: contrib/documents/viewsets/titles/shareable_links.py:8
140
+ msgid "Shareable Links"
141
+ msgstr ""
142
+
143
+ #: contrib/documents/models/shareable_links.py:90
144
+ msgid "Shareable Link Access"
145
+ msgstr ""
146
+
147
+ #: contrib/documents/models/shareable_links.py:91
148
+ msgid "Shareable Link Accesses"
149
+ msgstr ""
150
+
151
+ #: contrib/documents/viewsets/buttons/documents.py:18
152
+ msgid "All Children"
153
+ msgstr ""
154
+
155
+ #: contrib/documents/viewsets/buttons/documents.py:23
156
+ msgid "All Documents"
157
+ msgstr ""
158
+
159
+ #: contrib/documents/viewsets/buttons/documents.py:32
160
+ msgid "Recipient"
161
+ msgstr ""
162
+
163
+ #: contrib/documents/viewsets/buttons/documents.py:38
164
+ msgid "Download"
165
+ msgstr ""
166
+
167
+ #: contrib/documents/viewsets/buttons/documents.py:44
168
+ msgid "Send Mail"
169
+ msgstr ""
170
+
171
+ #: contrib/documents/viewsets/buttons/documents.py:45
172
+ msgid "<p>Send this document as mail?</p>"
173
+ msgstr ""
174
+
175
+ #: contrib/documents/viewsets/buttons/documents.py:46
176
+ msgid "Sending Mail"
177
+ msgstr ""
178
+
179
+ #: contrib/documents/viewsets/buttons/documents.py:47
180
+ msgid "Send document as mail"
181
+ msgstr ""
182
+
183
+ #: contrib/documents/viewsets/buttons/shareable_links.py:15
184
+ #: contrib/documents/viewsets/buttons/shareable_links.py:18
185
+ msgid "Invalidate"
186
+ msgstr ""
187
+
188
+ #: contrib/documents/viewsets/buttons/shareable_links.py:17
189
+ msgid "<p> Are you sure you want to invalidate this link? </p>"
190
+ msgstr ""
191
+
192
+ #: contrib/documents/viewsets/buttons/shareable_links.py:19
193
+ msgid "Invalidation"
194
+ msgstr ""
195
+
196
+ #: contrib/documents/viewsets/display/document_model_relationships.py:13
197
+ #: contrib/documents/viewsets/display/documents.py:17
198
+ msgid "Type"
199
+ msgstr ""
200
+
201
+ #: contrib/documents/viewsets/display/document_model_relationships.py:14
202
+ msgid "Instance"
203
+ msgstr ""
204
+
205
+ #: contrib/documents/viewsets/display/document_types.py:17
206
+ #: contrib/documents/viewsets/display/documents.py:16
207
+ msgid "Name"
208
+ msgstr ""
209
+
210
+ #: contrib/documents/viewsets/display/document_types.py:19
211
+ msgid "Number of Documents"
212
+ msgstr ""
213
+
214
+ #: contrib/documents/viewsets/display/documents.py:28
215
+ msgid "Created By System"
216
+ msgstr ""
217
+
218
+ #: contrib/documents/viewsets/display/shareable_links.py:52
219
+ msgid "Hits"
220
+ msgstr ""
221
+
222
+ #: contrib/documents/viewsets/display/shareable_links.py:60
223
+ msgid "Date"
224
+ msgstr ""
225
+
226
+ #: contrib/documents/viewsets/display/shareable_links.py:61
227
+ msgid "Meta Data"
228
+ msgstr ""
229
+
230
+ #: contrib/documents/viewsets/documents.py:81
231
+ msgid "Document is going to be sent with email"
232
+ msgstr ""
233
+
234
+ #: contrib/documents/viewsets/menu/documents.py:10
235
+ msgid "Create New Document"
236
+ msgstr ""
237
+
238
+ #: contrib/documents/viewsets/menu/documents.py:21
239
+ msgid "Create New Document Type"
240
+ msgstr ""
241
+
242
+ #: contrib/documents/viewsets/titles/document_types.py:11
243
+ msgid "Document Type: {{name}}"
244
+ msgstr ""
245
+
246
+ #: contrib/documents/viewsets/titles/document_types.py:14
247
+ msgid "New Document Type"
248
+ msgstr ""
249
+
250
+ #: contrib/documents/viewsets/titles/documents.py:16
251
+ #, python-brace-format
252
+ msgid "Documents for {object}"
253
+ msgstr ""
254
+
255
+ #: contrib/documents/viewsets/titles/documents.py:20
256
+ msgid "Document: {{name}}"
257
+ msgstr ""
258
+
259
+ #: contrib/documents/viewsets/titles/documents.py:26
260
+ #, python-brace-format
261
+ msgid "New Document for {object}"
262
+ msgstr ""
263
+
264
+ #: contrib/documents/viewsets/titles/documents.py:27
265
+ msgid "New Document"
266
+ msgstr ""
267
+
268
+ #: contrib/documents/viewsets/titles/shareable_links.py:14
269
+ msgid "New Shareable Link"
270
+ msgstr ""
@@ -6,7 +6,6 @@ import pytest
6
6
  from django.core import mail
7
7
  from django.core.validators import URLValidator
8
8
  from django.utils import timezone
9
- from faker import Faker
10
9
  from slugify import slugify
11
10
  from wbcore.contrib.documents.models.documents import (
12
11
  Document,
@@ -14,32 +13,28 @@ from wbcore.contrib.documents.models.documents import (
14
13
  upload_to,
15
14
  )
16
15
 
17
- fake = Faker()
18
-
19
16
 
20
17
  @pytest.mark.django_db
18
+ @pytest.mark.with_db
21
19
  class TestDocumentModel:
20
+ @pytest.fixture
21
+ def email(self):
22
+ return "foo@bar.com"
23
+
22
24
  def test_init(self, document):
23
25
  assert document.id is not None
24
26
 
25
- @pytest.mark.parametrize(
26
- "filename",
27
- [(fake.file_name())],
28
- )
29
- def test_upload_to(self, document, document_type_factory, filename):
27
+ def test_upload_to(self, document, document_type_factory):
30
28
  parent_document_type = document_type_factory.create()
31
29
  document_type = document_type_factory.create(parent=parent_document_type)
32
30
  document.document_type = document_type
33
31
  document.save()
34
32
  assert (
35
- upload_to(document, filename)
36
- == f"dms/document/{slugify(parent_document_type.name)}/{slugify(document_type.name)}/{filename}"
33
+ upload_to(document, "foo")
34
+ == f"dms/document/{slugify(parent_document_type.name)}/{slugify(document_type.name)}/foo"
37
35
  )
38
36
 
39
- @pytest.mark.parametrize(
40
- "document__file",
41
- [(fake.file_path())],
42
- )
37
+ @pytest.mark.parametrize("document__file", ["/foo/bar"])
43
38
  def test_filename(self, document):
44
39
  assert document.filename == os.path.basename(document.file.name)
45
40
 
@@ -51,26 +46,24 @@ class TestDocumentModel:
51
46
 
52
47
  @pytest.mark.parametrize(
53
48
  "sharing_seconds_duration, one_time_link",
54
- [(0, False), (fake.pyint(min_value=1), False), (0, True), (fake.pyint(min_value=1), True)],
49
+ [(0, False), (1, False), (0, True), (1, True)],
55
50
  )
56
51
  def test_generate_shareable_link(self, document, sharing_seconds_duration, one_time_link):
57
52
  document.generate_shareable_link(
58
- sharing_seconds_duration=sharing_seconds_duration, one_time_link=one_time_link
53
+ sharing_seconds_duration=sharing_seconds_duration,
54
+ one_time_link=one_time_link,
59
55
  )
60
56
  assert (
61
57
  document.shareable_links.filter(
62
- valid_until__isnull=sharing_seconds_duration == 0, one_time_link=one_time_link
58
+ valid_until__isnull=sharing_seconds_duration == 0,
59
+ one_time_link=one_time_link,
63
60
  ).count()
64
61
  == 1
65
62
  )
66
63
 
67
64
  @patch("wbcore.contrib.documents.models.documents.send_email_as_task.delay")
68
- @pytest.mark.parametrize(
69
- "to_emails",
70
- [(fake.email())],
71
- )
72
- def test_send_email(self, mock_fct, document, to_emails):
73
- document.send_email(to_emails)
65
+ def test_send_email(self, mock_fct, document, email):
66
+ document.send_email(email)
74
67
  assert mock_fct.call_count == 1
75
68
 
76
69
  def test_get_for_object(self, document_factory):
@@ -82,14 +75,21 @@ class TestDocumentModel:
82
75
  @pytest.mark.parametrize(
83
76
  "to_emails, as_link, subject, from_email, body",
84
77
  [
85
- (fake.email(), False, None, None, None),
86
- (fake.email(), False, fake.paragraph(), fake.email(), fake.paragraph()),
87
- (fake.email(), True, None, None, None),
78
+ (email, False, None, None, None),
79
+ (email, False, "Some paragraph", email, "A different paragraph"),
80
+ (email, True, None, None, None),
88
81
  ],
89
82
  )
90
83
  def test_send_email_as_task(self, document, to_emails, as_link, subject, from_email, body):
91
84
  assert len(mail.outbox) == 0
92
- send_email_as_task(document.id, to_emails, as_link=as_link, subject=subject, from_email=from_email, body=body)
85
+ send_email_as_task(
86
+ document.id,
87
+ to_emails,
88
+ as_link=as_link,
89
+ subject=subject,
90
+ from_email=from_email,
91
+ body=body,
92
+ )
93
93
  assert len(mail.outbox) == 1
94
94
  msg = mail.outbox[0]
95
95
  if as_link:
@@ -118,7 +118,11 @@ class TestDocumentTypeModel:
118
118
  class TestShareableLinkModel:
119
119
  @pytest.mark.parametrize(
120
120
  "shareable_link__manual_invalid, shareable_link__valid_until, shareable_link__one_time_link",
121
- [(True, None, False), (False, timezone.now() - timedelta(seconds=60), False), (False, None, True)],
121
+ [
122
+ (True, None, False),
123
+ (False, timezone.now() - timedelta(seconds=60), False),
124
+ (False, None, True),
125
+ ],
122
126
  )
123
127
  def test_unvalid_link(self, shareable_link):
124
128
  if shareable_link.one_time_link:
@@ -5,15 +5,7 @@ from wbcore.metadata.configs.endpoints import EndpointViewConfig
5
5
 
6
6
 
7
7
  class ShareableLinkEndpointConfig(EndpointViewConfig):
8
- def get_list_endpoint(self, **kwargs):
9
- base_url = "wbcore:documents:link-list"
10
-
11
- if doc_id := self.request.GET.get("document", None):
12
- return f"{reverse(base_url, request=self.request)}?document={doc_id}"
13
-
14
- return reverse(base_url, request=self.request)
15
-
16
- def get_create_endpoint(self, **kwargs):
8
+ def get_endpoint(self, **kwargs):
17
9
  base_url = "wbcore:documents:link-list"
18
10
 
19
11
  if doc_id := self.request.GET.get("document", None):
@@ -31,16 +23,5 @@ class ShareableLinkEndpointConfig(EndpointViewConfig):
31
23
 
32
24
 
33
25
  class ShareableLinkAccessEndpointConfig(EndpointViewConfig):
34
- def get_list_endpoint(self, **kwargs):
35
- base_url = "wbcore:documents:linkaccess-list"
36
-
37
- if link_id := self.request.GET.get("shareable_link", None):
38
- return f"{reverse(base_url, request=self.request)}?shareable_link={link_id}"
39
-
40
- return reverse(base_url, request=self.request)
41
-
42
- def get_create_endpoint(self, **kwargs):
43
- return None
44
-
45
- def get_instance_endpoint(self, **kwargs):
26
+ def get_endpoint(self, **kwargs):
46
27
  return None