wbcore 1.59.9__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 (1239) hide show
  1. wbcore/__init__.py +1 -0
  2. wbcore/admin.py +197 -0
  3. wbcore/apps.py +17 -0
  4. wbcore/cache/__init__.py +0 -0
  5. wbcore/cache/buttons.py +23 -0
  6. wbcore/cache/decorators.py +31 -0
  7. wbcore/cache/mixins.py +49 -0
  8. wbcore/cache/registry.py +98 -0
  9. wbcore/cache/views.py +19 -0
  10. wbcore/configs/__init__.py +11 -0
  11. wbcore/configs/configs.py +52 -0
  12. wbcore/configs/decorators.py +11 -0
  13. wbcore/configs/registry.py +35 -0
  14. wbcore/configs/views.py +12 -0
  15. wbcore/configurations/__init__.py +1 -0
  16. wbcore/configurations/base.py +46 -0
  17. wbcore/configurations/configurations/__init__.py +16 -0
  18. wbcore/configurations/configurations/apps.py +55 -0
  19. wbcore/configurations/configurations/authentication.py +44 -0
  20. wbcore/configurations/configurations/base.py +15 -0
  21. wbcore/configurations/configurations/cache.py +20 -0
  22. wbcore/configurations/configurations/celery.py +26 -0
  23. wbcore/configurations/configurations/i18nl10n.py +11 -0
  24. wbcore/configurations/configurations/mail.py +2 -0
  25. wbcore/configurations/configurations/maintenance.py +53 -0
  26. wbcore/configurations/configurations/media.py +22 -0
  27. wbcore/configurations/configurations/middleware.py +27 -0
  28. wbcore/configurations/configurations/network.py +19 -0
  29. wbcore/configurations/configurations/rest_framework.py +42 -0
  30. wbcore/configurations/configurations/static.py +28 -0
  31. wbcore/configurations/configurations/templates.py +17 -0
  32. wbcore/configurations/configurations/uvicorn.py +9 -0
  33. wbcore/configurations/configurations/wbcore.py +61 -0
  34. wbcore/content_type/__init__.py +0 -0
  35. wbcore/content_type/admin.py +8 -0
  36. wbcore/content_type/filters.py +20 -0
  37. wbcore/content_type/serializers.py +98 -0
  38. wbcore/content_type/utils.py +30 -0
  39. wbcore/content_type/viewsets.py +81 -0
  40. wbcore/contrib/__init__.py +0 -0
  41. wbcore/contrib/agenda/__init__.py +0 -0
  42. wbcore/contrib/agenda/admin/__init__.py +2 -0
  43. wbcore/contrib/agenda/admin/calendar_item.py +14 -0
  44. wbcore/contrib/agenda/admin/conference_room.py +19 -0
  45. wbcore/contrib/agenda/apps.py +6 -0
  46. wbcore/contrib/agenda/configurations.py +11 -0
  47. wbcore/contrib/agenda/factories/__init__.py +2 -0
  48. wbcore/contrib/agenda/factories/calendar_item.py +49 -0
  49. wbcore/contrib/agenda/factories/conference_room.py +20 -0
  50. wbcore/contrib/agenda/filters/__init__.py +2 -0
  51. wbcore/contrib/agenda/filters/calendar_item.py +66 -0
  52. wbcore/contrib/agenda/filters/conference_room.py +42 -0
  53. wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po +206 -0
  54. wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po.translated +236 -0
  55. wbcore/contrib/agenda/locale/en/LC_MESSAGES/django.po +200 -0
  56. wbcore/contrib/agenda/locale/fr/LC_MESSAGES/django.po +201 -0
  57. wbcore/contrib/agenda/migrations/0001_initial.py +84 -0
  58. wbcore/contrib/agenda/migrations/0002_initial.py +26 -0
  59. wbcore/contrib/agenda/migrations/0003_calendaritem_endpoint_basename.py +42 -0
  60. wbcore/contrib/agenda/migrations/0004_alter_calendaritem_item_type.py +17 -0
  61. wbcore/contrib/agenda/migrations/0005_building_and_more.py +94 -0
  62. wbcore/contrib/agenda/migrations/0006_calendaritem_is_deletable.py +17 -0
  63. wbcore/contrib/agenda/migrations/0007_alter_calendaritem_options.py +21 -0
  64. wbcore/contrib/agenda/migrations/0008_alter_calendaritem_item_type.py +17 -0
  65. wbcore/contrib/agenda/migrations/0009_alter_calendaritem_icon.py +18 -0
  66. wbcore/contrib/agenda/migrations/__init__.py +0 -0
  67. wbcore/contrib/agenda/models/__init__.py +2 -0
  68. wbcore/contrib/agenda/models/calendar_item.py +240 -0
  69. wbcore/contrib/agenda/models/conference_room.py +96 -0
  70. wbcore/contrib/agenda/release_notes/1_0_0.md +13 -0
  71. wbcore/contrib/agenda/release_notes/__init__.py +0 -0
  72. wbcore/contrib/agenda/serializers/__init__.py +10 -0
  73. wbcore/contrib/agenda/serializers/calendar_item.py +77 -0
  74. wbcore/contrib/agenda/serializers/conference_room.py +99 -0
  75. wbcore/contrib/agenda/signals.py +5 -0
  76. wbcore/contrib/agenda/static/agenda/markdown/documentation/building.md +11 -0
  77. wbcore/contrib/agenda/static/agenda/markdown/documentation/conferenceroom.md +20 -0
  78. wbcore/contrib/agenda/tests/__init__.py +0 -0
  79. wbcore/contrib/agenda/tests/conftest.py +14 -0
  80. wbcore/contrib/agenda/tests/signals.py +17 -0
  81. wbcore/contrib/agenda/tests/test_models.py +34 -0
  82. wbcore/contrib/agenda/tests/test_viewsets.py +172 -0
  83. wbcore/contrib/agenda/tests/tests.py +26 -0
  84. wbcore/contrib/agenda/typings.py +19 -0
  85. wbcore/contrib/agenda/urls.py +26 -0
  86. wbcore/contrib/agenda/viewsets/__init__.py +13 -0
  87. wbcore/contrib/agenda/viewsets/buttons/__init__.py +1 -0
  88. wbcore/contrib/agenda/viewsets/buttons/conference_room.py +21 -0
  89. wbcore/contrib/agenda/viewsets/calendar_items.py +169 -0
  90. wbcore/contrib/agenda/viewsets/conference_room.py +48 -0
  91. wbcore/contrib/agenda/viewsets/display/__init__.py +2 -0
  92. wbcore/contrib/agenda/viewsets/display/calendar_items.py +17 -0
  93. wbcore/contrib/agenda/viewsets/display/conference_room.py +42 -0
  94. wbcore/contrib/agenda/viewsets/endpoints/__init__.py +1 -0
  95. wbcore/contrib/agenda/viewsets/endpoints/calendar_items.py +19 -0
  96. wbcore/contrib/agenda/viewsets/menu/__init__.py +2 -0
  97. wbcore/contrib/agenda/viewsets/menu/calendar_items.py +12 -0
  98. wbcore/contrib/agenda/viewsets/menu/conference_room.py +38 -0
  99. wbcore/contrib/agenda/viewsets/titles/__init__.py +2 -0
  100. wbcore/contrib/agenda/viewsets/titles/calendar_items.py +8 -0
  101. wbcore/contrib/agenda/viewsets/titles/conference_room.py +25 -0
  102. wbcore/contrib/ai/__init__.py +0 -0
  103. wbcore/contrib/ai/apps.py +5 -0
  104. wbcore/contrib/ai/exceptions.py +40 -0
  105. wbcore/contrib/ai/llm/__init__.py +0 -0
  106. wbcore/contrib/ai/llm/config.py +166 -0
  107. wbcore/contrib/ai/llm/decorators.py +10 -0
  108. wbcore/contrib/ai/llm/mixins.py +34 -0
  109. wbcore/contrib/ai/llm/utils.py +69 -0
  110. wbcore/contrib/authentication/__init__.py +9 -0
  111. wbcore/contrib/authentication/admin.py +247 -0
  112. wbcore/contrib/authentication/apps.py +14 -0
  113. wbcore/contrib/authentication/authentication.py +111 -0
  114. wbcore/contrib/authentication/configs.py +10 -0
  115. wbcore/contrib/authentication/configurations.py +60 -0
  116. wbcore/contrib/authentication/dynamic_preferences_registry.py +26 -0
  117. wbcore/contrib/authentication/factories/__init__.py +10 -0
  118. wbcore/contrib/authentication/factories/tokens.py +15 -0
  119. wbcore/contrib/authentication/factories/users.py +112 -0
  120. wbcore/contrib/authentication/factories/users_activities.py +19 -0
  121. wbcore/contrib/authentication/filters.py +17 -0
  122. wbcore/contrib/authentication/fixtures/authentication.json +62 -0
  123. wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po +632 -0
  124. wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po.translated +634 -0
  125. wbcore/contrib/authentication/locale/en/LC_MESSAGES/django.po +590 -0
  126. wbcore/contrib/authentication/locale/fr/LC_MESSAGES/django.po +592 -0
  127. wbcore/contrib/authentication/management/__init__.py +14 -0
  128. wbcore/contrib/authentication/migrations/0001_initial_squashed.py +174 -0
  129. wbcore/contrib/authentication/migrations/0002_profile.py +26 -0
  130. wbcore/contrib/authentication/migrations/0003_alter_user_profile.py +34 -0
  131. wbcore/contrib/authentication/migrations/0004_token.py +51 -0
  132. wbcore/contrib/authentication/migrations/0005_user_external_calendar_settings.py +17 -0
  133. wbcore/contrib/authentication/migrations/0006_auto_20231206_1422.py +13 -0
  134. wbcore/contrib/authentication/migrations/__init__.py +0 -0
  135. wbcore/contrib/authentication/models/__init__.py +3 -0
  136. wbcore/contrib/authentication/models/tokens.py +140 -0
  137. wbcore/contrib/authentication/models/users.py +224 -0
  138. wbcore/contrib/authentication/models/users_activities.py +114 -0
  139. wbcore/contrib/authentication/release_notes/1_0_0.md +13 -0
  140. wbcore/contrib/authentication/release_notes/__init__.py +0 -0
  141. wbcore/contrib/authentication/serializers/__init__.py +14 -0
  142. wbcore/contrib/authentication/serializers/users.py +351 -0
  143. wbcore/contrib/authentication/serializers/users_activites.py +37 -0
  144. wbcore/contrib/authentication/tasks.py +30 -0
  145. wbcore/contrib/authentication/templates/activate_confirm.html +12 -0
  146. wbcore/contrib/authentication/templates/base.html +135 -0
  147. wbcore/contrib/authentication/templates/email_base_template.html +335 -0
  148. wbcore/contrib/authentication/templates/password_reset_done.html +13 -0
  149. wbcore/contrib/authentication/templates/password_reset_email.html +11 -0
  150. wbcore/contrib/authentication/templates/password_reset_email_html.html +43 -0
  151. wbcore/contrib/authentication/templates/password_reset_form.html +23 -0
  152. wbcore/contrib/authentication/templates/password_reset_sent.html +11 -0
  153. wbcore/contrib/authentication/templates/reset_password.html +15 -0
  154. wbcore/contrib/authentication/templates/user_registration_email.html +37 -0
  155. wbcore/contrib/authentication/tests/__init__.py +0 -0
  156. wbcore/contrib/authentication/tests/conftest.py +18 -0
  157. wbcore/contrib/authentication/tests/e2e/__init__.py +1 -0
  158. wbcore/contrib/authentication/tests/e2e/e2e_auth_utility.py +20 -0
  159. wbcore/contrib/authentication/tests/signals.py +18 -0
  160. wbcore/contrib/authentication/tests/test_configs.py +6 -0
  161. wbcore/contrib/authentication/tests/test_serializers.py +6 -0
  162. wbcore/contrib/authentication/tests/test_tasks.py +34 -0
  163. wbcore/contrib/authentication/tests/test_tokens.py +127 -0
  164. wbcore/contrib/authentication/tests/test_users.py +338 -0
  165. wbcore/contrib/authentication/tests/test_viewsets.py +6 -0
  166. wbcore/contrib/authentication/tests/tests.py +15 -0
  167. wbcore/contrib/authentication/urls.py +94 -0
  168. wbcore/contrib/authentication/utils.py +10 -0
  169. wbcore/contrib/authentication/viewsets/__init__.py +19 -0
  170. wbcore/contrib/authentication/viewsets/buttons/__init__.py +1 -0
  171. wbcore/contrib/authentication/viewsets/buttons/users.py +56 -0
  172. wbcore/contrib/authentication/viewsets/display/__init__.py +6 -0
  173. wbcore/contrib/authentication/viewsets/display/user_activities.py +86 -0
  174. wbcore/contrib/authentication/viewsets/display/users.py +73 -0
  175. wbcore/contrib/authentication/viewsets/endpoints/__init__.py +6 -0
  176. wbcore/contrib/authentication/viewsets/endpoints/user_activities.py +14 -0
  177. wbcore/contrib/authentication/viewsets/endpoints/users.py +18 -0
  178. wbcore/contrib/authentication/viewsets/menu/__init__.py +6 -0
  179. wbcore/contrib/authentication/viewsets/menu/user_activities.py +40 -0
  180. wbcore/contrib/authentication/viewsets/menu/users.py +17 -0
  181. wbcore/contrib/authentication/viewsets/titles/__init__.py +12 -0
  182. wbcore/contrib/authentication/viewsets/titles/user_activities.py +32 -0
  183. wbcore/contrib/authentication/viewsets/titles/users.py +27 -0
  184. wbcore/contrib/authentication/viewsets/user_activities.py +224 -0
  185. wbcore/contrib/authentication/viewsets/users.py +331 -0
  186. wbcore/contrib/color/admin.py +28 -0
  187. wbcore/contrib/color/apps.py +5 -0
  188. wbcore/contrib/color/enums.py +17 -0
  189. wbcore/contrib/color/factories.py +10 -0
  190. wbcore/contrib/color/fields.py +29 -0
  191. wbcore/contrib/color/forms.py +13 -0
  192. wbcore/contrib/color/migrations/0001_initial.py +33 -0
  193. wbcore/contrib/color/migrations/0002_alter_colorgradient_colors.py +25 -0
  194. wbcore/contrib/color/migrations/__init__.py +0 -0
  195. wbcore/contrib/color/models.py +63 -0
  196. wbcore/contrib/color/tests/conftest.py +10 -0
  197. wbcore/contrib/color/tests/test_color_models.py +61 -0
  198. wbcore/contrib/color/tests/test_fields.py +25 -0
  199. wbcore/contrib/currency/__init__.py +0 -0
  200. wbcore/contrib/currency/admin.py +33 -0
  201. wbcore/contrib/currency/apps.py +5 -0
  202. wbcore/contrib/currency/dynamic_preferences_registry.py +39 -0
  203. wbcore/contrib/currency/factories.py +40 -0
  204. wbcore/contrib/currency/fixtures/currency.yaml +1014 -0
  205. wbcore/contrib/currency/fixtures/currency_fx_rate.yaml +73585 -0
  206. wbcore/contrib/currency/import_export/__init__.py +0 -0
  207. wbcore/contrib/currency/import_export/backends/__init__.py +1 -0
  208. wbcore/contrib/currency/import_export/backends/fixerio/__init__.py +1 -0
  209. wbcore/contrib/currency/import_export/backends/fixerio/currency_fx_rates.py +69 -0
  210. wbcore/contrib/currency/import_export/backends/utils.py +5 -0
  211. wbcore/contrib/currency/import_export/handlers/__init__.py +2 -0
  212. wbcore/contrib/currency/import_export/handlers/currency.py +25 -0
  213. wbcore/contrib/currency/import_export/handlers/currency_fx_rates.py +29 -0
  214. wbcore/contrib/currency/import_export/parsers/__init__.py +0 -0
  215. wbcore/contrib/currency/import_export/parsers/fixerio/__init__.py +0 -0
  216. wbcore/contrib/currency/import_export/parsers/fixerio/currency_fx_rates.py +34 -0
  217. wbcore/contrib/currency/migrations/0001_initial.py +89 -0
  218. wbcore/contrib/currency/migrations/__init__.py +0 -0
  219. wbcore/contrib/currency/models.py +199 -0
  220. wbcore/contrib/currency/release_notes/1_0_0.md +13 -0
  221. wbcore/contrib/currency/release_notes/__init__.py +0 -0
  222. wbcore/contrib/currency/serializers.py +45 -0
  223. wbcore/contrib/currency/tests/__init__.py +0 -0
  224. wbcore/contrib/currency/tests/conftest.py +7 -0
  225. wbcore/contrib/currency/tests/test_models.py +115 -0
  226. wbcore/contrib/currency/tests/test_serializers.py +67 -0
  227. wbcore/contrib/currency/tests/test_viewsets.py +196 -0
  228. wbcore/contrib/currency/urls.py +20 -0
  229. wbcore/contrib/currency/viewsets/__init__.py +2 -0
  230. wbcore/contrib/currency/viewsets/buttons/__init__.py +0 -0
  231. wbcore/contrib/currency/viewsets/currency.py +57 -0
  232. wbcore/contrib/currency/viewsets/currency_fx_rates.py +33 -0
  233. wbcore/contrib/currency/viewsets/display/__init__.py +2 -0
  234. wbcore/contrib/currency/viewsets/display/currency.py +38 -0
  235. wbcore/contrib/currency/viewsets/display/currency_fx_rates.py +9 -0
  236. wbcore/contrib/currency/viewsets/endpoints/__init__.py +1 -0
  237. wbcore/contrib/currency/viewsets/endpoints/currency_fx_rates.py +6 -0
  238. wbcore/contrib/currency/viewsets/menu/__init__.py +1 -0
  239. wbcore/contrib/currency/viewsets/menu/currency.py +8 -0
  240. wbcore/contrib/currency/viewsets/preview/__init__.py +1 -0
  241. wbcore/contrib/currency/viewsets/preview/currency.py +10 -0
  242. wbcore/contrib/currency/viewsets/titles/__init__.py +2 -0
  243. wbcore/contrib/currency/viewsets/titles/currency.py +6 -0
  244. wbcore/contrib/currency/viewsets/titles/currency_fx_rates.py +8 -0
  245. wbcore/contrib/dataloader/__init__.py +1 -0
  246. wbcore/contrib/dataloader/apps.py +5 -0
  247. wbcore/contrib/dataloader/dataloaders/__init__.py +2 -0
  248. wbcore/contrib/dataloader/dataloaders/dataloaders.py +25 -0
  249. wbcore/contrib/dataloader/dataloaders/proxies.py +82 -0
  250. wbcore/contrib/dataloader/models/__init__.py +1 -0
  251. wbcore/contrib/dataloader/models/entities.py +30 -0
  252. wbcore/contrib/dataloader/models/querysets/__init__.py +1 -0
  253. wbcore/contrib/dataloader/models/querysets/entities.py +28 -0
  254. wbcore/contrib/dataloader/tests/__init__.py +0 -0
  255. wbcore/contrib/dataloader/tests/conftest.py +26 -0
  256. wbcore/contrib/dataloader/tests/test/__init__.py +0 -0
  257. wbcore/contrib/dataloader/tests/test/dataloaders/__init__.py +0 -0
  258. wbcore/contrib/dataloader/tests/test/dataloaders/dataloaders.py +18 -0
  259. wbcore/contrib/dataloader/tests/test/dataloaders/protocols.py +5 -0
  260. wbcore/contrib/dataloader/tests/test/dataloaders/proxies.py +11 -0
  261. wbcore/contrib/dataloader/tests/test/factories.py +13 -0
  262. wbcore/contrib/dataloader/tests/test/models.py +11 -0
  263. wbcore/contrib/dataloader/tests/test_dataloaders.py +38 -0
  264. wbcore/contrib/dataloader/tests/test_entities.py +13 -0
  265. wbcore/contrib/dataloader/utils.py +20 -0
  266. wbcore/contrib/directory/__init__.py +0 -0
  267. wbcore/contrib/directory/admin/__init__.py +14 -0
  268. wbcore/contrib/directory/admin/contacts.py +55 -0
  269. wbcore/contrib/directory/admin/entries.py +235 -0
  270. wbcore/contrib/directory/admin/relationships.py +73 -0
  271. wbcore/contrib/directory/apps.py +6 -0
  272. wbcore/contrib/directory/configs.py +9 -0
  273. wbcore/contrib/directory/configurations.py +70 -0
  274. wbcore/contrib/directory/dynamic_preferences_registry.py +61 -0
  275. wbcore/contrib/directory/factories/__init__.py +35 -0
  276. wbcore/contrib/directory/factories/contacts.py +71 -0
  277. wbcore/contrib/directory/factories/entries.py +174 -0
  278. wbcore/contrib/directory/factories/relationships.py +77 -0
  279. wbcore/contrib/directory/filters/__init__.py +22 -0
  280. wbcore/contrib/directory/filters/contacts.py +234 -0
  281. wbcore/contrib/directory/filters/entries.py +273 -0
  282. wbcore/contrib/directory/filters/relationships.py +90 -0
  283. wbcore/contrib/directory/fixtures/directory.json +3884 -0
  284. wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po +1700 -0
  285. wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po.translated +1779 -0
  286. wbcore/contrib/directory/locale/en/LC_MESSAGES/django.po +1652 -0
  287. wbcore/contrib/directory/locale/fr/LC_MESSAGES/django.po +1654 -0
  288. wbcore/contrib/directory/migrations/0001_initial.py +871 -0
  289. wbcore/contrib/directory/migrations/0002_auto_20230414_1553.py +42 -0
  290. wbcore/contrib/directory/migrations/0003_remove_entry_last_event.py +16 -0
  291. wbcore/contrib/directory/migrations/0004_entry_is_draft_entry.py +21 -0
  292. wbcore/contrib/directory/migrations/0005_entry_salutation.py +17 -0
  293. wbcore/contrib/directory/migrations/0006_employeremployeerelationship_position_name.py +23 -0
  294. wbcore/contrib/directory/migrations/0007_alter_bankingcontact_options.py +20 -0
  295. wbcore/contrib/directory/migrations/0008_bankingcontact_access.py +17 -0
  296. wbcore/contrib/directory/migrations/0009_remove_entry_external_identfier_and_more.py +22 -0
  297. wbcore/contrib/directory/migrations/0010_remove_addresscontact_city.py +31 -0
  298. wbcore/contrib/directory/migrations/0011_person_description_person_i18n.py +24 -0
  299. wbcore/contrib/directory/migrations/0012_alter_person_managers.py +20 -0
  300. wbcore/contrib/directory/migrations/0013_alter_clientmanagerrelationship_options.py +17 -0
  301. wbcore/contrib/directory/migrations/0014_alter_entry_relationship_managers_and_more.py +28 -0
  302. wbcore/contrib/directory/migrations/__init__.py +0 -0
  303. wbcore/contrib/directory/models/__init__.py +27 -0
  304. wbcore/contrib/directory/models/contacts.py +554 -0
  305. wbcore/contrib/directory/models/entries.py +896 -0
  306. wbcore/contrib/directory/models/relationships.py +624 -0
  307. wbcore/contrib/directory/permissions.py +6 -0
  308. wbcore/contrib/directory/preferences.py +11 -0
  309. wbcore/contrib/directory/release_notes/1_0_0.md +13 -0
  310. wbcore/contrib/directory/release_notes/1_0_1.md +13 -0
  311. wbcore/contrib/directory/release_notes/__init__.py +0 -0
  312. wbcore/contrib/directory/serializers/__init__.py +62 -0
  313. wbcore/contrib/directory/serializers/companies.py +169 -0
  314. wbcore/contrib/directory/serializers/contacts.py +404 -0
  315. wbcore/contrib/directory/serializers/entries.py +355 -0
  316. wbcore/contrib/directory/serializers/entry_representations.py +38 -0
  317. wbcore/contrib/directory/serializers/persons.py +214 -0
  318. wbcore/contrib/directory/serializers/relationships.py +333 -0
  319. wbcore/contrib/directory/signals.py +3 -0
  320. wbcore/contrib/directory/static/directory/markdown/documentation/address.md +38 -0
  321. wbcore/contrib/directory/static/directory/markdown/documentation/banking.md +54 -0
  322. wbcore/contrib/directory/static/directory/markdown/documentation/bankingentry.md +38 -0
  323. wbcore/contrib/directory/static/directory/markdown/documentation/clientmanagerrelationship.md +42 -0
  324. wbcore/contrib/directory/static/directory/markdown/documentation/company.md +52 -0
  325. wbcore/contrib/directory/static/directory/markdown/documentation/companytype.md +2 -0
  326. wbcore/contrib/directory/static/directory/markdown/documentation/customerstatus.md +2 -0
  327. wbcore/contrib/directory/static/directory/markdown/documentation/email.md +20 -0
  328. wbcore/contrib/directory/static/directory/markdown/documentation/employeecompany.md +34 -0
  329. wbcore/contrib/directory/static/directory/markdown/documentation/employerperson.md +43 -0
  330. wbcore/contrib/directory/static/directory/markdown/documentation/person.md +61 -0
  331. wbcore/contrib/directory/static/directory/markdown/documentation/position.md +2 -0
  332. wbcore/contrib/directory/static/directory/markdown/documentation/relationshiptype.md +2 -0
  333. wbcore/contrib/directory/static/directory/markdown/documentation/socialmedia.md +23 -0
  334. wbcore/contrib/directory/static/directory/markdown/documentation/specialization.md +2 -0
  335. wbcore/contrib/directory/static/directory/markdown/documentation/systememployee.md +31 -0
  336. wbcore/contrib/directory/static/directory/markdown/documentation/telephone.md +23 -0
  337. wbcore/contrib/directory/static/directory/markdown/documentation/telephonesearch.md +26 -0
  338. wbcore/contrib/directory/static/directory/markdown/documentation/userisclient.md +14 -0
  339. wbcore/contrib/directory/static/directory/markdown/documentation/userismanager.md +28 -0
  340. wbcore/contrib/directory/static/directory/markdown/documentation/website.md +20 -0
  341. wbcore/contrib/directory/tests/__init__.py +0 -0
  342. wbcore/contrib/directory/tests/conftest.py +62 -0
  343. wbcore/contrib/directory/tests/disable_signals.py +62 -0
  344. wbcore/contrib/directory/tests/e2e/__init__.py +7 -0
  345. wbcore/contrib/directory/tests/e2e/e2e_directory_utility.py +163 -0
  346. wbcore/contrib/directory/tests/signals.py +89 -0
  347. wbcore/contrib/directory/tests/test_configs.py +6 -0
  348. wbcore/contrib/directory/tests/test_filters.py +60 -0
  349. wbcore/contrib/directory/tests/test_models.py +428 -0
  350. wbcore/contrib/directory/tests/test_permissions.py +123 -0
  351. wbcore/contrib/directory/tests/test_serializers.py +217 -0
  352. wbcore/contrib/directory/tests/test_viewsets.py +835 -0
  353. wbcore/contrib/directory/typings.py +17 -0
  354. wbcore/contrib/directory/urls.py +135 -0
  355. wbcore/contrib/directory/viewsets/__init__.py +57 -0
  356. wbcore/contrib/directory/viewsets/buttons/__init__.py +7 -0
  357. wbcore/contrib/directory/viewsets/buttons/contacts.py +17 -0
  358. wbcore/contrib/directory/viewsets/buttons/entries.py +134 -0
  359. wbcore/contrib/directory/viewsets/buttons/relationships.py +64 -0
  360. wbcore/contrib/directory/viewsets/contacts.py +392 -0
  361. wbcore/contrib/directory/viewsets/display/__init__.py +36 -0
  362. wbcore/contrib/directory/viewsets/display/contacts.py +368 -0
  363. wbcore/contrib/directory/viewsets/display/entries.py +532 -0
  364. wbcore/contrib/directory/viewsets/display/relationships.py +292 -0
  365. wbcore/contrib/directory/viewsets/display/utils.py +34 -0
  366. wbcore/contrib/directory/viewsets/endpoints/__init__.py +22 -0
  367. wbcore/contrib/directory/viewsets/endpoints/contacts.py +55 -0
  368. wbcore/contrib/directory/viewsets/endpoints/entries.py +31 -0
  369. wbcore/contrib/directory/viewsets/endpoints/relationships.py +81 -0
  370. wbcore/contrib/directory/viewsets/entries.py +205 -0
  371. wbcore/contrib/directory/viewsets/menu/__init__.py +16 -0
  372. wbcore/contrib/directory/viewsets/menu/contacts.py +26 -0
  373. wbcore/contrib/directory/viewsets/menu/entries.py +62 -0
  374. wbcore/contrib/directory/viewsets/menu/relationships.py +32 -0
  375. wbcore/contrib/directory/viewsets/menu/utils.py +73 -0
  376. wbcore/contrib/directory/viewsets/mixins.py +12 -0
  377. wbcore/contrib/directory/viewsets/previews/__init__.py +2 -0
  378. wbcore/contrib/directory/viewsets/previews/contacts.py +19 -0
  379. wbcore/contrib/directory/viewsets/previews/entries.py +32 -0
  380. wbcore/contrib/directory/viewsets/relationships.py +256 -0
  381. wbcore/contrib/directory/viewsets/titles/__init__.py +30 -0
  382. wbcore/contrib/directory/viewsets/titles/contacts.py +123 -0
  383. wbcore/contrib/directory/viewsets/titles/entries.py +30 -0
  384. wbcore/contrib/directory/viewsets/titles/relationships.py +86 -0
  385. wbcore/contrib/directory/viewsets/titles/utils.py +47 -0
  386. wbcore/contrib/directory/viewsets/utils.py +101 -0
  387. wbcore/contrib/documents/__init__.py +0 -0
  388. wbcore/contrib/documents/admin.py +80 -0
  389. wbcore/contrib/documents/apps.py +6 -0
  390. wbcore/contrib/documents/factories.py +44 -0
  391. wbcore/contrib/documents/filters.py +81 -0
  392. wbcore/contrib/documents/fixtures/docments.json +135 -0
  393. wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po +281 -0
  394. wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po.translated +285 -0
  395. wbcore/contrib/documents/locale/en/LC_MESSAGES/django.po +271 -0
  396. wbcore/contrib/documents/locale/fr/LC_MESSAGES/django.po +270 -0
  397. wbcore/contrib/documents/migrations/0001_initial.py +189 -0
  398. wbcore/contrib/documents/migrations/0002_documentmodelrelationship_primary_and_more.py +22 -0
  399. wbcore/contrib/documents/migrations/0003_alter_documentmodelrelationship_unique_together_and_more.py +30 -0
  400. wbcore/contrib/documents/migrations/0004_auto_20240103_0958.py +44 -0
  401. wbcore/contrib/documents/migrations/0005_document_valid_from_document_valid_until_and_more.py +32 -0
  402. wbcore/contrib/documents/migrations/__init__.py +0 -0
  403. wbcore/contrib/documents/models/__init__.py +4 -0
  404. wbcore/contrib/documents/models/document_model_relationships.py +58 -0
  405. wbcore/contrib/documents/models/document_types.py +36 -0
  406. wbcore/contrib/documents/models/documents.py +311 -0
  407. wbcore/contrib/documents/models/mixins.py +10 -0
  408. wbcore/contrib/documents/models/shareable_links.py +91 -0
  409. wbcore/contrib/documents/release_notes/1_0_0.md +13 -0
  410. wbcore/contrib/documents/release_notes/__init__.py +0 -0
  411. wbcore/contrib/documents/serializers/__init__.py +12 -0
  412. wbcore/contrib/documents/serializers/document_model_relationships.py +31 -0
  413. wbcore/contrib/documents/serializers/document_types.py +41 -0
  414. wbcore/contrib/documents/serializers/documents.py +65 -0
  415. wbcore/contrib/documents/serializers/shareable_links.py +91 -0
  416. wbcore/contrib/documents/static/documents/markdown/documentation/document_types.md +21 -0
  417. wbcore/contrib/documents/static/documents/markdown/documentation/documents.md +18 -0
  418. wbcore/contrib/documents/static/documents/markdown/documentation/shareablelink.md +28 -0
  419. wbcore/contrib/documents/static/documents/markdown/documentation/shareablelinkaccess.md +20 -0
  420. wbcore/contrib/documents/tests/conftest.py +30 -0
  421. wbcore/contrib/documents/tests/test_models.py +148 -0
  422. wbcore/contrib/documents/urls.py +43 -0
  423. wbcore/contrib/documents/viewsets/__init__.py +10 -0
  424. wbcore/contrib/documents/viewsets/buttons/__init__.py +3 -0
  425. wbcore/contrib/documents/viewsets/buttons/documents.py +54 -0
  426. wbcore/contrib/documents/viewsets/buttons/shareable_links.py +21 -0
  427. wbcore/contrib/documents/viewsets/buttons/signals.py +14 -0
  428. wbcore/contrib/documents/viewsets/display/__init__.py +4 -0
  429. wbcore/contrib/documents/viewsets/display/document_model_relationships.py +19 -0
  430. wbcore/contrib/documents/viewsets/display/document_types.py +24 -0
  431. wbcore/contrib/documents/viewsets/display/documents.py +102 -0
  432. wbcore/contrib/documents/viewsets/display/shareable_links.py +66 -0
  433. wbcore/contrib/documents/viewsets/document_model_relationships.py +25 -0
  434. wbcore/contrib/documents/viewsets/document_types.py +38 -0
  435. wbcore/contrib/documents/viewsets/documents.py +108 -0
  436. wbcore/contrib/documents/viewsets/endpoints/__init__.py +5 -0
  437. wbcore/contrib/documents/viewsets/endpoints/documents.py +20 -0
  438. wbcore/contrib/documents/viewsets/endpoints/documents_model_relationships.py +14 -0
  439. wbcore/contrib/documents/viewsets/endpoints/shareable_links.py +27 -0
  440. wbcore/contrib/documents/viewsets/menu/__init__.py +1 -0
  441. wbcore/contrib/documents/viewsets/menu/documents.py +25 -0
  442. wbcore/contrib/documents/viewsets/previews/__init__.py +1 -0
  443. wbcore/contrib/documents/viewsets/previews/documents.py +10 -0
  444. wbcore/contrib/documents/viewsets/shareable_links.py +110 -0
  445. wbcore/contrib/documents/viewsets/titles/__init__.py +3 -0
  446. wbcore/contrib/documents/viewsets/titles/document_types.py +14 -0
  447. wbcore/contrib/documents/viewsets/titles/documents.py +27 -0
  448. wbcore/contrib/documents/viewsets/titles/shareable_links.py +14 -0
  449. wbcore/contrib/dynamic_preferences/__init__.py +0 -0
  450. wbcore/contrib/dynamic_preferences/types.py +127 -0
  451. wbcore/contrib/dynamic_preferences/viewsets.py +27 -0
  452. wbcore/contrib/example_app/__init__.py +0 -0
  453. wbcore/contrib/example_app/admin.py +118 -0
  454. wbcore/contrib/example_app/apps.py +6 -0
  455. wbcore/contrib/example_app/factories/__init__.py +8 -0
  456. wbcore/contrib/example_app/factories/event.py +27 -0
  457. wbcore/contrib/example_app/factories/league.py +16 -0
  458. wbcore/contrib/example_app/factories/match.py +26 -0
  459. wbcore/contrib/example_app/factories/person.py +34 -0
  460. wbcore/contrib/example_app/factories/role.py +10 -0
  461. wbcore/contrib/example_app/factories/sport.py +13 -0
  462. wbcore/contrib/example_app/factories/stadium.py +13 -0
  463. wbcore/contrib/example_app/factories/team.py +37 -0
  464. wbcore/contrib/example_app/filters/__init__.py +9 -0
  465. wbcore/contrib/example_app/filters/event.py +83 -0
  466. wbcore/contrib/example_app/filters/league.py +75 -0
  467. wbcore/contrib/example_app/filters/match.py +93 -0
  468. wbcore/contrib/example_app/filters/person.py +78 -0
  469. wbcore/contrib/example_app/filters/role.py +18 -0
  470. wbcore/contrib/example_app/filters/sport.py +27 -0
  471. wbcore/contrib/example_app/filters/stadium.py +31 -0
  472. wbcore/contrib/example_app/filters/team.py +78 -0
  473. wbcore/contrib/example_app/filters/teamresult.py +48 -0
  474. wbcore/contrib/example_app/fixtures/example_app.json +7425 -0
  475. wbcore/contrib/example_app/migrations/0001_initial.py +498 -0
  476. wbcore/contrib/example_app/migrations/0002_sportperson_profile.py +49 -0
  477. wbcore/contrib/example_app/migrations/0003_change_stadium_capacity.py +31 -0
  478. wbcore/contrib/example_app/migrations/0004_alter_player_transfer_value.py +21 -0
  479. wbcore/contrib/example_app/migrations/0005_sportperson_profile_image.py +23 -0
  480. wbcore/contrib/example_app/migrations/0006_league_season_period_player_is_active_and_more.py +116 -0
  481. wbcore/contrib/example_app/migrations/0007_alter_player_options_alter_team_options_and_more.py +40 -0
  482. wbcore/contrib/example_app/migrations/__init__.py +0 -0
  483. wbcore/contrib/example_app/models.py +978 -0
  484. wbcore/contrib/example_app/serializers/__init__.py +31 -0
  485. wbcore/contrib/example_app/serializers/league.py +112 -0
  486. wbcore/contrib/example_app/serializers/match_event.py +305 -0
  487. wbcore/contrib/example_app/serializers/person_team.py +281 -0
  488. wbcore/contrib/example_app/serializers/role.py +16 -0
  489. wbcore/contrib/example_app/serializers/season.py +54 -0
  490. wbcore/contrib/example_app/serializers/sport.py +38 -0
  491. wbcore/contrib/example_app/serializers/stadium.py +59 -0
  492. wbcore/contrib/example_app/serializers/teamresult.py +44 -0
  493. wbcore/contrib/example_app/templates/example_app/embedded_view.html +19 -0
  494. wbcore/contrib/example_app/tests/__init__.py +0 -0
  495. wbcore/contrib/example_app/tests/conftest.py +13 -0
  496. wbcore/contrib/example_app/tests/e2e/__init__.py +1 -0
  497. wbcore/contrib/example_app/tests/e2e/e2e_example_app_utility.py +52 -0
  498. wbcore/contrib/example_app/tests/e2e/test_league.py +70 -0
  499. wbcore/contrib/example_app/tests/e2e/test_person.py +68 -0
  500. wbcore/contrib/example_app/tests/e2e/test_teams.py +57 -0
  501. wbcore/contrib/example_app/tests/signals.py +7 -0
  502. wbcore/contrib/example_app/tests/test_displays.py +41 -0
  503. wbcore/contrib/example_app/tests/test_filters.py +71 -0
  504. wbcore/contrib/example_app/tests/test_models/test_event.py +89 -0
  505. wbcore/contrib/example_app/tests/test_models/test_match.py +220 -0
  506. wbcore/contrib/example_app/tests/test_models/test_others.py +161 -0
  507. wbcore/contrib/example_app/tests/test_serializers/test_league_serializer.py +34 -0
  508. wbcore/contrib/example_app/tests/test_serializers/test_match_serializer.py +139 -0
  509. wbcore/contrib/example_app/tests/test_serializers/test_role_serializer.py +13 -0
  510. wbcore/contrib/example_app/tests/test_serializers/test_sport_serializer.py +14 -0
  511. wbcore/contrib/example_app/tests/test_serializers/test_stadium_serializer.py +14 -0
  512. wbcore/contrib/example_app/tests/test_serializers/test_team_result_serializer.py +30 -0
  513. wbcore/contrib/example_app/tests/test_serializers/test_team_serializer.py +70 -0
  514. wbcore/contrib/example_app/tests/test_utils.py +26 -0
  515. wbcore/contrib/example_app/tests/test_viewsets/test_event_viewset.py +167 -0
  516. wbcore/contrib/example_app/tests/test_viewsets/test_league_viewset.py +84 -0
  517. wbcore/contrib/example_app/tests/test_viewsets/test_match_viewset.py +65 -0
  518. wbcore/contrib/example_app/tests/test_viewsets/test_person_viewset.py +166 -0
  519. wbcore/contrib/example_app/tests/test_viewsets/test_role_viewset.py +75 -0
  520. wbcore/contrib/example_app/tests/test_viewsets/test_sport_viewset.py +75 -0
  521. wbcore/contrib/example_app/tests/test_viewsets/test_stadium_viewset.py +75 -0
  522. wbcore/contrib/example_app/tests/test_viewsets/test_team_viewset.py +92 -0
  523. wbcore/contrib/example_app/tests/test_viewsets/test_teamresult_viewset.py +58 -0
  524. wbcore/contrib/example_app/tests/test_viewsets/test_utils_viewsets.py +124 -0
  525. wbcore/contrib/example_app/urls.py +82 -0
  526. wbcore/contrib/example_app/utils.py +21 -0
  527. wbcore/contrib/example_app/views.py +6 -0
  528. wbcore/contrib/example_app/viewsets/__init__.py +29 -0
  529. wbcore/contrib/example_app/viewsets/buttons/__init__.py +2 -0
  530. wbcore/contrib/example_app/viewsets/buttons/person.py +19 -0
  531. wbcore/contrib/example_app/viewsets/buttons/team.py +24 -0
  532. wbcore/contrib/example_app/viewsets/displays/__init__.py +23 -0
  533. wbcore/contrib/example_app/viewsets/displays/event.py +187 -0
  534. wbcore/contrib/example_app/viewsets/displays/league.py +391 -0
  535. wbcore/contrib/example_app/viewsets/displays/match.py +265 -0
  536. wbcore/contrib/example_app/viewsets/displays/person.py +252 -0
  537. wbcore/contrib/example_app/viewsets/displays/role.py +17 -0
  538. wbcore/contrib/example_app/viewsets/displays/season.py +66 -0
  539. wbcore/contrib/example_app/viewsets/displays/sport.py +116 -0
  540. wbcore/contrib/example_app/viewsets/displays/stadium.py +150 -0
  541. wbcore/contrib/example_app/viewsets/displays/team.py +250 -0
  542. wbcore/contrib/example_app/viewsets/displays/teamresult.py +31 -0
  543. wbcore/contrib/example_app/viewsets/endpoints/__init__.py +12 -0
  544. wbcore/contrib/example_app/viewsets/endpoints/endpoints.py +80 -0
  545. wbcore/contrib/example_app/viewsets/event.py +288 -0
  546. wbcore/contrib/example_app/viewsets/league.py +73 -0
  547. wbcore/contrib/example_app/viewsets/match.py +120 -0
  548. wbcore/contrib/example_app/viewsets/menu/__init__.py +1 -0
  549. wbcore/contrib/example_app/viewsets/menu/menus.py +103 -0
  550. wbcore/contrib/example_app/viewsets/menus.py +64 -0
  551. wbcore/contrib/example_app/viewsets/person.py +134 -0
  552. wbcore/contrib/example_app/viewsets/role.py +25 -0
  553. wbcore/contrib/example_app/viewsets/season.py +23 -0
  554. wbcore/contrib/example_app/viewsets/sport.py +26 -0
  555. wbcore/contrib/example_app/viewsets/stadium.py +31 -0
  556. wbcore/contrib/example_app/viewsets/team.py +69 -0
  557. wbcore/contrib/example_app/viewsets/teamresult.py +107 -0
  558. wbcore/contrib/example_app/viewsets/titles/__init__.py +9 -0
  559. wbcore/contrib/example_app/viewsets/titles/event.py +42 -0
  560. wbcore/contrib/example_app/viewsets/titles/league.py +25 -0
  561. wbcore/contrib/example_app/viewsets/titles/match.py +35 -0
  562. wbcore/contrib/example_app/viewsets/titles/person.py +36 -0
  563. wbcore/contrib/example_app/viewsets/titles/role.py +14 -0
  564. wbcore/contrib/example_app/viewsets/titles/sport.py +14 -0
  565. wbcore/contrib/example_app/viewsets/titles/stadium.py +14 -0
  566. wbcore/contrib/example_app/viewsets/titles/team.py +25 -0
  567. wbcore/contrib/example_app/viewsets/titles/teamresult.py +13 -0
  568. wbcore/contrib/geography/__init__.py +0 -0
  569. wbcore/contrib/geography/admin.py +30 -0
  570. wbcore/contrib/geography/apps.py +5 -0
  571. wbcore/contrib/geography/factories.py +46 -0
  572. wbcore/contrib/geography/fixtures/geography.json +13454 -0
  573. wbcore/contrib/geography/import_export/__init__.py +0 -0
  574. wbcore/contrib/geography/import_export/resources/__init__.py +0 -0
  575. wbcore/contrib/geography/import_export/resources/geography.py +11 -0
  576. wbcore/contrib/geography/migrations/0001_initial.py +110 -0
  577. wbcore/contrib/geography/migrations/0002_geography_geography_geography_tree_i739a.py +17 -0
  578. wbcore/contrib/geography/migrations/__init__.py +0 -0
  579. wbcore/contrib/geography/models.py +150 -0
  580. wbcore/contrib/geography/release_notes/1_0_0.md +13 -0
  581. wbcore/contrib/geography/release_notes/__init__.py +0 -0
  582. wbcore/contrib/geography/serializers.py +29 -0
  583. wbcore/contrib/geography/static/geography/markdown/documentation/geography.md +16 -0
  584. wbcore/contrib/geography/tests/__init__.py +0 -0
  585. wbcore/contrib/geography/tests/conftest.py +26 -0
  586. wbcore/contrib/geography/tests/signals.py +7 -0
  587. wbcore/contrib/geography/tests/test_models.py +27 -0
  588. wbcore/contrib/geography/tests/test_viewsets.py +100 -0
  589. wbcore/contrib/geography/urls.py +13 -0
  590. wbcore/contrib/geography/viewsets/__init__.py +1 -0
  591. wbcore/contrib/geography/viewsets/buttons/__init__.py +0 -0
  592. wbcore/contrib/geography/viewsets/display/__init__.py +1 -0
  593. wbcore/contrib/geography/viewsets/display/geography.py +32 -0
  594. wbcore/contrib/geography/viewsets/endpoints/__init__.py +0 -0
  595. wbcore/contrib/geography/viewsets/geography.py +58 -0
  596. wbcore/contrib/geography/viewsets/menu/__init__.py +1 -0
  597. wbcore/contrib/geography/viewsets/menu/geography.py +8 -0
  598. wbcore/contrib/geography/viewsets/preview/__init__.py +1 -0
  599. wbcore/contrib/geography/viewsets/preview/geography.py +19 -0
  600. wbcore/contrib/geography/viewsets/titles/__init__.py +0 -0
  601. wbcore/contrib/geography/viewsets/titles/geography.py +14 -0
  602. wbcore/contrib/gleap/__init__.py +0 -0
  603. wbcore/contrib/gleap/apps.py +5 -0
  604. wbcore/contrib/gleap/configs.py +12 -0
  605. wbcore/contrib/gleap/configurations.py +6 -0
  606. wbcore/contrib/gleap/hashes.py +13 -0
  607. wbcore/contrib/gleap/tests/__init__.py +0 -0
  608. wbcore/contrib/gleap/tests/conftest.py +1 -0
  609. wbcore/contrib/gleap/tests/tests.py +29 -0
  610. wbcore/contrib/gleap/urls.py +8 -0
  611. wbcore/contrib/gleap/views.py +31 -0
  612. wbcore/contrib/guardian/apps.py +6 -0
  613. wbcore/contrib/guardian/configurations.py +3 -0
  614. wbcore/contrib/guardian/filters.py +21 -0
  615. wbcore/contrib/guardian/migrations/0001_initial.py +103 -0
  616. wbcore/contrib/guardian/migrations/__init__.py +0 -0
  617. wbcore/contrib/guardian/models/__init__.py +1 -0
  618. wbcore/contrib/guardian/models/mixins.py +139 -0
  619. wbcore/contrib/guardian/models/models.py +29 -0
  620. wbcore/contrib/guardian/tasks.py +11 -0
  621. wbcore/contrib/guardian/tests/__init__.py +0 -0
  622. wbcore/contrib/guardian/tests/conftest.py +1 -0
  623. wbcore/contrib/guardian/tests/test_model_mixins.py +92 -0
  624. wbcore/contrib/guardian/tests/test_tasks.py +77 -0
  625. wbcore/contrib/guardian/tests/test_utils.py +196 -0
  626. wbcore/contrib/guardian/tests/test_viewsets.py +48 -0
  627. wbcore/contrib/guardian/urls.py +12 -0
  628. wbcore/contrib/guardian/utils.py +124 -0
  629. wbcore/contrib/guardian/viewsets/__init__.py +1 -0
  630. wbcore/contrib/guardian/viewsets/configs/__init__.py +4 -0
  631. wbcore/contrib/guardian/viewsets/configs/buttons.py +36 -0
  632. wbcore/contrib/guardian/viewsets/configs/displays.py +43 -0
  633. wbcore/contrib/guardian/viewsets/configs/endpoints.py +25 -0
  634. wbcore/contrib/guardian/viewsets/configs/titles.py +16 -0
  635. wbcore/contrib/guardian/viewsets/mixins.py +6 -0
  636. wbcore/contrib/guardian/viewsets/viewsets.py +141 -0
  637. wbcore/contrib/i18n/__init__.py +2 -0
  638. wbcore/contrib/i18n/buttons.py +33 -0
  639. wbcore/contrib/i18n/serializers/__init__.py +0 -0
  640. wbcore/contrib/i18n/serializers/fields.py +20 -0
  641. wbcore/contrib/i18n/serializers/mixins.py +13 -0
  642. wbcore/contrib/i18n/tests/conftest.py +11 -0
  643. wbcore/contrib/i18n/tests/test_viewsets.py +67 -0
  644. wbcore/contrib/i18n/translation.py +141 -0
  645. wbcore/contrib/i18n/viewsets.py +36 -0
  646. wbcore/contrib/icons/__init__.py +1 -0
  647. wbcore/contrib/icons/apps.py +5 -0
  648. wbcore/contrib/icons/backends/__init__.py +5 -0
  649. wbcore/contrib/icons/backends/default.py +375 -0
  650. wbcore/contrib/icons/backends/material.py +136 -0
  651. wbcore/contrib/icons/icons.py +167 -0
  652. wbcore/contrib/icons/models.py +11 -0
  653. wbcore/contrib/icons/serializers.py +18 -0
  654. wbcore/contrib/io/__init__.py +0 -0
  655. wbcore/contrib/io/admin.py +151 -0
  656. wbcore/contrib/io/apps.py +37 -0
  657. wbcore/contrib/io/backends/__init__.py +3 -0
  658. wbcore/contrib/io/backends/abstract.py +60 -0
  659. wbcore/contrib/io/backends/mail.py +39 -0
  660. wbcore/contrib/io/backends/utils.py +39 -0
  661. wbcore/contrib/io/configs/__init__.py +0 -0
  662. wbcore/contrib/io/configs/endpoints.py +13 -0
  663. wbcore/contrib/io/configurations/__init__.py +1 -0
  664. wbcore/contrib/io/configurations/base.py +7 -0
  665. wbcore/contrib/io/dynamic_preferences_registry.py +25 -0
  666. wbcore/contrib/io/enums.py +15 -0
  667. wbcore/contrib/io/exceptions.py +24 -0
  668. wbcore/contrib/io/factories.py +205 -0
  669. wbcore/contrib/io/fixtures/io.json +145 -0
  670. wbcore/contrib/io/import_export/backends/__init__.py +3 -0
  671. wbcore/contrib/io/import_export/backends/mail.py +51 -0
  672. wbcore/contrib/io/import_export/backends/sftp.py +69 -0
  673. wbcore/contrib/io/import_export/backends/stream.py +92 -0
  674. wbcore/contrib/io/import_export/parsers/__init__.py +0 -0
  675. wbcore/contrib/io/import_export/parsers/base_csv.py +36 -0
  676. wbcore/contrib/io/import_export/parsers/resources.py +50 -0
  677. wbcore/contrib/io/imports.py +313 -0
  678. wbcore/contrib/io/locale/de/LC_MESSAGES/django.po +144 -0
  679. wbcore/contrib/io/locale/de/LC_MESSAGES/django.po.translated +103 -0
  680. wbcore/contrib/io/locale/en/LC_MESSAGES/django.po +138 -0
  681. wbcore/contrib/io/locale/fr/LC_MESSAGES/django.po +138 -0
  682. wbcore/contrib/io/management/__init__.py +13 -0
  683. wbcore/contrib/io/migrations/0001_initial_squashed.py +319 -0
  684. wbcore/contrib/io/migrations/0002_importsource_creator.py +26 -0
  685. wbcore/contrib/io/migrations/0003_auto_20240103_1000.py +46 -0
  686. wbcore/contrib/io/migrations/0004_alter_importsource_status_exportsource.py +134 -0
  687. wbcore/contrib/io/migrations/0005_exportsource_data_alter_exportsource_query_str_and_more.py +67 -0
  688. wbcore/contrib/io/migrations/0006_alter_exportsource_query_params.py +20 -0
  689. wbcore/contrib/io/migrations/0007_alter_exportsource_query_params.py +23 -0
  690. wbcore/contrib/io/migrations/0008_importsource_resource_kwargs.py +18 -0
  691. wbcore/contrib/io/migrations/__init__.py +0 -0
  692. wbcore/contrib/io/mixins.py +37 -0
  693. wbcore/contrib/io/models.py +1037 -0
  694. wbcore/contrib/io/release_notes/1_0_0.md +13 -0
  695. wbcore/contrib/io/release_notes/__init__.py +0 -0
  696. wbcore/contrib/io/resources.py +176 -0
  697. wbcore/contrib/io/serializers.py +137 -0
  698. wbcore/contrib/io/signals.py +4 -0
  699. wbcore/contrib/io/tasks.py +27 -0
  700. wbcore/contrib/io/tests/__init__.py +0 -0
  701. wbcore/contrib/io/tests/conftest.py +42 -0
  702. wbcore/contrib/io/tests/test_backends.py +134 -0
  703. wbcore/contrib/io/tests/test_exports.py +130 -0
  704. wbcore/contrib/io/tests/test_imports.py +168 -0
  705. wbcore/contrib/io/tests/test_models.py +396 -0
  706. wbcore/contrib/io/tests/test_viewsets.py +271 -0
  707. wbcore/contrib/io/urls.py +29 -0
  708. wbcore/contrib/io/utils.py +44 -0
  709. wbcore/contrib/io/viewset_mixins.py +271 -0
  710. wbcore/contrib/io/viewsets.py +139 -0
  711. wbcore/contrib/notifications/__init__.py +0 -0
  712. wbcore/contrib/notifications/admin.py +63 -0
  713. wbcore/contrib/notifications/apps.py +43 -0
  714. wbcore/contrib/notifications/backends/__init__.py +0 -0
  715. wbcore/contrib/notifications/backends/abstract_backend.py +11 -0
  716. wbcore/contrib/notifications/backends/console/__init__.py +1 -0
  717. wbcore/contrib/notifications/backends/console/backends.py +25 -0
  718. wbcore/contrib/notifications/backends/firebase/__init__.py +1 -0
  719. wbcore/contrib/notifications/backends/firebase/backends.py +106 -0
  720. wbcore/contrib/notifications/configs.py +13 -0
  721. wbcore/contrib/notifications/configurations.py +9 -0
  722. wbcore/contrib/notifications/dispatch.py +90 -0
  723. wbcore/contrib/notifications/factories/__init__.py +0 -0
  724. wbcore/contrib/notifications/factories/notification_types.py +24 -0
  725. wbcore/contrib/notifications/factories/notifications.py +17 -0
  726. wbcore/contrib/notifications/factories/tokens.py +12 -0
  727. wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po +66 -0
  728. wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po.translated +63 -0
  729. wbcore/contrib/notifications/locale/en/LC_MESSAGES/django.po +61 -0
  730. wbcore/contrib/notifications/locale/fr/LC_MESSAGES/django.po +62 -0
  731. wbcore/contrib/notifications/migrations/0001_initial.py +116 -0
  732. wbcore/contrib/notifications/migrations/0002_notificationusertoken_unique_user_token_device.py +18 -0
  733. wbcore/contrib/notifications/migrations/0003_notificationusertoken_updated.py +17 -0
  734. wbcore/contrib/notifications/migrations/0004_alter_notification_body.py +17 -0
  735. wbcore/contrib/notifications/migrations/0005_alter_notification_endpoint.py +17 -0
  736. wbcore/contrib/notifications/migrations/0006_notification_created.py +25 -0
  737. wbcore/contrib/notifications/migrations/0007_notificationtype_resource_button_label.py +19 -0
  738. wbcore/contrib/notifications/migrations/0008_notificationtype_is_lock.py +18 -0
  739. wbcore/contrib/notifications/migrations/0009_alter_notificationtypesetting_options_and_more.py +32 -0
  740. wbcore/contrib/notifications/migrations/__init__.py +0 -0
  741. wbcore/contrib/notifications/models/__init__.py +3 -0
  742. wbcore/contrib/notifications/models/notification_types.py +165 -0
  743. wbcore/contrib/notifications/models/notifications.py +82 -0
  744. wbcore/contrib/notifications/models/tokens.py +46 -0
  745. wbcore/contrib/notifications/release_notes/1_0_0.md +13 -0
  746. wbcore/contrib/notifications/release_notes/__init__.py +0 -0
  747. wbcore/contrib/notifications/serializers/__init__.py +5 -0
  748. wbcore/contrib/notifications/serializers/notification_types.py +51 -0
  749. wbcore/contrib/notifications/serializers/notifications.py +33 -0
  750. wbcore/contrib/notifications/static/notifications/service-worker.js +1 -0
  751. wbcore/contrib/notifications/tasks.py +57 -0
  752. wbcore/contrib/notifications/templates/notifications/notification_template.html +43 -0
  753. wbcore/contrib/notifications/tests/__init__.py +0 -0
  754. wbcore/contrib/notifications/tests/conftest.py +47 -0
  755. wbcore/contrib/notifications/tests/test_backends/__init__.py +0 -0
  756. wbcore/contrib/notifications/tests/test_backends/test_firebase.py +79 -0
  757. wbcore/contrib/notifications/tests/test_configs.py +7 -0
  758. wbcore/contrib/notifications/tests/test_models/__init__.py +0 -0
  759. wbcore/contrib/notifications/tests/test_models/test_notification_types.py +85 -0
  760. wbcore/contrib/notifications/tests/test_models/test_notifications.py +46 -0
  761. wbcore/contrib/notifications/tests/test_models/test_tokens.py +30 -0
  762. wbcore/contrib/notifications/tests/test_serializers/__init__.py +0 -0
  763. wbcore/contrib/notifications/tests/test_serializers/test_notification_types.py +59 -0
  764. wbcore/contrib/notifications/tests/test_serializers/test_notifications.py +24 -0
  765. wbcore/contrib/notifications/tests/test_tasks.py +72 -0
  766. wbcore/contrib/notifications/tests/test_utils.py +0 -0
  767. wbcore/contrib/notifications/tests/test_viewsets/__init__.py +0 -0
  768. wbcore/contrib/notifications/tests/test_viewsets/test_notification_types.py +120 -0
  769. wbcore/contrib/notifications/tests/test_viewsets/test_notifications.py +143 -0
  770. wbcore/contrib/notifications/urls.py +27 -0
  771. wbcore/contrib/notifications/utils.py +27 -0
  772. wbcore/contrib/notifications/views.py +63 -0
  773. wbcore/contrib/notifications/viewsets/__init__.py +5 -0
  774. wbcore/contrib/notifications/viewsets/configs/notification_types.py +49 -0
  775. wbcore/contrib/notifications/viewsets/configs/notifications.py +91 -0
  776. wbcore/contrib/notifications/viewsets/menus.py +15 -0
  777. wbcore/contrib/notifications/viewsets/notification_types.py +51 -0
  778. wbcore/contrib/notifications/viewsets/notifications.py +58 -0
  779. wbcore/contrib/pandas/__init__.py +0 -0
  780. wbcore/contrib/pandas/fields.py +172 -0
  781. wbcore/contrib/pandas/filters.py +118 -0
  782. wbcore/contrib/pandas/filterset.py +28 -0
  783. wbcore/contrib/pandas/metadata.py +15 -0
  784. wbcore/contrib/pandas/tests/__init__.py +0 -0
  785. wbcore/contrib/pandas/tests/test_base.py +22 -0
  786. wbcore/contrib/pandas/tests/test_fields/__init__.py +0 -0
  787. wbcore/contrib/pandas/tests/test_fields/test_number_fields.py +19 -0
  788. wbcore/contrib/pandas/tests/test_filters/__init__.py +0 -0
  789. wbcore/contrib/pandas/tests/test_filters/test_pandas.py +115 -0
  790. wbcore/contrib/pandas/tests/test_views.py +22 -0
  791. wbcore/contrib/pandas/utils.py +170 -0
  792. wbcore/contrib/pandas/views.py +158 -0
  793. wbcore/contrib/tags/__init__.py +0 -0
  794. wbcore/contrib/tags/admin.py +17 -0
  795. wbcore/contrib/tags/apps.py +9 -0
  796. wbcore/contrib/tags/factories.py +28 -0
  797. wbcore/contrib/tags/filters.py +43 -0
  798. wbcore/contrib/tags/migrations/0001_initial.py +62 -0
  799. wbcore/contrib/tags/migrations/__init__.py +0 -0
  800. wbcore/contrib/tags/models/__init__.py +2 -0
  801. wbcore/contrib/tags/models/mixins.py +27 -0
  802. wbcore/contrib/tags/models/tags.py +107 -0
  803. wbcore/contrib/tags/release_notes/1_0_0.md +13 -0
  804. wbcore/contrib/tags/release_notes/__init__.py +0 -0
  805. wbcore/contrib/tags/serializers.py +90 -0
  806. wbcore/contrib/tags/signals.py +19 -0
  807. wbcore/contrib/tags/tests/__init__.py +0 -0
  808. wbcore/contrib/tags/tests/conftest.py +7 -0
  809. wbcore/contrib/tags/tests/tests.py +144 -0
  810. wbcore/contrib/tags/urls.py +15 -0
  811. wbcore/contrib/tags/viewsets/__init__.py +10 -0
  812. wbcore/contrib/tags/viewsets/display.py +50 -0
  813. wbcore/contrib/tags/viewsets/menu.py +15 -0
  814. wbcore/contrib/tags/viewsets/viewsets.py +58 -0
  815. wbcore/contrib/workflow/__init__.py +1 -0
  816. wbcore/contrib/workflow/admin/__init__.py +15 -0
  817. wbcore/contrib/workflow/admin/condition.py +9 -0
  818. wbcore/contrib/workflow/admin/data.py +15 -0
  819. wbcore/contrib/workflow/admin/display.py +9 -0
  820. wbcore/contrib/workflow/admin/process.py +37 -0
  821. wbcore/contrib/workflow/admin/step.py +92 -0
  822. wbcore/contrib/workflow/admin/transition.py +9 -0
  823. wbcore/contrib/workflow/admin/workflow.py +9 -0
  824. wbcore/contrib/workflow/apps.py +25 -0
  825. wbcore/contrib/workflow/configs.py +11 -0
  826. wbcore/contrib/workflow/decorators.py +25 -0
  827. wbcore/contrib/workflow/dispatch.py +24 -0
  828. wbcore/contrib/workflow/factories/__init__.py +18 -0
  829. wbcore/contrib/workflow/factories/condition.py +16 -0
  830. wbcore/contrib/workflow/factories/data.py +23 -0
  831. wbcore/contrib/workflow/factories/display.py +28 -0
  832. wbcore/contrib/workflow/factories/process.py +70 -0
  833. wbcore/contrib/workflow/factories/step.py +157 -0
  834. wbcore/contrib/workflow/factories/transition.py +27 -0
  835. wbcore/contrib/workflow/factories/workflow.py +20 -0
  836. wbcore/contrib/workflow/filters/__init__.py +24 -0
  837. wbcore/contrib/workflow/filters/condition.py +24 -0
  838. wbcore/contrib/workflow/filters/data.py +25 -0
  839. wbcore/contrib/workflow/filters/process.py +165 -0
  840. wbcore/contrib/workflow/filters/step.py +227 -0
  841. wbcore/contrib/workflow/filters/transition.py +42 -0
  842. wbcore/contrib/workflow/filters/workflow.py +44 -0
  843. wbcore/contrib/workflow/fixtures/workflow.json +612 -0
  844. wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po +1180 -0
  845. wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po.translated +1326 -0
  846. wbcore/contrib/workflow/locale/en/LC_MESSAGES/django.po +1102 -0
  847. wbcore/contrib/workflow/locale/fr/LC_MESSAGES/django.po +1114 -0
  848. wbcore/contrib/workflow/migrations/0001_initial.py +788 -0
  849. wbcore/contrib/workflow/migrations/0002_alter_step_step_type.py +31 -0
  850. wbcore/contrib/workflow/migrations/0003_alter_condition_attribute_name_and_more.py +75 -0
  851. wbcore/contrib/workflow/migrations/0004_alter_userstep_assignee_method.py +27 -0
  852. wbcore/contrib/workflow/migrations/0005_alter_userstep_assignee_method.py +17 -0
  853. wbcore/contrib/workflow/migrations/__init__.py +0 -0
  854. wbcore/contrib/workflow/models/__init__.py +19 -0
  855. wbcore/contrib/workflow/models/condition.py +124 -0
  856. wbcore/contrib/workflow/models/data.py +242 -0
  857. wbcore/contrib/workflow/models/display.py +34 -0
  858. wbcore/contrib/workflow/models/process.py +244 -0
  859. wbcore/contrib/workflow/models/step.py +778 -0
  860. wbcore/contrib/workflow/models/transition.py +71 -0
  861. wbcore/contrib/workflow/models/workflow.py +317 -0
  862. wbcore/contrib/workflow/serializers/__init__.py +37 -0
  863. wbcore/contrib/workflow/serializers/condition.py +65 -0
  864. wbcore/contrib/workflow/serializers/data.py +136 -0
  865. wbcore/contrib/workflow/serializers/display.py +25 -0
  866. wbcore/contrib/workflow/serializers/process.py +184 -0
  867. wbcore/contrib/workflow/serializers/signals.py +26 -0
  868. wbcore/contrib/workflow/serializers/step.py +365 -0
  869. wbcore/contrib/workflow/serializers/transition.py +81 -0
  870. wbcore/contrib/workflow/serializers/workflow.py +125 -0
  871. wbcore/contrib/workflow/sites.py +43 -0
  872. wbcore/contrib/workflow/static/workflow/markdown/documentation/assignedprocessstep.md +33 -0
  873. wbcore/contrib/workflow/static/workflow/markdown/documentation/condition.md +24 -0
  874. wbcore/contrib/workflow/static/workflow/markdown/documentation/decisionstep.md +30 -0
  875. wbcore/contrib/workflow/static/workflow/markdown/documentation/emailstep.md +45 -0
  876. wbcore/contrib/workflow/static/workflow/markdown/documentation/finishstep.md +33 -0
  877. wbcore/contrib/workflow/static/workflow/markdown/documentation/joinstep.md +33 -0
  878. wbcore/contrib/workflow/static/workflow/markdown/documentation/process.md +33 -0
  879. wbcore/contrib/workflow/static/workflow/markdown/documentation/processstep.md +51 -0
  880. wbcore/contrib/workflow/static/workflow/markdown/documentation/scriptstep.md +33 -0
  881. wbcore/contrib/workflow/static/workflow/markdown/documentation/splitstep.md +30 -0
  882. wbcore/contrib/workflow/static/workflow/markdown/documentation/startstep.md +27 -0
  883. wbcore/contrib/workflow/static/workflow/markdown/documentation/transition.md +27 -0
  884. wbcore/contrib/workflow/static/workflow/markdown/documentation/userstep.md +42 -0
  885. wbcore/contrib/workflow/static/workflow/markdown/documentation/workflow.md +32 -0
  886. wbcore/contrib/workflow/templates/Test_Templates.txt +25 -0
  887. wbcore/contrib/workflow/tests/__init__.py +0 -0
  888. wbcore/contrib/workflow/tests/conftest.py +281 -0
  889. wbcore/contrib/workflow/tests/test_configs.py +6 -0
  890. wbcore/contrib/workflow/tests/test_dispatch.py +94 -0
  891. wbcore/contrib/workflow/tests/test_displays.py +42 -0
  892. wbcore/contrib/workflow/tests/test_filters.py +104 -0
  893. wbcore/contrib/workflow/tests/test_models/step/test_decision_step.py +82 -0
  894. wbcore/contrib/workflow/tests/test_models/step/test_email_step.py +85 -0
  895. wbcore/contrib/workflow/tests/test_models/step/test_finish_step.py +167 -0
  896. wbcore/contrib/workflow/tests/test_models/step/test_join_step.py +117 -0
  897. wbcore/contrib/workflow/tests/test_models/step/test_script_step.py +24 -0
  898. wbcore/contrib/workflow/tests/test_models/step/test_split_step.py +49 -0
  899. wbcore/contrib/workflow/tests/test_models/step/test_step.py +756 -0
  900. wbcore/contrib/workflow/tests/test_models/step/test_user_step.py +225 -0
  901. wbcore/contrib/workflow/tests/test_models/test_condition.py +103 -0
  902. wbcore/contrib/workflow/tests/test_models/test_data.py +134 -0
  903. wbcore/contrib/workflow/tests/test_models/test_process.py +98 -0
  904. wbcore/contrib/workflow/tests/test_models/test_transition.py +128 -0
  905. wbcore/contrib/workflow/tests/test_models/test_workflow.py +358 -0
  906. wbcore/contrib/workflow/tests/test_serializers.py +200 -0
  907. wbcore/contrib/workflow/tests/test_viewsets.py +300 -0
  908. wbcore/contrib/workflow/tests/test_workflow_assignees.py +236 -0
  909. wbcore/contrib/workflow/urls.py +67 -0
  910. wbcore/contrib/workflow/utils.py +13 -0
  911. wbcore/contrib/workflow/viewsets/__init__.py +17 -0
  912. wbcore/contrib/workflow/viewsets/buttons/__init__.py +1 -0
  913. wbcore/contrib/workflow/viewsets/buttons/step.py +68 -0
  914. wbcore/contrib/workflow/viewsets/condition.py +32 -0
  915. wbcore/contrib/workflow/viewsets/data.py +33 -0
  916. wbcore/contrib/workflow/viewsets/display/__init__.py +15 -0
  917. wbcore/contrib/workflow/viewsets/display/condition.py +51 -0
  918. wbcore/contrib/workflow/viewsets/display/data.py +51 -0
  919. wbcore/contrib/workflow/viewsets/display/process.py +186 -0
  920. wbcore/contrib/workflow/viewsets/display/step.py +454 -0
  921. wbcore/contrib/workflow/viewsets/display/transition.py +76 -0
  922. wbcore/contrib/workflow/viewsets/display/workflow.py +168 -0
  923. wbcore/contrib/workflow/viewsets/endpoints/__init__.py +5 -0
  924. wbcore/contrib/workflow/viewsets/endpoints/condition.py +9 -0
  925. wbcore/contrib/workflow/viewsets/endpoints/data.py +9 -0
  926. wbcore/contrib/workflow/viewsets/endpoints/process.py +11 -0
  927. wbcore/contrib/workflow/viewsets/endpoints/step.py +24 -0
  928. wbcore/contrib/workflow/viewsets/endpoints/transition.py +19 -0
  929. wbcore/contrib/workflow/viewsets/menu/__init__.py +15 -0
  930. wbcore/contrib/workflow/viewsets/menu/condition.py +19 -0
  931. wbcore/contrib/workflow/viewsets/menu/data.py +19 -0
  932. wbcore/contrib/workflow/viewsets/menu/process.py +19 -0
  933. wbcore/contrib/workflow/viewsets/menu/step.py +124 -0
  934. wbcore/contrib/workflow/viewsets/menu/transition.py +19 -0
  935. wbcore/contrib/workflow/viewsets/menu/workflow.py +19 -0
  936. wbcore/contrib/workflow/viewsets/process.py +175 -0
  937. wbcore/contrib/workflow/viewsets/step.py +229 -0
  938. wbcore/contrib/workflow/viewsets/titles/__init__.py +16 -0
  939. wbcore/contrib/workflow/viewsets/titles/condition.py +14 -0
  940. wbcore/contrib/workflow/viewsets/titles/data.py +14 -0
  941. wbcore/contrib/workflow/viewsets/titles/process.py +27 -0
  942. wbcore/contrib/workflow/viewsets/titles/step.py +102 -0
  943. wbcore/contrib/workflow/viewsets/titles/transition.py +14 -0
  944. wbcore/contrib/workflow/viewsets/titles/workflow.py +14 -0
  945. wbcore/contrib/workflow/viewsets/transition.py +58 -0
  946. wbcore/contrib/workflow/viewsets/workflow.py +37 -0
  947. wbcore/contrib/workflow/workflows/__init__.py +1 -0
  948. wbcore/contrib/workflow/workflows/assignees.py +88 -0
  949. wbcore/crontab/__init__.py +0 -0
  950. wbcore/crontab/serializers.py +24 -0
  951. wbcore/crontab/viewsets.py +10 -0
  952. wbcore/dispatch.py +56 -0
  953. wbcore/docs/__init__.py +23 -0
  954. wbcore/docs/orderable.md +29 -0
  955. wbcore/docs/reparent.md +13 -0
  956. wbcore/dynamic_preferences_registry.py +131 -0
  957. wbcore/enums.py +50 -0
  958. wbcore/filters/__init__.py +21 -0
  959. wbcore/filters/backends.py +19 -0
  960. wbcore/filters/defaults.py +70 -0
  961. wbcore/filters/fields/__init__.py +15 -0
  962. wbcore/filters/fields/booleans.py +7 -0
  963. wbcore/filters/fields/choices.py +60 -0
  964. wbcore/filters/fields/content_type.py +45 -0
  965. wbcore/filters/fields/datetime.py +117 -0
  966. wbcore/filters/fields/models.py +123 -0
  967. wbcore/filters/fields/multiple_lookups.py +20 -0
  968. wbcore/filters/fields/numbers.py +48 -0
  969. wbcore/filters/fields/text.py +7 -0
  970. wbcore/filters/filterset.py +250 -0
  971. wbcore/filters/lookups.py +41 -0
  972. wbcore/filters/mixins.py +111 -0
  973. wbcore/filters/utils.py +21 -0
  974. wbcore/forms.py +125 -0
  975. wbcore/frontend.py +23 -0
  976. wbcore/frontend_user_configuration.py +96 -0
  977. wbcore/fsm/__init__.py +0 -0
  978. wbcore/fsm/markdown_extensions.py +31 -0
  979. wbcore/fsm/mixins.py +128 -0
  980. wbcore/locale/de/LC_MESSAGES/django.po +1252 -0
  981. wbcore/locale/de/LC_MESSAGES/django.po.translated +1580 -0
  982. wbcore/locale/en/LC_MESSAGES/django.po +1234 -0
  983. wbcore/locale/fr/LC_MESSAGES/django.po +1235 -0
  984. wbcore/management/__init__.py +88 -0
  985. wbcore/management/commands/__init__.py +0 -0
  986. wbcore/management/commands/bootstrap.py +18 -0
  987. wbcore/management/commands/clean_obsolete_object.py +21 -0
  988. wbcore/management/commands/handle_release_notes.py +54 -0
  989. wbcore/markdown/__init__.py +1 -0
  990. wbcore/markdown/admin.py +9 -0
  991. wbcore/markdown/dynamic_preferences_registry.py +16 -0
  992. wbcore/markdown/models.py +41 -0
  993. wbcore/markdown/template.py +38 -0
  994. wbcore/markdown/utils.py +37 -0
  995. wbcore/markdown/views.py +50 -0
  996. wbcore/menus/__init__.py +2 -0
  997. wbcore/menus/menus.py +96 -0
  998. wbcore/menus/registry.py +28 -0
  999. wbcore/menus/views.py +41 -0
  1000. wbcore/messages.py +60 -0
  1001. wbcore/metadata/__init__.py +0 -0
  1002. wbcore/metadata/configs/__init__.py +0 -0
  1003. wbcore/metadata/configs/base.py +86 -0
  1004. wbcore/metadata/configs/buttons/__init__.py +4 -0
  1005. wbcore/metadata/configs/buttons/bases.py +89 -0
  1006. wbcore/metadata/configs/buttons/buttons.py +138 -0
  1007. wbcore/metadata/configs/buttons/enums.py +68 -0
  1008. wbcore/metadata/configs/buttons/metadata.py +8 -0
  1009. wbcore/metadata/configs/buttons/view_config.py +145 -0
  1010. wbcore/metadata/configs/display/__init__.py +4 -0
  1011. wbcore/metadata/configs/display/configs.py +16 -0
  1012. wbcore/metadata/configs/display/display.py +234 -0
  1013. wbcore/metadata/configs/display/formatting.py +47 -0
  1014. wbcore/metadata/configs/display/instance_display/__init__.py +15 -0
  1015. wbcore/metadata/configs/display/instance_display/display.py +40 -0
  1016. wbcore/metadata/configs/display/instance_display/enums.py +7 -0
  1017. wbcore/metadata/configs/display/instance_display/layouts/__init__.py +3 -0
  1018. wbcore/metadata/configs/display/instance_display/layouts/inlines.py +58 -0
  1019. wbcore/metadata/configs/display/instance_display/layouts/layouts.py +77 -0
  1020. wbcore/metadata/configs/display/instance_display/layouts/sections.py +43 -0
  1021. wbcore/metadata/configs/display/instance_display/operators.py +22 -0
  1022. wbcore/metadata/configs/display/instance_display/pages.py +40 -0
  1023. wbcore/metadata/configs/display/instance_display/shortcuts.py +81 -0
  1024. wbcore/metadata/configs/display/instance_display/signals.py +3 -0
  1025. wbcore/metadata/configs/display/instance_display/styles.py +42 -0
  1026. wbcore/metadata/configs/display/instance_display/utils.py +74 -0
  1027. wbcore/metadata/configs/display/list_display.py +290 -0
  1028. wbcore/metadata/configs/display/models.py +26 -0
  1029. wbcore/metadata/configs/display/view_config.py +85 -0
  1030. wbcore/metadata/configs/display/views.py +48 -0
  1031. wbcore/metadata/configs/display/windows.py +28 -0
  1032. wbcore/metadata/configs/documentations.py +11 -0
  1033. wbcore/metadata/configs/endpoints.py +189 -0
  1034. wbcore/metadata/configs/fields.py +22 -0
  1035. wbcore/metadata/configs/filter_fields.py +41 -0
  1036. wbcore/metadata/configs/identifiers.py +27 -0
  1037. wbcore/metadata/configs/ordering_fields.py +24 -0
  1038. wbcore/metadata/configs/paginations.py +11 -0
  1039. wbcore/metadata/configs/preview.py +41 -0
  1040. wbcore/metadata/configs/primary_keys.py +9 -0
  1041. wbcore/metadata/configs/search_fields.py +9 -0
  1042. wbcore/metadata/configs/titles.py +48 -0
  1043. wbcore/metadata/configs/window_types.py +13 -0
  1044. wbcore/metadata/exceptions.py +0 -0
  1045. wbcore/metadata/metadata.py +34 -0
  1046. wbcore/metadata/mixins.py +106 -0
  1047. wbcore/metadata/tests/__init__.py +0 -0
  1048. wbcore/metadata/tests/test_buttons.py +165 -0
  1049. wbcore/metadata/utils.py +4 -0
  1050. wbcore/migrations/0001_initial_squashed_squashed_0010_preset_appliedpreset.py +398 -0
  1051. wbcore/migrations/0011_genericmodel.py +22 -0
  1052. wbcore/migrations/0012_delete_notification.py +15 -0
  1053. wbcore/migrations/0013_delete_colorgradient.py +14 -0
  1054. wbcore/migrations/0014_biguserobjectpermission_system.py +44 -0
  1055. wbcore/migrations/__init__.py +0 -0
  1056. wbcore/models/__init__.py +6 -0
  1057. wbcore/models/base.py +184 -0
  1058. wbcore/models/fields.py +29 -0
  1059. wbcore/models/orderable.py +6 -0
  1060. wbcore/pagination.py +64 -0
  1061. wbcore/pandas/__init__.py +53 -0
  1062. wbcore/pandas/fields.py +25 -0
  1063. wbcore/pandas/filterset.py +9 -0
  1064. wbcore/pandas/utils.py +25 -0
  1065. wbcore/pandas/views.py +9 -0
  1066. wbcore/permissions/__init__.py +0 -0
  1067. wbcore/permissions/backend.py +36 -0
  1068. wbcore/permissions/mixins.py +72 -0
  1069. wbcore/permissions/permissions.py +51 -0
  1070. wbcore/permissions/registry.py +33 -0
  1071. wbcore/permissions/shortcuts.py +38 -0
  1072. wbcore/permissions/utils.py +26 -0
  1073. wbcore/release_notes/__init__.py +0 -0
  1074. wbcore/release_notes/admin.py +30 -0
  1075. wbcore/release_notes/buttons.py +26 -0
  1076. wbcore/release_notes/display.py +52 -0
  1077. wbcore/release_notes/filters.py +36 -0
  1078. wbcore/release_notes/models.py +66 -0
  1079. wbcore/release_notes/serializers.py +12 -0
  1080. wbcore/release_notes/utils.py +14 -0
  1081. wbcore/release_notes/viewsets.py +52 -0
  1082. wbcore/reversion/__init__.py +0 -0
  1083. wbcore/reversion/filters.py +39 -0
  1084. wbcore/reversion/serializers.py +81 -0
  1085. wbcore/reversion/viewsets/__init__.py +6 -0
  1086. wbcore/reversion/viewsets/buttons.py +95 -0
  1087. wbcore/reversion/viewsets/displays.py +45 -0
  1088. wbcore/reversion/viewsets/endpoints.py +30 -0
  1089. wbcore/reversion/viewsets/titles.py +19 -0
  1090. wbcore/reversion/viewsets/viewsets.py +112 -0
  1091. wbcore/routers.py +63 -0
  1092. wbcore/search/__init__.py +62 -0
  1093. wbcore/serializers/__init__.py +68 -0
  1094. wbcore/serializers/fields/__init__.py +59 -0
  1095. wbcore/serializers/fields/boolean.py +51 -0
  1096. wbcore/serializers/fields/choice.py +60 -0
  1097. wbcore/serializers/fields/datetime.py +178 -0
  1098. wbcore/serializers/fields/fields.py +193 -0
  1099. wbcore/serializers/fields/file.py +20 -0
  1100. wbcore/serializers/fields/fsm.py +20 -0
  1101. wbcore/serializers/fields/json.py +56 -0
  1102. wbcore/serializers/fields/list.py +104 -0
  1103. wbcore/serializers/fields/mixins.py +196 -0
  1104. wbcore/serializers/fields/number.py +94 -0
  1105. wbcore/serializers/fields/other.py +34 -0
  1106. wbcore/serializers/fields/primary_key.py +22 -0
  1107. wbcore/serializers/fields/related.py +150 -0
  1108. wbcore/serializers/fields/text.py +141 -0
  1109. wbcore/serializers/fields/types.py +46 -0
  1110. wbcore/serializers/mixins.py +24 -0
  1111. wbcore/serializers/serializers.py +425 -0
  1112. wbcore/serializers/utils.py +143 -0
  1113. wbcore/shares/__init__.py +1 -0
  1114. wbcore/shares/config.py +64 -0
  1115. wbcore/shares/decorator.py +13 -0
  1116. wbcore/shares/signals.py +3 -0
  1117. wbcore/shares/sites.py +29 -0
  1118. wbcore/shares/views.py +25 -0
  1119. wbcore/signals/__init__.py +7 -0
  1120. wbcore/signals/clone.py +4 -0
  1121. wbcore/signals/filters.py +3 -0
  1122. wbcore/signals/instance_buttons.py +5 -0
  1123. wbcore/signals/merge.py +4 -0
  1124. wbcore/signals/models.py +4 -0
  1125. wbcore/signals/permissions.py +3 -0
  1126. wbcore/signals/serializers.py +5 -0
  1127. wbcore/tasks.py +87 -0
  1128. wbcore/template.py +29 -0
  1129. wbcore/templates/errors/404.html +134 -0
  1130. wbcore/templates/errors/500.html +138 -0
  1131. wbcore/templates/errors/503.html +132 -0
  1132. wbcore/templates/errors/custom.html +132 -0
  1133. wbcore/templates/forms.py +0 -0
  1134. wbcore/templates/notifications/email_template.html +43 -0
  1135. wbcore/templates/reversion/__init__.py +0 -0
  1136. wbcore/templates/reversion/compare_detail.html +19 -0
  1137. wbcore/templates/wbcore/admin/change_list.html +8 -0
  1138. wbcore/templates/wbcore/admin/csv_form.html +15 -0
  1139. wbcore/templates/wbcore/dynamic_color_array.html +29 -0
  1140. wbcore/templates/wbcore/email_base_template.html +335 -0
  1141. wbcore/templates/wbcore/email_notification_template.html +10 -0
  1142. wbcore/templates/wbcore/frontend.html +51 -0
  1143. wbcore/test/__init__.py +30 -0
  1144. wbcore/test/e2e_helpers_methods/e2e_checks.py +127 -0
  1145. wbcore/test/e2e_helpers_methods/e2e_helper_methods.py +397 -0
  1146. wbcore/test/mixins.py +660 -0
  1147. wbcore/test/signals.py +6 -0
  1148. wbcore/test/tests.py +129 -0
  1149. wbcore/test/utils.py +227 -0
  1150. wbcore/tests/__init__.py +0 -0
  1151. wbcore/tests/conftest.py +55 -0
  1152. wbcore/tests/e2e/__init__.py +0 -0
  1153. wbcore/tests/e2e/test_e2e.py +25 -0
  1154. wbcore/tests/models.py +6 -0
  1155. wbcore/tests/test_cache/__init__.py +0 -0
  1156. wbcore/tests/test_cache/test_decorators.py +28 -0
  1157. wbcore/tests/test_cache/test_mixins.py +30 -0
  1158. wbcore/tests/test_cache/test_registry.py +58 -0
  1159. wbcore/tests/test_configs.py +58 -0
  1160. wbcore/tests/test_enums.py +56 -0
  1161. wbcore/tests/test_fields/__init__.py +0 -0
  1162. wbcore/tests/test_fields/test_boolean_fields.py +49 -0
  1163. wbcore/tests/test_fields/test_choice_fields.py +57 -0
  1164. wbcore/tests/test_fields/test_datetime_fields.py +152 -0
  1165. wbcore/tests/test_fields/test_fields.py +24 -0
  1166. wbcore/tests/test_fields/test_file_fields.py +52 -0
  1167. wbcore/tests/test_fields/test_json_fields.py +28 -0
  1168. wbcore/tests/test_fields/test_list_fields.py +27 -0
  1169. wbcore/tests/test_fields/test_mixins.py +112 -0
  1170. wbcore/tests/test_fields/test_number_fields.py +166 -0
  1171. wbcore/tests/test_fields/test_other_fields.py +60 -0
  1172. wbcore/tests/test_fields/test_primary_key_fields.py +52 -0
  1173. wbcore/tests/test_fields/test_related.py +81 -0
  1174. wbcore/tests/test_fields/test_text_fields.py +118 -0
  1175. wbcore/tests/test_filters/__init__.py +0 -0
  1176. wbcore/tests/test_filters/test_mixins.py +109 -0
  1177. wbcore/tests/test_list_display.py +29 -0
  1178. wbcore/tests/test_models/__init__.py +0 -0
  1179. wbcore/tests/test_models/test_fields.py +26 -0
  1180. wbcore/tests/test_models/test_mixins.py +32 -0
  1181. wbcore/tests/test_new_display/__init__.py +0 -0
  1182. wbcore/tests/test_new_display/test_inlines.py +13 -0
  1183. wbcore/tests/test_new_display/test_layouts.py +15 -0
  1184. wbcore/tests/test_new_display/test_operators.py +16 -0
  1185. wbcore/tests/test_new_display/test_pages.py +8 -0
  1186. wbcore/tests/test_new_display/test_sections.py +0 -0
  1187. wbcore/tests/test_new_display/test_shortcuts.py +38 -0
  1188. wbcore/tests/test_new_display/test_utils.py +49 -0
  1189. wbcore/tests/test_pagination.py +32 -0
  1190. wbcore/tests/test_permissions/test_backend.py +29 -0
  1191. wbcore/tests/test_serializers/__init__.py +0 -0
  1192. wbcore/tests/test_serializers/test_fields.py +141 -0
  1193. wbcore/tests/test_serializers/test_mixins.py +54 -0
  1194. wbcore/tests/test_serializers/test_related.py +78 -0
  1195. wbcore/tests/test_something.py +39 -0
  1196. wbcore/tests/test_utils/__init__.py +0 -0
  1197. wbcore/tests/test_utils/test_date.py +50 -0
  1198. wbcore/tests/test_utils/test_date_builder.py +124 -0
  1199. wbcore/tests/test_utils/test_primary.py +80 -0
  1200. wbcore/tests/test_utils/test_signals.py +40 -0
  1201. wbcore/tests/test_viewsets.py +21 -0
  1202. wbcore/urls.py +117 -0
  1203. wbcore/utils/__init__.py +13 -0
  1204. wbcore/utils/cache.py +8 -0
  1205. wbcore/utils/date.py +237 -0
  1206. wbcore/utils/date_builder/__init__.py +18 -0
  1207. wbcore/utils/date_builder/components.py +42 -0
  1208. wbcore/utils/date_builder/offsets.py +27 -0
  1209. wbcore/utils/deprecations.py +11 -0
  1210. wbcore/utils/enum.py +23 -0
  1211. wbcore/utils/figures.py +286 -0
  1212. wbcore/utils/html.py +8 -0
  1213. wbcore/utils/importlib.py +13 -0
  1214. wbcore/utils/itertools.py +40 -0
  1215. wbcore/utils/models.py +293 -0
  1216. wbcore/utils/numbers.py +69 -0
  1217. wbcore/utils/prettytable.py +35 -0
  1218. wbcore/utils/print.py +29 -0
  1219. wbcore/utils/renderers.py +13 -0
  1220. wbcore/utils/reportlab.py +7 -0
  1221. wbcore/utils/rrules.py +82 -0
  1222. wbcore/utils/serializers.py +9 -0
  1223. wbcore/utils/settings.py +5 -0
  1224. wbcore/utils/signals.py +36 -0
  1225. wbcore/utils/string_loader.py +42 -0
  1226. wbcore/utils/strings.py +77 -0
  1227. wbcore/utils/urls.py +70 -0
  1228. wbcore/utils/views.py +207 -0
  1229. wbcore/views.py +26 -0
  1230. wbcore/viewsets/__init__.py +12 -0
  1231. wbcore/viewsets/encoders.py +18 -0
  1232. wbcore/viewsets/generics.py +5 -0
  1233. wbcore/viewsets/mixins.py +295 -0
  1234. wbcore/viewsets/utils.py +27 -0
  1235. wbcore/viewsets/viewsets.py +202 -0
  1236. wbcore/workers.py +8 -0
  1237. wbcore-1.59.9.dist-info/METADATA +65 -0
  1238. wbcore-1.59.9.dist-info/RECORD +1239 -0
  1239. wbcore-1.59.9.dist-info/WHEEL +5 -0
@@ -0,0 +1,1180 @@
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
+ # Translators:
7
+ # Kevin Decoster, 2025
8
+ #
9
+ #, fuzzy
10
+ msgid ""
11
+ msgstr ""
12
+ "Project-Id-Version: PACKAGE VERSION\n"
13
+ "Report-Msgid-Bugs-To: \n"
14
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
15
+ "PO-Revision-Date: 2025-05-30 09:40+0000\n"
16
+ "Last-Translator: Kevin Decoster, 2025\n"
17
+ "Language-Team: German (https://app.transifex.com/stainly/teams/171242/de/)\n"
18
+ "MIME-Version: 1.0\n"
19
+ "Content-Type: text/plain; charset=UTF-8\n"
20
+ "Content-Transfer-Encoding: 8bit\n"
21
+ "Language: de\n"
22
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
23
+
24
+ #: contrib/workflow/dispatch.py:19
25
+ msgid "Invalid status detected!"
26
+ msgstr "Invalider Status erkannt!"
27
+
28
+ #: contrib/workflow/filters/condition.py:9
29
+ #: contrib/workflow/models/transition.py:68
30
+ #: contrib/workflow/viewsets/display/step.py:21
31
+ #: contrib/workflow/viewsets/display/step.py:25
32
+ #: contrib/workflow/viewsets/display/workflow.py:78
33
+ #: contrib/workflow/viewsets/display/workflow.py:82
34
+ #: contrib/workflow/viewsets/titles/transition.py:8
35
+ msgid "Transitions"
36
+ msgstr "Übergänge"
37
+
38
+ #: contrib/workflow/filters/condition.py:16
39
+ msgid "Operators"
40
+ msgstr "Operator"
41
+
42
+ #: contrib/workflow/filters/data.py:9 contrib/workflow/filters/process.py:39
43
+ #: contrib/workflow/filters/step.py:67 contrib/workflow/filters/step.py:88
44
+ #: contrib/workflow/filters/step.py:138 contrib/workflow/filters/step.py:158
45
+ #: contrib/workflow/models/workflow.py:275
46
+ #: contrib/workflow/viewsets/titles/workflow.py:8
47
+ msgid "Workflows"
48
+ msgstr "Workflows"
49
+
50
+ #: contrib/workflow/filters/data.py:16
51
+ msgid "Data Types"
52
+ msgstr "Datentypen"
53
+
54
+ #: contrib/workflow/filters/process.py:10
55
+ #: contrib/workflow/filters/process.py:125
56
+ msgid "Started Before/On"
57
+ msgstr "Gestartet Vor/Um"
58
+
59
+ #: contrib/workflow/filters/process.py:15
60
+ #: contrib/workflow/filters/process.py:130
61
+ msgid "Started After/On"
62
+ msgstr "Gestartet Nach/Um"
63
+
64
+ #: contrib/workflow/filters/process.py:20
65
+ #: contrib/workflow/filters/process.py:135
66
+ msgid "Finished Before/On"
67
+ msgstr "Abgeschlossen Vor/Um"
68
+
69
+ #: contrib/workflow/filters/process.py:25
70
+ #: contrib/workflow/filters/process.py:140
71
+ msgid "Finished After/On"
72
+ msgstr "Abgeschlossen Nach/Um"
73
+
74
+ #: contrib/workflow/filters/process.py:29
75
+ #: contrib/workflow/models/process.py:32
76
+ #: contrib/workflow/models/process.py:129
77
+ #: contrib/workflow/viewsets/display/process.py:23
78
+ #: contrib/workflow/viewsets/display/process.py:108
79
+ msgid "UUID"
80
+ msgstr "UUID"
81
+
82
+ #: contrib/workflow/filters/process.py:30
83
+ msgid "States"
84
+ msgstr "Statusse"
85
+
86
+ #: contrib/workflow/filters/process.py:53 contrib/workflow/filters/step.py:95
87
+ msgid "Assignees"
88
+ msgstr "Verantwortliche"
89
+
90
+ #: contrib/workflow/filters/process.py:60
91
+ #: contrib/workflow/filters/process.py:145
92
+ #: contrib/workflow/filters/step.py:103
93
+ msgid "Groups"
94
+ msgstr "Gruppen"
95
+
96
+ #: contrib/workflow/filters/process.py:67
97
+ #: contrib/workflow/filters/process.py:152 contrib/workflow/filters/step.py:52
98
+ #: contrib/workflow/filters/step.py:81 contrib/workflow/filters/step.py:131
99
+ msgid "Permissions"
100
+ msgstr "Berechtigungen"
101
+
102
+ #: contrib/workflow/filters/process.py:84
103
+ #: contrib/workflow/filters/process.py:118 contrib/workflow/models/step.py:209
104
+ #: contrib/workflow/viewsets/display/workflow.py:58
105
+ #: contrib/workflow/viewsets/display/workflow.py:62
106
+ #: contrib/workflow/viewsets/titles/step.py:8
107
+ msgid "Steps"
108
+ msgstr "Schritte"
109
+
110
+ #: contrib/workflow/filters/process.py:98
111
+ #: contrib/workflow/models/process.py:105
112
+ #: contrib/workflow/viewsets/display/workflow.py:98
113
+ #: contrib/workflow/viewsets/display/workflow.py:102
114
+ #: contrib/workflow/viewsets/titles/process.py:8
115
+ msgid "Processes"
116
+ msgstr "Prozesse"
117
+
118
+ #: contrib/workflow/filters/process.py:158 contrib/workflow/models/data.py:47
119
+ #: contrib/workflow/models/process.py:34 contrib/workflow/models/step.py:43
120
+ #: contrib/workflow/models/workflow.py:274
121
+ #: contrib/workflow/serializers/data.py:15
122
+ #: contrib/workflow/serializers/process.py:146
123
+ #: contrib/workflow/serializers/step.py:37
124
+ #: contrib/workflow/viewsets/display/data.py:20
125
+ #: contrib/workflow/viewsets/display/process.py:22
126
+ #: contrib/workflow/viewsets/display/process.py:179
127
+ #: contrib/workflow/viewsets/display/step.py:69
128
+ #: contrib/workflow/viewsets/display/step.py:412
129
+ #: contrib/workflow/viewsets/display/workflow.py:150
130
+ #: contrib/workflow/viewsets/menu/workflow.py:7
131
+ #: contrib/workflow/viewsets/titles/workflow.py:14
132
+ msgid "Workflow"
133
+ msgstr "Workflow"
134
+
135
+ #: contrib/workflow/filters/process.py:159
136
+ #: contrib/workflow/filters/workflow.py:9
137
+ #: contrib/workflow/models/process.py:44
138
+ #: contrib/workflow/serializers/process.py:152
139
+ #: contrib/workflow/viewsets/display/process.py:26
140
+ #: contrib/workflow/viewsets/display/process.py:178
141
+ #: contrib/workflow/viewsets/display/workflow.py:24
142
+ #: contrib/workflow/viewsets/display/workflow.py:34
143
+ msgid "Attached Model"
144
+ msgstr "Angeheftetes Model"
145
+
146
+ #: contrib/workflow/filters/step.py:25 contrib/workflow/filters/step.py:26
147
+ #: contrib/workflow/filters/step.py:27 contrib/workflow/models/step.py:47
148
+ #: contrib/workflow/viewsets/display/step.py:71
149
+ #: contrib/workflow/viewsets/display/step.py:414
150
+ msgid "Code"
151
+ msgstr "Code"
152
+
153
+ #: contrib/workflow/filters/step.py:29
154
+ msgid "Associated Transition"
155
+ msgstr "Zugehöriger Übergang"
156
+
157
+ #: contrib/workflow/filters/step.py:58
158
+ msgid "Step Types"
159
+ msgstr "Schrittarten"
160
+
161
+ #: contrib/workflow/filters/step.py:111
162
+ msgid "Assignee Methods"
163
+ msgstr "Verantwortlichen-Methoden"
164
+
165
+ #: contrib/workflow/filters/step.py:187 contrib/workflow/models/step.py:545
166
+ #: contrib/workflow/viewsets/display/step.py:314
167
+ msgid "Template"
168
+ msgstr "Vorlage"
169
+
170
+ #: contrib/workflow/filters/step.py:189 contrib/workflow/models/step.py:555
171
+ #: contrib/workflow/viewsets/display/step.py:311
172
+ msgctxt "Email context"
173
+ msgid "To"
174
+ msgstr "An"
175
+
176
+ #: contrib/workflow/filters/step.py:196 contrib/workflow/models/step.py:560
177
+ msgid "CC"
178
+ msgstr "CC"
179
+
180
+ #: contrib/workflow/filters/step.py:203 contrib/workflow/models/step.py:566
181
+ #: contrib/workflow/viewsets/display/step.py:316
182
+ msgid "BCC"
183
+ msgstr "BCC"
184
+
185
+ #: contrib/workflow/filters/transition.py:10
186
+ #: contrib/workflow/models/transition.py:19
187
+ #: contrib/workflow/viewsets/display/transition.py:23
188
+ #: contrib/workflow/viewsets/transition.py:51
189
+ msgid "From"
190
+ msgstr "Von"
191
+
192
+ #: contrib/workflow/filters/transition.py:17
193
+ #: contrib/workflow/models/transition.py:23
194
+ #: contrib/workflow/viewsets/display/transition.py:24
195
+ #: contrib/workflow/viewsets/transition.py:54
196
+ msgid "To"
197
+ msgstr "Zu"
198
+
199
+ #: contrib/workflow/filters/transition.py:24
200
+ msgid "Associated Condition"
201
+ msgstr "Zugehörige Bedingung"
202
+
203
+ #: contrib/workflow/filters/workflow.py:11
204
+ msgid "Associated Step"
205
+ msgstr "Zugehöriger Schritt"
206
+
207
+ #: contrib/workflow/models/condition.py:13
208
+ msgid "Less Than"
209
+ msgstr "Weniger"
210
+
211
+ #: contrib/workflow/models/condition.py:14
212
+ msgid "Less Than or Equal"
213
+ msgstr "Weniger Gleich"
214
+
215
+ #: contrib/workflow/models/condition.py:15
216
+ msgid "Equal"
217
+ msgstr "Gleich"
218
+
219
+ #: contrib/workflow/models/condition.py:16
220
+ msgid "Greater Than or Equal"
221
+ msgstr "Größer Gleich"
222
+
223
+ #: contrib/workflow/models/condition.py:17
224
+ msgid "Greater Than"
225
+ msgstr "Größer"
226
+
227
+ #: contrib/workflow/models/condition.py:21
228
+ #: contrib/workflow/models/transition.py:67
229
+ #: contrib/workflow/serializers/condition.py:15
230
+ #: contrib/workflow/viewsets/display/condition.py:19
231
+ #: contrib/workflow/viewsets/menu/transition.py:7
232
+ #: contrib/workflow/viewsets/titles/transition.py:14
233
+ msgid "Transition"
234
+ msgstr "Übergang"
235
+
236
+ #: contrib/workflow/models/condition.py:27
237
+ #: contrib/workflow/viewsets/display/condition.py:20
238
+ msgid "Attribute Name"
239
+ msgstr "Name des Feldes"
240
+
241
+ #: contrib/workflow/models/condition.py:29
242
+ msgid ""
243
+ "The name of the attribute on the attached instance. Its value will be "
244
+ "evaluated against the condition."
245
+ msgstr ""
246
+
247
+ #: contrib/workflow/models/condition.py:32
248
+ #: contrib/workflow/viewsets/display/condition.py:21
249
+ msgid "Operator"
250
+ msgstr "Operator"
251
+
252
+ #: contrib/workflow/models/condition.py:35
253
+ #: contrib/workflow/viewsets/display/condition.py:23
254
+ msgid "Expected Value"
255
+ msgstr "Erwarteter Wert"
256
+
257
+ #: contrib/workflow/models/condition.py:36
258
+ msgid "The expected value of the attribute that will satisfy the condition."
259
+ msgstr ""
260
+
261
+ #: contrib/workflow/models/condition.py:38
262
+ #: contrib/workflow/viewsets/display/condition.py:22
263
+ msgid "Negate Operator"
264
+ msgstr "Operator Negieren"
265
+
266
+ #: contrib/workflow/models/condition.py:43
267
+ msgid "Please call \"satisfied\" before accessing errors"
268
+ msgstr ""
269
+ "Bitte rufen Sie \"satisfied\" auf bevor Sie versuchen, auf die Fehler "
270
+ "zuzugreifen"
271
+
272
+ #: contrib/workflow/models/condition.py:83
273
+ msgid ""
274
+ "Condition error: Type of attribute ({}) and expected value ({}) uncompatible"
275
+ " or wrong datetime format!"
276
+ msgstr ""
277
+ "Fehler in Bedingung: Typ des Attributs ({}) und erwarteter Wert ({}) "
278
+ "inkompatibel oder falsches Datums- bzw. Zeitformat benutzt!"
279
+
280
+ #: contrib/workflow/models/condition.py:89
281
+ msgid ""
282
+ "Condition error: No attribute called {} found in attached instance or data!"
283
+ msgstr ""
284
+ "Fehler in der Bedingung: Kein Feld namens {} in angehefteter Instanz oder "
285
+ "Datensatz gefunden!"
286
+
287
+ #: contrib/workflow/models/condition.py:97
288
+ msgid "{} not {} {}"
289
+ msgstr "{} nicht {} {}"
290
+
291
+ #: contrib/workflow/models/condition.py:117
292
+ #: contrib/workflow/viewsets/menu/condition.py:7
293
+ #: contrib/workflow/viewsets/titles/condition.py:14
294
+ msgid "Condition"
295
+ msgstr "Bedingung"
296
+
297
+ #: contrib/workflow/models/condition.py:118
298
+ #: contrib/workflow/viewsets/display/transition.py:33
299
+ #: contrib/workflow/viewsets/display/transition.py:37
300
+ #: contrib/workflow/viewsets/titles/condition.py:8
301
+ msgid "Conditions"
302
+ msgstr "Bedingungen"
303
+
304
+ #: contrib/workflow/models/data.py:16
305
+ msgid "Text"
306
+ msgstr "Text"
307
+
308
+ #: contrib/workflow/models/data.py:17
309
+ msgid "Number"
310
+ msgstr "Zahl"
311
+
312
+ #: contrib/workflow/models/data.py:18
313
+ msgid "Date"
314
+ msgstr "Datum"
315
+
316
+ #: contrib/workflow/models/data.py:19
317
+ msgid "Date Time"
318
+ msgstr "Datum und Uhrzeit"
319
+
320
+ #: contrib/workflow/models/data.py:20
321
+ msgid "Boolean"
322
+ msgstr "Boolesch"
323
+
324
+ #: contrib/workflow/models/data.py:50
325
+ #: contrib/workflow/viewsets/display/data.py:19
326
+ msgid "Label"
327
+ msgstr "Bezeichnung"
328
+
329
+ #: contrib/workflow/models/data.py:51
330
+ #: contrib/workflow/viewsets/display/data.py:23
331
+ msgid "Help Text"
332
+ msgstr "Hilfe-Text"
333
+
334
+ #: contrib/workflow/models/data.py:53
335
+ #: contrib/workflow/viewsets/display/data.py:21
336
+ msgid "Data Type"
337
+ msgstr "Datentyp"
338
+
339
+ #: contrib/workflow/models/data.py:56
340
+ #: contrib/workflow/viewsets/display/data.py:22
341
+ msgid "Required"
342
+ msgstr "Pflichtfeld"
343
+
344
+ #: contrib/workflow/models/data.py:60
345
+ #: contrib/workflow/viewsets/display/data.py:24
346
+ msgid "Default"
347
+ msgstr "Standardwert"
348
+
349
+ #: contrib/workflow/models/data.py:115
350
+ msgid "Casting to bool failed."
351
+ msgstr "In Boolean Umwandeln fehlgeschlagen."
352
+
353
+ #: contrib/workflow/models/data.py:150
354
+ msgid "Unsupported target type!"
355
+ msgstr "Zieltyp wird nicht unterstützt!"
356
+
357
+ #: contrib/workflow/models/data.py:180
358
+ msgid "Date(time) type selected but no date(time) object provided!"
359
+ msgstr "Datumstyp ausgewählt aber kein Datumsobjekt mitgegeben!"
360
+
361
+ #: contrib/workflow/models/data.py:188
362
+ msgid "Wrong boolean value!"
363
+ msgstr "Falscher Boolean-Wert!"
364
+
365
+ #: contrib/workflow/models/data.py:210 contrib/workflow/models/data.py:211
366
+ #: contrib/workflow/models/data.py:221
367
+ #: contrib/workflow/viewsets/menu/data.py:7
368
+ #: contrib/workflow/viewsets/titles/data.py:8
369
+ #: contrib/workflow/viewsets/titles/data.py:14
370
+ msgid "Data"
371
+ msgstr "Daten"
372
+
373
+ #: contrib/workflow/models/data.py:220
374
+ msgid "Value"
375
+ msgstr "Wert"
376
+
377
+ #: contrib/workflow/models/data.py:223 contrib/workflow/models/process.py:104
378
+ #: contrib/workflow/models/process.py:131
379
+ #: contrib/workflow/viewsets/display/process.py:66
380
+ #: contrib/workflow/viewsets/display/process.py:110
381
+ #: contrib/workflow/viewsets/menu/process.py:7
382
+ #: contrib/workflow/viewsets/titles/process.py:11
383
+ msgid "Process"
384
+ msgstr "Daten"
385
+
386
+ #: contrib/workflow/models/data.py:238
387
+ msgid "Data Value"
388
+ msgstr "Datenwert"
389
+
390
+ #: contrib/workflow/models/data.py:239
391
+ msgid "Data Values"
392
+ msgstr "Datenwerte"
393
+
394
+ #: contrib/workflow/models/display.py:10
395
+ msgid "Grid Fields"
396
+ msgstr "Gitterfelder"
397
+
398
+ #: contrib/workflow/models/display.py:11 contrib/workflow/models/step.py:40
399
+ #: contrib/workflow/models/transition.py:15
400
+ #: contrib/workflow/models/workflow.py:40
401
+ #: contrib/workflow/viewsets/display/step.py:67
402
+ #: contrib/workflow/viewsets/display/step.py:411
403
+ #: contrib/workflow/viewsets/display/transition.py:22
404
+ #: contrib/workflow/viewsets/display/workflow.py:22
405
+ msgid "Name"
406
+ msgstr "Name"
407
+
408
+ #: contrib/workflow/models/display.py:33 contrib/workflow/models/step.py:263
409
+ msgid "Display"
410
+ msgstr "Darstellung"
411
+
412
+ #: contrib/workflow/models/display.py:34
413
+ msgid "Displays"
414
+ msgstr "Darstellungen"
415
+
416
+ #: contrib/workflow/models/process.py:19
417
+ #: contrib/workflow/models/process.py:112
418
+ msgid "Active"
419
+ msgstr "Aktiv"
420
+
421
+ #: contrib/workflow/models/process.py:20 contrib/workflow/models/process.py:37
422
+ #: contrib/workflow/models/process.py:113
423
+ #: contrib/workflow/models/process.py:141
424
+ #: contrib/workflow/viewsets/display/process.py:25
425
+ #: contrib/workflow/viewsets/display/process.py:112
426
+ #: contrib/workflow/viewsets/display/process.py:181
427
+ msgid "Finished"
428
+ msgstr "Beendet"
429
+
430
+ #: contrib/workflow/models/process.py:21
431
+ #: contrib/workflow/models/process.py:115
432
+ msgid "Failed"
433
+ msgstr "Fehlgeschlagen"
434
+
435
+ #: contrib/workflow/models/process.py:36
436
+ #: contrib/workflow/models/process.py:140
437
+ #: contrib/workflow/viewsets/display/process.py:24
438
+ #: contrib/workflow/viewsets/display/process.py:111
439
+ #: contrib/workflow/viewsets/display/process.py:180
440
+ msgid "Started"
441
+ msgstr "Gestartet"
442
+
443
+ #: contrib/workflow/models/process.py:38
444
+ msgid "Instance"
445
+ msgstr "Instanz"
446
+
447
+ #: contrib/workflow/models/process.py:49
448
+ msgid "Preserved Instance"
449
+ msgstr "Geschützte Instanz"
450
+
451
+ #: contrib/workflow/models/process.py:54
452
+ #: contrib/workflow/models/process.py:173
453
+ msgid "State"
454
+ msgstr "Status"
455
+
456
+ #: contrib/workflow/models/process.py:55
457
+ msgid ""
458
+ "The current state of this process. Can be one of: 'Active', 'Finished' or "
459
+ "'Failed'"
460
+ msgstr ""
461
+ "Der derzeitige Status dieses Prozesses. Kann 'Aktiv', 'Beendet' oder "
462
+ "'Fehlgeschlagen' sein"
463
+
464
+ #: contrib/workflow/models/process.py:70
465
+ msgid "Entire process failed due to unreachable steps"
466
+ msgstr "Gesamter Prozess wegen unerreichbaren Schritten fehlgeschlagen"
467
+
468
+ #: contrib/workflow/models/process.py:85
469
+ msgid "Process {} for workflow {}"
470
+ msgstr "Prozess {} für Workflow {}"
471
+
472
+ #: contrib/workflow/models/process.py:114
473
+ msgid "Waiting"
474
+ msgstr "Wartend"
475
+
476
+ #: contrib/workflow/models/process.py:116
477
+ msgid "Canceled"
478
+ msgstr "Abgebrochen"
479
+
480
+ #: contrib/workflow/models/process.py:136 contrib/workflow/models/step.py:208
481
+ #: contrib/workflow/viewsets/display/process.py:109
482
+ #: contrib/workflow/viewsets/display/process.py:177
483
+ #: contrib/workflow/viewsets/titles/step.py:14
484
+ msgid "Step"
485
+ msgstr "Schritt"
486
+
487
+ #: contrib/workflow/models/process.py:144 contrib/workflow/models/step.py:240
488
+ #: contrib/workflow/viewsets/display/process.py:114
489
+ #: contrib/workflow/viewsets/display/step.py:122
490
+ msgid "Assignee"
491
+ msgstr "Verantwortliche*r"
492
+
493
+ #: contrib/workflow/models/process.py:153 contrib/workflow/models/step.py:249
494
+ #: contrib/workflow/viewsets/display/process.py:115
495
+ #: contrib/workflow/viewsets/display/process.py:182
496
+ #: contrib/workflow/viewsets/display/step.py:123
497
+ msgid "Group"
498
+ msgstr "Gruppe"
499
+
500
+ #: contrib/workflow/models/process.py:162 contrib/workflow/models/step.py:60
501
+ #: contrib/workflow/viewsets/display/process.py:116
502
+ #: contrib/workflow/viewsets/display/process.py:183
503
+ #: contrib/workflow/viewsets/display/step.py:72
504
+ msgid "Permission"
505
+ msgstr "Berechtigung"
506
+
507
+ #: contrib/workflow/models/process.py:168
508
+ msgid "The permission needed to be able to view this step being executed."
509
+ msgstr ""
510
+ "Die Berechtigung, die benötigt wird, um diesen Schritt während seiner "
511
+ "Ausführung sehen zu können."
512
+
513
+ #: contrib/workflow/models/process.py:175
514
+ msgid ""
515
+ "The current state of this process step. Can be one of: 'Active', 'Finished',"
516
+ " 'Waiting', 'Failed' or 'Canceled'"
517
+ msgstr ""
518
+ "Der derzeitige Status dieses Prozessschrittes. Kann 'Aktiv', 'Beendet', "
519
+ "Wartend', 'Fehlgeschlagen' oder 'Abgebrochen' sein"
520
+
521
+ #: contrib/workflow/models/process.py:182 contrib/workflow/models/step.py:50
522
+ #: contrib/workflow/viewsets/display/process.py:117
523
+ #: contrib/workflow/viewsets/display/process.py:184
524
+ #: contrib/workflow/viewsets/display/step.py:70
525
+ #: contrib/workflow/viewsets/display/step.py:413
526
+ msgid "Status"
527
+ msgstr "Statuswert"
528
+
529
+ #: contrib/workflow/models/process.py:183
530
+ msgid ""
531
+ "The status that will be set in the attached model upon transitioning to this"
532
+ " step"
533
+ msgstr ""
534
+ "Der Status, der im angehefteten Model gesetzt wird, sobald zu diesem Schritt"
535
+ " gewechselt wird"
536
+
537
+ #: contrib/workflow/models/process.py:190
538
+ #: contrib/workflow/viewsets/display/process.py:113
539
+ msgid "Error Message"
540
+ msgstr "Fehlermeldung"
541
+
542
+ #: contrib/workflow/models/process.py:191
543
+ msgid "An error message will be displayed when this step fails"
544
+ msgstr "Eine Fehlermeldung wird dargestellt, wenn dieser Schritt fehlschlägt"
545
+
546
+ #: contrib/workflow/models/process.py:224
547
+ msgid "Process step {} for step {}"
548
+ msgstr "Prozessschritt {} für Schritt {}"
549
+
550
+ #: contrib/workflow/models/process.py:243
551
+ #: contrib/workflow/viewsets/display/process.py:159
552
+ #: contrib/workflow/viewsets/menu/process.py:14
553
+ #: contrib/workflow/viewsets/titles/process.py:19
554
+ msgid "Process Step"
555
+ msgstr "Prozessschritt"
556
+
557
+ #: contrib/workflow/models/process.py:244
558
+ #: contrib/workflow/viewsets/display/process.py:44
559
+ #: contrib/workflow/viewsets/display/process.py:48
560
+ #: contrib/workflow/viewsets/display/step.py:43
561
+ #: contrib/workflow/viewsets/display/step.py:47
562
+ #: contrib/workflow/viewsets/titles/process.py:16
563
+ msgid "Process Steps"
564
+ msgstr "Prozessschritte"
565
+
566
+ #: contrib/workflow/models/step.py:31 contrib/workflow/models/step.py:231
567
+ #: contrib/workflow/viewsets/menu/step.py:7
568
+ #: contrib/workflow/viewsets/titles/step.py:47
569
+ msgid "Start Step"
570
+ msgstr "Startschritt"
571
+
572
+ #: contrib/workflow/models/step.py:32 contrib/workflow/models/step.py:350
573
+ #: contrib/workflow/viewsets/menu/step.py:22
574
+ #: contrib/workflow/viewsets/titles/step.py:25
575
+ msgid "User Step"
576
+ msgstr "Benutzerschritt"
577
+
578
+ #: contrib/workflow/models/step.py:33 contrib/workflow/models/step.py:403
579
+ #: contrib/workflow/viewsets/menu/step.py:37
580
+ #: contrib/workflow/viewsets/titles/step.py:36
581
+ msgid "Decision Step"
582
+ msgstr "Entscheidungsschritt"
583
+
584
+ #: contrib/workflow/models/step.py:34 contrib/workflow/models/step.py:431
585
+ #: contrib/workflow/viewsets/menu/step.py:52
586
+ #: contrib/workflow/viewsets/titles/step.py:58
587
+ msgid "Split Step"
588
+ msgstr "Teilungsschritt"
589
+
590
+ #: contrib/workflow/models/step.py:35 contrib/workflow/models/step.py:508
591
+ #: contrib/workflow/viewsets/menu/step.py:67
592
+ #: contrib/workflow/viewsets/titles/step.py:69
593
+ msgid "Join Step"
594
+ msgstr "Mündungsschritt"
595
+
596
+ #: contrib/workflow/models/step.py:36 contrib/workflow/models/step.py:601
597
+ #: contrib/workflow/viewsets/menu/step.py:97
598
+ #: contrib/workflow/viewsets/titles/step.py:91
599
+ msgid "Email Step"
600
+ msgstr "Emailschritt"
601
+
602
+ #: contrib/workflow/models/step.py:37 contrib/workflow/models/step.py:536
603
+ #: contrib/workflow/viewsets/menu/step.py:82
604
+ #: contrib/workflow/viewsets/titles/step.py:80
605
+ msgid "Script Step"
606
+ msgstr "Skriptschritt"
607
+
608
+ #: contrib/workflow/models/step.py:38 contrib/workflow/models/step.py:660
609
+ #: contrib/workflow/viewsets/menu/step.py:112
610
+ #: contrib/workflow/viewsets/titles/step.py:102
611
+ msgid "Finish Step"
612
+ msgstr "Schlussschritt"
613
+
614
+ #: contrib/workflow/models/step.py:52
615
+ msgid ""
616
+ "The status that will be set in the attached instance's status field upon "
617
+ "transitioning to this step. Only applicable if attached model is set."
618
+ msgstr ""
619
+
620
+ #: contrib/workflow/models/step.py:57
621
+ #: contrib/workflow/viewsets/display/step.py:68
622
+ msgid "Step Type"
623
+ msgstr "Schrittart"
624
+
625
+ #: contrib/workflow/models/step.py:65
626
+ msgid ""
627
+ "Define which permission is needed to be able to view this step being "
628
+ "executed."
629
+ msgstr ""
630
+ "Die Berechtigung, um diesen Schritt während er ausgeführt wird, sehen zu "
631
+ "können."
632
+
633
+ #: contrib/workflow/models/step.py:150 contrib/workflow/models/step.py:301
634
+ #: contrib/workflow/models/step.py:419
635
+ msgid "No valid outgoing transitions found for this step!"
636
+ msgstr "Keine validen ausgehenden Übergänge für diesen Schritt gefunden!"
637
+
638
+ #: contrib/workflow/models/step.py:155
639
+ msgid "More than one possible outgoing transition found for this step!"
640
+ msgstr "Mehr als ein möglicher Übergang für diesen Schritt gefunden!"
641
+
642
+ #: contrib/workflow/models/step.py:232
643
+ #: contrib/workflow/viewsets/titles/step.py:41
644
+ msgid "Start Steps"
645
+ msgstr "Startschritte"
646
+
647
+ #: contrib/workflow/models/step.py:246
648
+ #: contrib/workflow/viewsets/display/step.py:125
649
+ msgid "Notify User"
650
+ msgstr "Benutzer*in Benachrichtigen"
651
+
652
+ #: contrib/workflow/models/step.py:257
653
+ #: contrib/workflow/serializers/step.py:144
654
+ #: contrib/workflow/viewsets/display/step.py:124
655
+ msgid "Assignee Method"
656
+ msgstr "Verantwortlichen-Methode"
657
+
658
+ #: contrib/workflow/models/step.py:269
659
+ msgid "Kwargs"
660
+ msgstr "Kwargs"
661
+
662
+ #: contrib/workflow/models/step.py:297
663
+ msgid "No assignees selected!"
664
+ msgstr "Keine Verantwortlichen ausgewählt!"
665
+
666
+ #: contrib/workflow/models/step.py:319
667
+ msgid "Assigned Workflow Step Failed"
668
+ msgstr "Zugewiesener Workflow Schritt Gescheitert"
669
+
670
+ #: contrib/workflow/models/step.py:321
671
+ msgid ""
672
+ "A workflow step you were assigned to just failed with the error message "
673
+ "'{}'. Please take appropriate action."
674
+ msgstr ""
675
+ "Ein Workflow Schritt, dem Sie zugewiesen waren, ist gerade mit der "
676
+ "Fehlermeldung '{}' fehlgeschlagen. Bitte verfahren Sie angemessen."
677
+
678
+ #: contrib/workflow/models/step.py:325
679
+ msgid "Workflow Step Awaiting Your Decision"
680
+ msgstr "Workflow Schritt Wartet auf Ihre Entscheidung"
681
+
682
+ #: contrib/workflow/models/step.py:326
683
+ msgid "You were assigned to a workflow step. Please select the next step."
684
+ msgstr ""
685
+ "Sie wurden einem Workflow Schritt zugewiesen. Bitte wählen Sie den nächsten "
686
+ "Schritt."
687
+
688
+ #: contrib/workflow/models/step.py:351
689
+ #: contrib/workflow/viewsets/titles/step.py:19
690
+ msgid "User Steps"
691
+ msgstr "Benutzerschritte"
692
+
693
+ #: contrib/workflow/models/step.py:361
694
+ msgid "Workflow Step Assignment Notification"
695
+ msgstr "Workflow Schritt Zuweisungsbenachrichtigung"
696
+
697
+ #: contrib/workflow/models/step.py:363
698
+ msgid ""
699
+ "Notification for all assigned users that can transition a workflow step to "
700
+ "the next step"
701
+ msgstr ""
702
+ "Benachrichtigung für alle zugewiesenen Benutzer*innen, die den nächsten "
703
+ "Workflow Schritt auswählen können"
704
+
705
+ #: contrib/workflow/models/step.py:368
706
+ msgid "Failed Workflow Step Notification"
707
+ msgstr "Fehlgeschlagener Workflow Schritt Benachrichtigung"
708
+
709
+ #: contrib/workflow/models/step.py:369
710
+ msgid "Notification for all assigned users of a failed workflow step"
711
+ msgstr ""
712
+ "Benachrichtigung für alle zugewiesenen Benutzer*innen eines fehlgeschlagenen"
713
+ " Workflow Schrittes"
714
+
715
+ #: contrib/workflow/models/step.py:391
716
+ msgid "No valid outgoing transition found for this step!"
717
+ msgstr "Kein valider ausgehender Übergang für diesen Schritt gefunden!"
718
+
719
+ #: contrib/workflow/models/step.py:404
720
+ #: contrib/workflow/viewsets/titles/step.py:30
721
+ msgid "Decision Steps"
722
+ msgstr "Entscheidungsschritte"
723
+
724
+ #: contrib/workflow/models/step.py:432
725
+ #: contrib/workflow/viewsets/titles/step.py:52
726
+ msgid "Split Steps"
727
+ msgstr "Teilungsschritte"
728
+
729
+ #: contrib/workflow/models/step.py:442
730
+ #: contrib/workflow/viewsets/display/step.py:217
731
+ msgid "Wait For All"
732
+ msgstr "Auf Alle Warten"
733
+
734
+ #: contrib/workflow/models/step.py:443
735
+ msgid ""
736
+ "If False, will cancel all other incoming process steps as soon the first "
737
+ "reaches this step."
738
+ msgstr ""
739
+ "Wenn falsch, bricht alle anderen eingehenden Prozessschritte ab, sobald der "
740
+ "erste diesen Schritt erreicht."
741
+
742
+ #: contrib/workflow/models/step.py:509
743
+ #: contrib/workflow/viewsets/titles/step.py:63
744
+ msgid "Join Steps"
745
+ msgstr "Mündungsschritte"
746
+
747
+ #: contrib/workflow/models/step.py:515
748
+ #: contrib/workflow/serializers/step.py:279
749
+ #: contrib/workflow/viewsets/display/step.py:261
750
+ msgid "Script"
751
+ msgstr "Skript"
752
+
753
+ #: contrib/workflow/models/step.py:522
754
+ msgid "Executing script failed: {}"
755
+ msgstr "Ausführung des Skripts fehlgeschlagen: {}"
756
+
757
+ #: contrib/workflow/models/step.py:537
758
+ #: contrib/workflow/viewsets/titles/step.py:74
759
+ msgid "Script Steps"
760
+ msgstr "Skriptschritte"
761
+
762
+ #: contrib/workflow/models/step.py:550
763
+ #: contrib/workflow/viewsets/display/step.py:313
764
+ msgid "Subject"
765
+ msgstr "Betreff"
766
+
767
+ #: contrib/workflow/models/step.py:590
768
+ msgid "Error in template syntax!"
769
+ msgstr "Fehler in Syntax der Vorlage!"
770
+
771
+ #: contrib/workflow/models/step.py:602
772
+ #: contrib/workflow/viewsets/titles/step.py:85
773
+ msgid "Email Steps"
774
+ msgstr "Emailschritte"
775
+
776
+ #: contrib/workflow/models/step.py:610
777
+ #: contrib/workflow/viewsets/display/step.py:366
778
+ msgid "Write Preserved Instance"
779
+ msgstr "Geschützte Instanz Speichern"
780
+
781
+ #: contrib/workflow/models/step.py:612
782
+ msgid ""
783
+ "Writes the instance data backup onto the instance restoring its state to the"
784
+ " beginning of the workflow."
785
+ msgstr ""
786
+ "Überschreibt die momentane Instanz mit den Daten der gesicherten Instanz, "
787
+ "sodass diese wieder in ihren Zustand zu Beginn des Workflows versetzt wird."
788
+
789
+ #: contrib/workflow/models/step.py:628
790
+ #: contrib/workflow/tests/test_models/step/test_finish_step.py:55
791
+ msgid "There are process steps still running for this workflow!"
792
+ msgstr "Es gibt noch laufende Prozessschritte in diesem Workflow!"
793
+
794
+ #: contrib/workflow/models/step.py:661
795
+ #: contrib/workflow/viewsets/titles/step.py:96
796
+ msgid "Finish Steps"
797
+ msgstr "Schlussschritte"
798
+
799
+ #: contrib/workflow/models/transition.py:28
800
+ #: contrib/workflow/viewsets/display/transition.py:25
801
+ msgid "Icon"
802
+ msgstr "Symbol"
803
+
804
+ #: contrib/workflow/models/transition.py:43
805
+ msgid "No instance or data attached!"
806
+ msgstr "Keine Instanz oder Daten angehängt!"
807
+
808
+ #: contrib/workflow/models/workflow.py:43
809
+ #: contrib/workflow/viewsets/display/workflow.py:23
810
+ msgid "Single Instance Execution"
811
+ msgstr "Einzelausführung der Instanz"
812
+
813
+ #: contrib/workflow/models/workflow.py:45
814
+ msgid ""
815
+ "Indicates wether the workflow is restricted to only one running workflow at "
816
+ "a time. If an instance is attached to the workflow this will restrict the "
817
+ "workflow execution per model instance."
818
+ msgstr ""
819
+
820
+ #: contrib/workflow/models/workflow.py:48
821
+ #: contrib/workflow/viewsets/display/workflow.py:38
822
+ msgid "Model"
823
+ msgstr "Model"
824
+
825
+ #: contrib/workflow/models/workflow.py:51
826
+ msgid "Status Field"
827
+ msgstr "Status-Feld"
828
+
829
+ #: contrib/workflow/models/workflow.py:52
830
+ msgid ""
831
+ "The status field name in the attached model that needs to be updated by the "
832
+ "workflow"
833
+ msgstr ""
834
+
835
+ #: contrib/workflow/models/workflow.py:58
836
+ #: contrib/workflow/viewsets/display/workflow.py:26
837
+ msgid "Preserve Instance"
838
+ msgstr "Instanz Schützen"
839
+
840
+ #: contrib/workflow/models/workflow.py:60
841
+ msgid ""
842
+ "This will preserve the attached instance's state in a JSON field when "
843
+ "starting the workflow. You then have the option to write this data back onto"
844
+ " the instance in a finish step, effectively preserving the instance's state "
845
+ "throughout the workflow."
846
+ msgstr ""
847
+ "Dies würde alle Daten der angehefteten Instanz in einem JSON-Feld speichern,"
848
+ " sobald der Workflow gestartet wird. Der*Die Benutzer*in hat dann die "
849
+ "Möglichkeit, diese Daten in einem Schlussschritt wieder in der Instanz zu "
850
+ "speichern, wodurch die Instanz vor Änderungen durch den Workflow geschützt "
851
+ "wird."
852
+
853
+ #: contrib/workflow/models/workflow.py:63
854
+ #: contrib/workflow/serializers/workflow.py:17
855
+ msgid "Graph"
856
+ msgstr "Graph"
857
+
858
+ #: contrib/workflow/models/workflow.py:166
859
+ msgid "if {} {} {}"
860
+ msgstr "wenn {} {} {}"
861
+
862
+ #: contrib/workflow/serializers/condition.py:36
863
+ msgid "This condition for the selected transition already exists."
864
+ msgstr "Diese Bedingung existiert bereits für den ausgewählten Übergang."
865
+
866
+ #: contrib/workflow/serializers/condition.py:40
867
+ msgid "Related workflow needs to have a model or data attached."
868
+ msgstr "Zugehöriger Workflow muss ein Model oder Datensatz angeheftet haben."
869
+
870
+ #: contrib/workflow/serializers/data.py:30
871
+ msgid "A field with this name already exists in the process step model."
872
+ msgstr "Ein Feld mit diesem Namen existiert bereits im Prozessschritt Model."
873
+
874
+ #: contrib/workflow/serializers/data.py:37
875
+ msgid ""
876
+ "A data object with this label was already created for the selected workflow."
877
+ msgstr ""
878
+ "Ein Datenobjekt mit dieser Bezeichnung wurde bereits für den ausgewählten "
879
+ "Workflow erstellt."
880
+
881
+ #: contrib/workflow/serializers/data.py:42
882
+ msgid "Cannot set both required and a default value."
883
+ msgstr ""
884
+ "Kann nicht gleichzeitig als Pflichtfeld deklariert und ein Standardwert "
885
+ "angegeben werden."
886
+
887
+ #: contrib/workflow/serializers/data.py:51
888
+ msgid ""
889
+ "Invalid default value for this data type. Please use a date formatted to "
890
+ "'day.month.year'."
891
+ msgstr ""
892
+ "Ungültiger Standardwert für diesen Datentyp. Bitte nutzen Sie ein Datum mit "
893
+ "der Formatierung 'Tag.Monat.Jahr'."
894
+
895
+ #: contrib/workflow/serializers/data.py:59
896
+ msgid ""
897
+ "Invalid default value for this data type. Please use a datetime formatted to"
898
+ " 'day.month.year hour:minute:second' in the 24h format."
899
+ msgstr ""
900
+ "Ungültiger Standardwert für diesen Datentyp. Bitte nutzen Sie eine Datum- "
901
+ "und Zeitangabe mit der Formatierung 'Tag.Monat.Jahr Stunde:Minute:Sekunde' "
902
+ "im 24h-Format."
903
+
904
+ #: contrib/workflow/serializers/data.py:63
905
+ msgid "Invalid default value for this data type."
906
+ msgstr "Ungültiger Standardwert für diesen Datentyp."
907
+
908
+ #: contrib/workflow/serializers/data.py:107
909
+ msgid ""
910
+ "Invalid value for this data type. Please use a date formatted to "
911
+ "'day.month.year'."
912
+ msgstr ""
913
+ "Ungültiger Wert für diesen Datentyp. Bitte nutzen Sie ein Datum mit der "
914
+ "Formatierung 'Tag.Monat.Jahr'."
915
+
916
+ #: contrib/workflow/serializers/data.py:115
917
+ msgid ""
918
+ "Invalid value for this data type. Please use a datetime formatted to "
919
+ "'day.month.year hour:minute:second' in the 24h format."
920
+ msgstr ""
921
+ "Ungültiger Wert für diesen Datentyp. Bitte nutzen Sie eine Datum- und "
922
+ "Zeitangabe mit der Formatierung 'Tag.Monat.Jahr Stunde:Minute:Sekunde' im "
923
+ "24h-Format."
924
+
925
+ #: contrib/workflow/serializers/data.py:119
926
+ msgid "Invalid value for this data type."
927
+ msgstr "Ungültiger Wert für diesen Datentyp."
928
+
929
+ #: contrib/workflow/serializers/process.py:103
930
+ #: contrib/workflow/serializers/signals.py:21
931
+ msgid "Are you sure you want to activate {}?"
932
+ msgstr "Sind Sie sich sicher, dass Sie {} aktivieren wollen?"
933
+
934
+ #: contrib/workflow/serializers/process.py:105
935
+ #: contrib/workflow/serializers/signals.py:23
936
+ msgid "Activating {}"
937
+ msgstr "Aktiviere {}"
938
+
939
+ #: contrib/workflow/serializers/step.py:80
940
+ msgid "You need to set a workflow."
941
+ msgstr "Sie müssen einen Workflow setzen."
942
+
943
+ #: contrib/workflow/serializers/step.py:86
944
+ msgid "Name has to be unique for the specified workflow."
945
+ msgstr "Name muss einzigartig für den Workflow sein."
946
+
947
+ #: contrib/workflow/serializers/step.py:92
948
+ msgid "Code has to be unique for the specified workflow."
949
+ msgstr "Code muss einzigartig für diesen Workflow sein."
950
+
951
+ #: contrib/workflow/serializers/step.py:98
952
+ msgid ""
953
+ "You need to specify a status for a workflow with an attached model. If no "
954
+ "model is attached, do not specify a status."
955
+ msgstr ""
956
+ "Bei einem Workflow mit angehefteter Instanz müssen Sie ein Status-Feld "
957
+ "angeben."
958
+
959
+ #: contrib/workflow/serializers/step.py:166
960
+ msgid "Assignee method must be one of the available choices."
961
+ msgstr ""
962
+
963
+ #: contrib/workflow/serializers/step.py:170
964
+ msgid "Please select either an assignee or a group. Do not select both."
965
+ msgstr ""
966
+ "Bitte wählen Sie entweder eine*n Verantwortliche*n oder eine Gruppe, aber "
967
+ "nicht beides beides."
968
+
969
+ #: contrib/workflow/serializers/step.py:172
970
+ msgid "Please do not select both an assignee and a method."
971
+ msgstr ""
972
+ "Bitte wählen Sie nicht gleichzeitig eine*n Verantwortliche*n und eine "
973
+ "Methode aus."
974
+
975
+ #: contrib/workflow/serializers/step.py:188
976
+ msgid ""
977
+ "None of the selected assignees/group members has this permission. Please "
978
+ "assign the permission to one of the users or choose a different one."
979
+ msgstr ""
980
+ "Keiner der ausgewählten verantwortlichen Personen/Gruppen hat diese "
981
+ "Erlaubnis. Bitte weisen Sie diese Erlaubnis einem der Nutzerprofile zu oder "
982
+ "wählen Sie eine andere."
983
+
984
+ #: contrib/workflow/serializers/step.py:316
985
+ msgid "Duplicate E-Mails in 'To' and 'CC'."
986
+ msgstr "Duplikate E-Mail-Adressen in 'An' und 'CC'."
987
+
988
+ #: contrib/workflow/serializers/step.py:318
989
+ msgid "Duplicate E-Mails in 'To' and 'BCC'."
990
+ msgstr "Doppelte E-Mail-Adressen in 'An' und 'BCC'."
991
+
992
+ #: contrib/workflow/serializers/step.py:320
993
+ msgid "Duplicate E-Mails in 'CC' and 'BCC'."
994
+ msgstr "Doppelte E-Mail-Adressen in 'CC' und 'BCC'."
995
+
996
+ #: contrib/workflow/serializers/step.py:348
997
+ msgid ""
998
+ "Cannot write preserved instance without picking the option to preserve it "
999
+ "when creating the workflow."
1000
+ msgstr ""
1001
+ "Kann die geschützte Instanz nicht speichern ohne vorher im Workflow die "
1002
+ "Option, die Instanz zu schützen, ausgewählt zu haben."
1003
+
1004
+ #: contrib/workflow/serializers/transition.py:32
1005
+ msgid "Cannot set a start step at the end of a transition."
1006
+ msgstr ""
1007
+
1008
+ #: contrib/workflow/serializers/transition.py:36
1009
+ msgid "All steps need to belong to the same workflow."
1010
+ msgstr "Alle Schritte müssen zu demselben Workflow gehören."
1011
+
1012
+ #: contrib/workflow/serializers/transition.py:41
1013
+ msgid ""
1014
+ "Cannot transition to the same step. Please set different preceding and "
1015
+ "succeeding steps."
1016
+ msgstr ""
1017
+ "Kann nicht zum selben Schritt übergehen. Bitte setzen Sie unterschiedliche "
1018
+ "vorangegangene und nachfolgende Schritte."
1019
+
1020
+ #: contrib/workflow/serializers/transition.py:47
1021
+ msgid "Cannot set a finishing step at the start of a transition."
1022
+ msgstr "Kann keinen Schlussschritt für den Anfang eines Übergangs benutzen."
1023
+
1024
+ #: contrib/workflow/serializers/transition.py:54
1025
+ msgid ""
1026
+ "A transition with this name to the same succeeding step already exists."
1027
+ msgstr "Ein Übergang mit diesem Namen zum selben Schritt existiert bereits."
1028
+
1029
+ #: contrib/workflow/serializers/workflow.py:64
1030
+ #: contrib/workflow/serializers/workflow.py:67
1031
+ msgid "Start {}"
1032
+ msgstr "{} Starten"
1033
+
1034
+ #: contrib/workflow/serializers/workflow.py:66
1035
+ msgid "Are you sure you want to start workflow {}?"
1036
+ msgstr "Sind Sie sich sicher, dass Sie den Workflow {} starten wollen?"
1037
+
1038
+ #: contrib/workflow/serializers/workflow.py:68
1039
+ msgid "Starting {}"
1040
+ msgstr "Starte {}"
1041
+
1042
+ #: contrib/workflow/serializers/workflow.py:87
1043
+ msgid "Can only preserve the instance when a model is attached."
1044
+ msgstr "Instanz nicht zum Schützen verfügbar wenn kein Model angeheftet ist."
1045
+
1046
+ #: contrib/workflow/serializers/workflow.py:91
1047
+ msgid "Model not found."
1048
+ msgstr "Model nicht gefunden."
1049
+
1050
+ #: contrib/workflow/serializers/workflow.py:93
1051
+ msgid "This model does not implement the specified status field."
1052
+ msgstr "Dieses Model implementiert das spezifizierte Status-Feld nicht."
1053
+
1054
+ #: contrib/workflow/viewsets/buttons/step.py:14
1055
+ msgid "New Step"
1056
+ msgstr "Neuer Schritt"
1057
+
1058
+ #: contrib/workflow/viewsets/buttons/step.py:19
1059
+ msgid "New Start Step"
1060
+ msgstr "Neuer Startschritt"
1061
+
1062
+ #: contrib/workflow/viewsets/buttons/step.py:25
1063
+ msgid "New User Step"
1064
+ msgstr "Neuer Benutzerschritt"
1065
+
1066
+ #: contrib/workflow/viewsets/buttons/step.py:31
1067
+ msgid "New Decision Step"
1068
+ msgstr "Neuer Entscheidungsschritt"
1069
+
1070
+ #: contrib/workflow/viewsets/buttons/step.py:37
1071
+ msgid "New Split Step"
1072
+ msgstr "Neuer Teilungsschritt"
1073
+
1074
+ #: contrib/workflow/viewsets/buttons/step.py:43
1075
+ msgid "New Join Step"
1076
+ msgstr "Neuer Mündungsschritt"
1077
+
1078
+ #: contrib/workflow/viewsets/buttons/step.py:49
1079
+ msgid "New Script Step"
1080
+ msgstr "Neuer Skriptschritt"
1081
+
1082
+ #: contrib/workflow/viewsets/buttons/step.py:55
1083
+ msgid "New Email Step"
1084
+ msgstr "Neuer E-Mail-Schritt"
1085
+
1086
+ #: contrib/workflow/viewsets/buttons/step.py:61
1087
+ msgid "New Finish Step"
1088
+ msgstr "Neuer Schlussschritt"
1089
+
1090
+ #: contrib/workflow/viewsets/display/step.py:315
1091
+ msgid "Cc"
1092
+ msgstr "CC"
1093
+
1094
+ #: contrib/workflow/viewsets/display/workflow.py:25
1095
+ msgid "Model Status Field"
1096
+ msgstr "Model Status-Feld"
1097
+
1098
+ #: contrib/workflow/viewsets/menu/condition.py:13
1099
+ #: contrib/workflow/viewsets/titles/condition.py:11
1100
+ msgid "Create Condition"
1101
+ msgstr "Bedingung Erstellen"
1102
+
1103
+ #: contrib/workflow/viewsets/menu/data.py:13
1104
+ #: contrib/workflow/viewsets/titles/data.py:11
1105
+ msgid "Create Data"
1106
+ msgstr "Daten Erstellen"
1107
+
1108
+ #: contrib/workflow/viewsets/menu/step.py:13
1109
+ #: contrib/workflow/viewsets/titles/step.py:44
1110
+ msgid "Create Start Step"
1111
+ msgstr "Startschritt Erstellen"
1112
+
1113
+ #: contrib/workflow/viewsets/menu/step.py:28
1114
+ #: contrib/workflow/viewsets/titles/step.py:22
1115
+ msgid "Create User Step"
1116
+ msgstr "Benutzerschritt Erstellen"
1117
+
1118
+ #: contrib/workflow/viewsets/menu/step.py:43
1119
+ #: contrib/workflow/viewsets/titles/step.py:33
1120
+ msgid "Create Decision Step"
1121
+ msgstr "Entscheidungsschritt Erstellen"
1122
+
1123
+ #: contrib/workflow/viewsets/menu/step.py:58
1124
+ #: contrib/workflow/viewsets/titles/step.py:55
1125
+ msgid "Create Split Step"
1126
+ msgstr "Teilungsschritt Erstellen"
1127
+
1128
+ #: contrib/workflow/viewsets/menu/step.py:73
1129
+ #: contrib/workflow/viewsets/titles/step.py:66
1130
+ msgid "Create Join Step"
1131
+ msgstr "Mündungsschritt Erstellen"
1132
+
1133
+ #: contrib/workflow/viewsets/menu/step.py:88
1134
+ #: contrib/workflow/viewsets/titles/step.py:77
1135
+ msgid "Create Script Step"
1136
+ msgstr "Skriptschritt Erstellen"
1137
+
1138
+ #: contrib/workflow/viewsets/menu/step.py:103
1139
+ #: contrib/workflow/viewsets/titles/step.py:88
1140
+ msgid "Create Email Step"
1141
+ msgstr "Emailschritt Erstellen"
1142
+
1143
+ #: contrib/workflow/viewsets/menu/step.py:118
1144
+ #: contrib/workflow/viewsets/titles/step.py:99
1145
+ msgid "Create Finish Step"
1146
+ msgstr "Schlussschritt Erstellen"
1147
+
1148
+ #: contrib/workflow/viewsets/menu/transition.py:13
1149
+ #: contrib/workflow/viewsets/titles/transition.py:11
1150
+ msgid "Create Transition"
1151
+ msgstr "Übergang Erstellen"
1152
+
1153
+ #: contrib/workflow/viewsets/menu/workflow.py:13
1154
+ #: contrib/workflow/viewsets/titles/workflow.py:11
1155
+ msgid "Create Workflow"
1156
+ msgstr "Workflow Erstellen"
1157
+
1158
+ #: contrib/workflow/viewsets/titles/process.py:24
1159
+ msgid "Assigned Process Steps"
1160
+ msgstr "Zugewiesene Prozessschritte"
1161
+
1162
+ #: contrib/workflow/viewsets/titles/process.py:27
1163
+ msgid "Assigned Process Step"
1164
+ msgstr "Zugewiesener Prozessschritt"
1165
+
1166
+ #: contrib/workflow/viewsets/titles/step.py:11
1167
+ msgid "Create Step"
1168
+ msgstr "Schritt Erstellen"
1169
+
1170
+ #: contrib/workflow/workflows/assignees.py:31
1171
+ msgid "Error in assignee method: Incorrect input in kwargs field!"
1172
+ msgstr "Fehler in Verantwortlichen-Methode: Inkorrekter Input im Kwargs-Feld!"
1173
+
1174
+ #: contrib/workflow/workflows/assignees.py:74
1175
+ #: contrib/workflow/workflows/assignees.py:86
1176
+ msgid ""
1177
+ "Error in assignee method: No populated group to pick assignee from selected!"
1178
+ msgstr ""
1179
+ "Fehler in Verantwortlichen-Methode: Keine Gruppe mit Benutzer*innen, aus "
1180
+ "denen der*die Verantwortliche gezogen werden kann, wurde ausgewählt!"