modoboa 2.4.11__py3-none-any.whl → 2.5.0__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 (314) hide show
  1. modoboa/admin/api/v2/serializers.py +14 -0
  2. modoboa/amavis/__init__.py +3 -0
  3. modoboa/amavis/app_settings.py +276 -0
  4. modoboa/amavis/apps.py +18 -0
  5. modoboa/amavis/checks/__init__.py +2 -0
  6. modoboa/amavis/checks/settings_checks.py +59 -0
  7. modoboa/amavis/dbrouter.py +35 -0
  8. modoboa/amavis/factories.py +164 -0
  9. modoboa/amavis/handlers.py +146 -0
  10. modoboa/amavis/lib.py +381 -0
  11. modoboa/amavis/management/__init__.py +0 -0
  12. modoboa/amavis/management/commands/__init__.py +0 -0
  13. modoboa/amavis/management/commands/amnotify.py +99 -0
  14. modoboa/amavis/management/commands/qcleanup.py +84 -0
  15. modoboa/amavis/migrations/0001_initial.py +340 -0
  16. modoboa/amavis/migrations/__init__.py +0 -0
  17. modoboa/amavis/models.py +226 -0
  18. modoboa/amavis/serializers.py +139 -0
  19. modoboa/amavis/sql_connector.py +240 -0
  20. modoboa/amavis/sql_email.py +66 -0
  21. modoboa/amavis/tasks.py +33 -0
  22. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  23. modoboa/amavis/tests/__init__.py +0 -0
  24. modoboa/amavis/tests/sa-learn +3 -0
  25. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  26. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  27. modoboa/amavis/tests/spamc +3 -0
  28. modoboa/amavis/tests/test_checks.py +25 -0
  29. modoboa/amavis/tests/test_handlers.py +214 -0
  30. modoboa/amavis/tests/test_lib.py +90 -0
  31. modoboa/amavis/tests/test_management_commands.py +45 -0
  32. modoboa/amavis/tests/test_sql_email.py +67 -0
  33. modoboa/amavis/tests/test_utils.py +19 -0
  34. modoboa/amavis/tests/test_viewsets.py +319 -0
  35. modoboa/amavis/urls.py +11 -0
  36. modoboa/amavis/utils.py +105 -0
  37. modoboa/amavis/viewsets.py +265 -0
  38. modoboa/core/api/v1/serializers.py +7 -5
  39. modoboa/core/api/v2/serializers.py +4 -2
  40. modoboa/core/api/v2/tests.py +16 -4
  41. modoboa/core/api/v2/urls.py +5 -5
  42. modoboa/core/api/v2/views.py +3 -1
  43. modoboa/core/api/v2/viewsets.py +24 -3
  44. modoboa/core/handlers.py +6 -2
  45. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  46. modoboa/core/management/commands/load_initial_data.py +10 -0
  47. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  48. modoboa/core/tests/test_core.py +24 -0
  49. modoboa/core/utils.py +3 -0
  50. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  51. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  52. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  53. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  54. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  55. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  56. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  57. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  58. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  59. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  60. modoboa/frontend_dist/assets/{AliasRecipientForm-IOae6sjF.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  61. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  62. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  63. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  64. modoboa/frontend_dist/assets/{ChoiceField-DJ_c78Cm.js → ChoiceField-B3ReQHVe.js} +1 -1
  65. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  66. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  67. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  68. modoboa/frontend_dist/assets/{ConnectedLayout-Dvwmicnc.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  69. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  70. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  71. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  72. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  73. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  74. modoboa/frontend_dist/assets/{DomainTransportForm-C2xo0Yd7.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  75. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  76. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  77. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  78. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  79. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  80. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  81. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  82. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  83. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  84. modoboa/frontend_dist/assets/{HtmlEditor-CJ9umKeO.js → HtmlEditor-Bh4c689R.js} +1 -1
  85. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  86. modoboa/frontend_dist/assets/{IdentitiesView-0ziuQ5s-.css → IdentitiesView-DPrrRMS5.css} +1 -1
  87. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  88. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  89. modoboa/frontend_dist/assets/{LoadingData-CYwX3Jpn.js → LoadingData-CdVvm4FI.js} +1 -1
  90. modoboa/frontend_dist/assets/{LoginCallbackView-E01qkKn0.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  91. modoboa/frontend_dist/assets/{LoginView-Cy4uFV9h.js → LoginView-tHIR4Adc.js} +1 -1
  92. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  93. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  94. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  95. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  96. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  97. modoboa/frontend_dist/assets/{ParametersForm-BZM0QSvg.js → ParametersForm-CAv4SH-E.js} +1 -1
  98. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  99. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  100. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  101. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  102. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  103. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  104. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  105. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  106. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  107. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  108. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  109. modoboa/frontend_dist/assets/{SettingsView-BxLJBFY0.js → SettingsView-9iNcDhkI.js} +2 -2
  110. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  111. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  112. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  113. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  114. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  115. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  116. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  117. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  118. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  119. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  120. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  121. modoboa/frontend_dist/assets/{VCheckboxBtn-Dt810gWf.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  122. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  123. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  124. modoboa/frontend_dist/assets/{VContainer-DvTbsotR.js → VContainer-B46caNs1.js} +1 -1
  125. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  126. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  127. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  128. modoboa/frontend_dist/assets/{VDialog-Bk6EWNhz.js → VDialog-BcTg7w6P.js} +1 -1
  129. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  130. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  131. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  132. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  133. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  134. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  135. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  136. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  137. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  138. modoboa/frontend_dist/assets/{VRow-BF35mT1S.js → VRow-ozg66L7j.js} +1 -1
  139. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  140. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  141. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  142. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  143. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  144. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  145. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  146. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  147. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  148. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  149. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  150. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  151. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  152. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  153. modoboa/frontend_dist/assets/{admin-o-HRGnmT.js → admin-DewTk2H8.js} +1 -1
  154. modoboa/frontend_dist/assets/{aliases-DDVeehyg.js → aliases-4sXmjwXp.js} +1 -1
  155. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  156. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  157. modoboa/frontend_dist/assets/{contacts-C84DY-Q1.js → contacts-BjghrPqZ.js} +1 -1
  158. modoboa/frontend_dist/assets/{domains-Bgn4ixHL.js → domains-BSawReeu.js} +1 -1
  159. modoboa/frontend_dist/assets/{domains.store-DTE-V7Y1.js → domains.store-D-vWCEIK.js} +1 -1
  160. modoboa/frontend_dist/assets/{filter-CnffiQAW.js → filter-C82FUCw_.js} +1 -1
  161. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  162. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  163. modoboa/frontend_dist/assets/{importExport-BlQYb0NO.js → importExport-DzoL4Mvc.js} +1 -1
  164. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  165. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  166. modoboa/frontend_dist/assets/{layout.store-DkjrAoXt.js → layout.store-NXWtFIwL.js} +1 -1
  167. modoboa/frontend_dist/assets/{logos-q8SEyAa4.js → logos-BswdveCV.js} +1 -1
  168. modoboa/frontend_dist/assets/{logs-B7IJ7LBa.js → logs-6CbtfaZS.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters-A6iBEYQq.js → parameters-aSQiR7kN.js} +1 -1
  170. modoboa/frontend_dist/assets/{parameters.store-BiXS4_6w.js → parameters.store-CzQqVatx.js} +1 -1
  171. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  172. modoboa/frontend_dist/assets/{ssrBoot-AzTdjPjk.js → ssrBoot-CKUX4kcb.js} +1 -1
  173. modoboa/frontend_dist/assets/{tag-BnSYRTcD.js → tag-B_yWNNJD.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  175. modoboa/frontend_dist/assets/{webmail-CSH_3l6R.js → webmail-CdU6CD9b.js} +1 -1
  176. modoboa/frontend_dist/index.html +1 -1
  177. modoboa/lib/email_utils.py +2 -2
  178. modoboa/lib/permissions.py +7 -0
  179. modoboa/lib/test_runners.py +29 -0
  180. modoboa/lib/tests/__init__.py +5 -1
  181. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  182. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  183. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  184. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  185. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  186. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  187. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  188. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  189. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  190. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  191. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  192. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  194. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  195. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  197. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/ja_JP/LC_MESSAGES/django.po +80 -72
  199. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  200. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  201. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  204. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  205. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  206. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  207. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  208. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  209. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  210. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  211. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  212. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  213. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  215. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  216. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  217. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  218. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  219. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  220. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  221. modoboa/parameters/api/v2/tests.py +2 -2
  222. modoboa/parameters/api/v2/viewsets.py +2 -0
  223. modoboa/policyd/tests.py +2 -0
  224. modoboa/urls_api_v2.py +6 -0
  225. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  226. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/RECORD +231 -181
  227. modoboa/frontend_dist/assets/AccountAliasForm-BV6KvTu6.js +0 -1
  228. modoboa/frontend_dist/assets/AccountEditView-DDOFyfBD.js +0 -1
  229. modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +0 -1
  230. modoboa/frontend_dist/assets/AccountPasswordSubForm-D9S6LaeH.js +0 -1
  231. modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +0 -1
  232. modoboa/frontend_dist/assets/AddressBook-DCJxL8SU.js +0 -1
  233. modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +0 -1
  234. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  235. modoboa/frontend_dist/assets/AlarmsView-C0bqC4PA.js +0 -1
  236. modoboa/frontend_dist/assets/AliasEditView-DVoWoCGY.js +0 -1
  237. modoboa/frontend_dist/assets/AliasView-DrONZXOh.js +0 -1
  238. modoboa/frontend_dist/assets/AuditTrailView-OTkoZaMU.js +0 -1
  239. modoboa/frontend_dist/assets/CalendarView-CqF4_Ui9.js +0 -1
  240. modoboa/frontend_dist/assets/ComposeEmailForm-DO5_GB3e.js +0 -1
  241. modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +0 -1
  242. modoboa/frontend_dist/assets/ConfirmDialog-BBcgdAnO.js +0 -1
  243. modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +0 -1
  244. modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +0 -1
  245. modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +0 -1
  246. modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +0 -1
  247. modoboa/frontend_dist/assets/DomainEditView-CQjKwYxl.js +0 -1
  248. modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +0 -5
  249. modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +0 -1
  250. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  251. modoboa/frontend_dist/assets/EmailField-C8umy0EU.js +0 -1
  252. modoboa/frontend_dist/assets/EmailView-ki7uEQPD.js +0 -1
  253. modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +0 -1
  254. modoboa/frontend_dist/assets/FiltersView-FYFZxG4B.js +0 -1
  255. modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +0 -1
  256. modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +0 -1
  257. modoboa/frontend_dist/assets/InformationView-D1h38POt.js +0 -1
  258. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  259. modoboa/frontend_dist/assets/MailboxView-IlrLWm_H.js +0 -1
  260. modoboa/frontend_dist/assets/MenuItems-BAtHWzAE.js +0 -1
  261. modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +0 -1
  262. modoboa/frontend_dist/assets/MigrationsView-DKNOsVzF.js +0 -1
  263. modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +0 -1
  264. modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +0 -1
  265. modoboa/frontend_dist/assets/ProviderEditView-CyxCWTST.js +0 -1
  266. modoboa/frontend_dist/assets/ProviderGeneralForm-BYPjNHqB.js +0 -1
  267. modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +0 -1
  268. modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +0 -1
  269. modoboa/frontend_dist/assets/ResourcesForm-CuUvrOdY.js +0 -1
  270. modoboa/frontend_dist/assets/StatisticsView-BN7QsZMT.js +0 -1
  271. modoboa/frontend_dist/assets/TimeSerieChart-BMN8BeFZ.js +0 -1
  272. modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +0 -1
  273. modoboa/frontend_dist/assets/VAlert-DIQTrRif.js +0 -1
  274. modoboa/frontend_dist/assets/VApp-CpkYA7js.js +0 -1
  275. modoboa/frontend_dist/assets/VAutocomplete-C4IpXyl8.js +0 -1
  276. modoboa/frontend_dist/assets/VAvatar-Lpb-Dion.js +0 -1
  277. modoboa/frontend_dist/assets/VCard-er_isjE_.js +0 -1
  278. modoboa/frontend_dist/assets/VCheckbox-D-u8JXP1.js +0 -1
  279. modoboa/frontend_dist/assets/VChip-B4iSpj8_.js +0 -1
  280. modoboa/frontend_dist/assets/VColorPicker-BAjGDsXv.js +0 -1
  281. modoboa/frontend_dist/assets/VDataTable-4JRjbtgF.js +0 -1
  282. modoboa/frontend_dist/assets/VDataTableServer-tIDT1m3-.js +0 -1
  283. modoboa/frontend_dist/assets/VDataTableVirtual-BlnO18u_.js +0 -1
  284. modoboa/frontend_dist/assets/VExpansionPanels-CwGtXDhr.js +0 -1
  285. modoboa/frontend_dist/assets/VFileInput-D1_7ZkO_.js +0 -1
  286. modoboa/frontend_dist/assets/VForm-DAkW4nfy.js +0 -1
  287. modoboa/frontend_dist/assets/VMenu-BPFJwj2f.js +0 -1
  288. modoboa/frontend_dist/assets/VPicker-CfT82M8N.js +0 -1
  289. modoboa/frontend_dist/assets/VProgressCircular-w75-3ogi.js +0 -1
  290. modoboa/frontend_dist/assets/VRadioGroup-0j6DNC_k.js +0 -1
  291. modoboa/frontend_dist/assets/VSelect-Cs4ARbAS.js +0 -1
  292. modoboa/frontend_dist/assets/VSelectionControl-Dg-XyRRS.js +0 -1
  293. modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +0 -1
  294. modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +0 -1
  295. modoboa/frontend_dist/assets/VSwitch-Cs1NQrmk.js +0 -1
  296. modoboa/frontend_dist/assets/VTable-CNz2SGk4.js +0 -1
  297. modoboa/frontend_dist/assets/VTabs-B1fyVn4M.js +0 -1
  298. modoboa/frontend_dist/assets/VTextField-BdyvgvkG.js +0 -1
  299. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  300. modoboa/frontend_dist/assets/VTextarea-DnOMpe0Q.js +0 -1
  301. modoboa/frontend_dist/assets/VToolbar-BiCiBxBJ.js +0 -1
  302. modoboa/frontend_dist/assets/VWindowItem-ChWm_kz3.js +0 -1
  303. modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +0 -1
  304. modoboa/frontend_dist/assets/forwardRefs-Dvjn_Xq4.js +0 -1
  305. modoboa/frontend_dist/assets/global.store-BaiD63EN.js +0 -1
  306. modoboa/frontend_dist/assets/index-I1VDlN4g.js +0 -984
  307. modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +0 -1
  308. modoboa/frontend_dist/assets/permissions-CITHLHVg.js +0 -1
  309. modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +0 -1
  310. {modoboa-2.4.11.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  311. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  312. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  313. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  314. {modoboa-2.4.11.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
@@ -11,7 +11,7 @@ msgid ""
11
11
  msgstr ""
12
12
  "Project-Id-Version: PACKAGE VERSION\n"
13
13
  "Report-Msgid-Bugs-To: \n"
14
- "POT-Creation-Date: 2025-07-27 10:50+0200\n"
14
+ "POT-Creation-Date: 2025-08-28 09:41+0200\n"
15
15
  "PO-Revision-Date: 2020-05-11 18:45+0000\n"
16
16
  "Last-Translator: Tydýt _, 2023\n"
17
17
  "Language-Team: Czech (https://www.transifex.com/tonio/teams/13749/cs/)\n"
@@ -32,65 +32,66 @@ msgstr ""
32
32
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
33
33
  msgstr ""
34
34
 
35
- #: admin/api/v1/serializers.py:88
35
+ #: admin/api/v1/serializers.py:94
36
36
  msgid "domain alias with this name already exists"
37
37
  msgstr ""
38
38
 
39
- #: admin/api/v1/serializers.py:98
39
+ #: admin/api/v1/serializers.py:104
40
40
  msgid "No authorized MX record found for this domain"
41
41
  msgstr ""
42
42
 
43
- #: admin/api/v1/serializers.py:116
43
+ #: admin/api/v1/serializers.py:122
44
44
  msgid "Cannot be greater than domain quota"
45
45
  msgstr ""
46
46
 
47
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
48
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
47
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
48
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
49
49
  msgid "Permission denied."
50
50
  msgstr ""
51
51
 
52
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
53
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
54
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
52
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
53
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
54
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
55
55
  #: transport/backends.py:40
56
56
  msgid "This field is required"
57
57
  msgstr ""
58
58
 
59
- #: admin/api/v1/serializers.py:236
59
+ #: admin/api/v1/serializers.py:243
60
60
  msgid ""
61
61
  "List of administered domains (resellers and domain administrators only)."
62
62
  msgstr ""
63
63
 
64
- #: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
64
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
65
65
  msgid "Not allowed for this role."
66
66
  msgstr ""
67
67
 
68
- #: admin/api/v1/serializers.py:348
68
+ #: admin/api/v1/serializers.py:355
69
69
  msgid "Must be equal to mailbox full_address"
70
70
  msgstr ""
71
71
 
72
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
72
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
73
73
  #: calendars/serializers.py:175 calendars/serializers.py:177
74
+ #: pdfcredentials/api/v2/serializers.py:91
74
75
  msgid "This field is required."
75
76
  msgstr ""
76
77
 
77
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
78
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
78
79
  msgid "Local domain {} does not exist"
79
80
  msgstr ""
80
81
 
81
- #: admin/api/v1/serializers.py:492
82
+ #: admin/api/v1/serializers.py:499
82
83
  msgid "A list of recipient"
83
84
  msgstr ""
84
85
 
85
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
86
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
86
87
  msgid "This alias already exists"
87
88
  msgstr ""
88
89
 
89
- #: admin/api/v1/serializers.py:544
90
+ #: admin/api/v1/serializers.py:551
90
91
  msgid "You don't have access to this domain."
91
92
  msgstr ""
92
93
 
93
- #: admin/api/v1/serializers.py:553
94
+ #: admin/api/v1/serializers.py:560
94
95
  msgid "You don't have access to this mailbox."
95
96
  msgstr ""
96
97
 
@@ -98,56 +99,56 @@ msgstr ""
98
99
  msgid "Here is your new Modoboa password: {}"
99
100
  msgstr ""
100
101
 
101
- #: admin/api/v2/serializers.py:80
102
+ #: admin/api/v2/serializers.py:82
102
103
  msgid "DKIM keys storage directory not configured"
103
104
  msgstr ""
104
105
 
105
- #: admin/api/v2/serializers.py:92
106
+ #: admin/api/v2/serializers.py:94
106
107
  msgid "This field is valid when type is relaydomain"
107
108
  msgstr ""
108
109
 
109
- #: admin/api/v2/serializers.py:99
110
+ #: admin/api/v2/serializers.py:101
110
111
  msgid "You can't define an unlimited quota."
111
112
  msgstr ""
112
113
 
113
- #: admin/api/v2/serializers.py:133
114
+ #: admin/api/v2/serializers.py:135
114
115
  #, python-format
115
116
  msgid "User '%s' already exists"
116
117
  msgstr ""
117
118
 
118
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
119
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
119
120
  msgid "Must be a positive integer"
120
121
  msgstr ""
121
122
 
122
- #: admin/api/v2/serializers.py:263
123
+ #: admin/api/v2/serializers.py:265
123
124
  msgid "openssl not found, please make sure it is installed."
124
125
  msgstr ""
125
126
 
126
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
127
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
127
128
  msgid "Directory not found."
128
129
  msgstr ""
129
130
 
130
- #: admin/api/v2/serializers.py:277
131
+ #: admin/api/v2/serializers.py:279
131
132
  msgid "This field only allows valid IP addresses (or networks)"
132
133
  msgstr ""
133
134
 
134
- #: admin/api/v2/serializers.py:290
135
+ #: admin/api/v2/serializers.py:292
135
136
  msgid "Please disable imap migration before disabling this option."
136
137
  msgstr ""
137
138
 
138
- #: admin/api/v2/serializers.py:303
139
+ #: admin/api/v2/serializers.py:305
139
140
  msgid "Define at least one authorized network / address"
140
141
  msgstr ""
141
142
 
142
- #: admin/api/v2/serializers.py:565
143
+ #: admin/api/v2/serializers.py:581
143
144
  msgid "The left part of an email address can't be more than 64 characters."
144
145
  msgstr ""
145
146
 
146
- #: admin/api/v2/serializers.py:587
147
+ #: admin/api/v2/serializers.py:603
147
148
  msgid "A mailbox is required to create aliases."
148
149
  msgstr ""
149
150
 
150
- #: admin/api/v2/serializers.py:751
151
+ #: admin/api/v2/serializers.py:772
151
152
  msgid "Unknown status"
152
153
  msgstr ""
153
154
 
@@ -159,14 +160,6 @@ msgstr ""
159
160
  msgid "You can't delete your own domain"
160
161
  msgstr ""
161
162
 
162
- #: admin/api/v2/viewsets.py:407
163
- msgid "No alarm ID provided"
164
- msgstr ""
165
-
166
- #: admin/api/v2/viewsets.py:411
167
- msgid "Received invalid alarm id(s)"
168
- msgstr ""
169
-
170
163
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
171
164
  msgid "Domains"
172
165
  msgstr ""
@@ -353,7 +346,7 @@ msgstr ""
353
346
  msgid "Create an alias using the old address when a mailbox is renamed."
354
347
  msgstr ""
355
348
 
356
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
349
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
357
350
  msgid "Administration"
358
351
  msgstr ""
359
352
 
@@ -382,7 +375,7 @@ msgstr ""
382
375
  msgid "Account import failed (%s): domain does not exist"
383
376
  msgstr ""
384
377
 
385
- #: admin/handlers.py:242 admin/models/mailbox.py:340
378
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
386
379
  msgid "Mailbox {} already exists"
387
380
  msgstr ""
388
381
 
@@ -640,7 +633,7 @@ msgstr ""
640
633
  msgid "{}: domain quota exceeded"
641
634
  msgstr ""
642
635
 
643
- #: admin/models/mailbox.py:308
636
+ #: admin/models/mailbox.py:310
644
637
  msgid "Domain does not exist"
645
638
  msgstr ""
646
639
 
@@ -792,7 +785,7 @@ msgid ""
792
785
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
793
786
  msgstr ""
794
787
 
795
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
788
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
796
789
  msgid "Calendars"
797
790
  msgstr ""
798
791
 
@@ -826,7 +819,7 @@ msgstr ""
826
819
  msgid "Interval in seconds between 2 synchronization requests"
827
820
  msgstr ""
828
821
 
829
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
822
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
830
823
  msgid "Contacts"
831
824
  msgstr ""
832
825
 
@@ -874,12 +867,12 @@ msgstr ""
874
867
  msgid "2FA is already enabled"
875
868
  msgstr ""
876
869
 
877
- #: core/api/v1/serializers.py:87
870
+ #: core/api/v1/serializers.py:86
878
871
  #, python-format
879
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
872
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
880
873
  msgstr ""
881
874
 
882
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
875
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
883
876
  msgid "Invalid password"
884
877
  msgstr ""
885
878
 
@@ -891,40 +884,40 @@ msgstr ""
891
884
  msgid "Local"
892
885
  msgstr ""
893
886
 
894
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
887
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
895
888
  msgid "User profile"
896
889
  msgstr ""
897
890
 
898
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
899
- #: core/api/v2/serializers.py:208
891
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
892
+ #: core/api/v2/serializers.py:228
900
893
  msgid "Invalid syntax"
901
894
  msgstr ""
902
895
 
903
- #: core/api/v2/serializers.py:213
896
+ #: core/api/v2/serializers.py:233
904
897
  msgid "Invalid rounds number"
905
898
  msgstr ""
906
899
 
907
- #: core/api/v2/serializers.py:413 core/forms.py:81
900
+ #: core/api/v2/serializers.py:433 core/forms.py:81
908
901
  msgid "This code is invalid"
909
902
  msgstr ""
910
903
 
911
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
904
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194 core/views/auth.py:247
912
905
  msgid "Please use the following code to recover your Modoboa password: {}"
913
906
  msgstr ""
914
907
 
915
- #: core/api/v2/viewsets.py:164
908
+ #: core/api/v2/viewsets.py:176
916
909
  msgid "Administration console"
917
910
  msgstr ""
918
911
 
919
- #: core/api/v2/viewsets.py:174
920
- msgid "Calendar"
912
+ #: core/api/v2/viewsets.py:187
913
+ msgid "Address book"
921
914
  msgstr ""
922
915
 
923
- #: core/api/v2/viewsets.py:181
924
- msgid "Address book"
916
+ #: core/api/v2/viewsets.py:197
917
+ msgid "Calendar"
925
918
  msgstr ""
926
919
 
927
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
920
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
928
921
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
929
922
  msgid "Webmail"
930
923
  msgstr ""
@@ -1420,19 +1413,27 @@ msgstr ""
1420
1413
  msgid "The maximum age in days of a log record"
1421
1414
  msgstr ""
1422
1415
 
1423
- #: core/app_settings.py:726
1416
+ #: core/app_settings.py:727
1417
+ msgid "Retention time in message history"
1418
+ msgstr ""
1419
+
1420
+ #: core/app_settings.py:730
1421
+ msgid "Retention time (in days) of a message in the message history section"
1422
+ msgstr ""
1423
+
1424
+ #: core/app_settings.py:737
1424
1425
  msgid "Items per page"
1425
1426
  msgstr ""
1426
1427
 
1427
- #: core/app_settings.py:728
1428
+ #: core/app_settings.py:739
1428
1429
  msgid "Number of displayed items per page"
1429
1430
  msgstr ""
1430
1431
 
1431
- #: core/app_settings.py:735
1432
+ #: core/app_settings.py:746
1432
1433
  msgid "Default top redirection"
1433
1434
  msgstr ""
1434
1435
 
1435
- #: core/app_settings.py:737
1436
+ #: core/app_settings.py:748
1436
1437
  msgid "The default redirection used when no application is specified"
1437
1438
  msgstr ""
1438
1439
 
@@ -1463,8 +1464,8 @@ msgstr ""
1463
1464
 
1464
1465
  #: core/checks.py:34
1465
1466
  msgid ""
1466
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1467
- "html#dovecot-oauth2"
1467
+ "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1468
+ "dovecot.html#dovecot-oauth2"
1468
1469
  msgstr ""
1469
1470
 
1470
1471
  #: core/checks.py:41
@@ -1953,19 +1954,14 @@ msgstr ""
1953
1954
  #: imap_migration/app_settings.py:76
1954
1955
  msgid ""
1955
1956
  "A comma seperated list of folders to explicitly include in sync even if "
1956
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
1957
- "personal "
1957
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
1958
+ "debian.personal "
1958
1959
  msgstr ""
1959
1960
 
1960
1961
  #: imap_migration/apps.py:20
1961
1962
  msgid "IMAP Migration"
1962
1963
  msgstr ""
1963
1964
 
1964
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
1965
- #, python-brace-format
1966
- msgid "Connection to IMAP server failed: {error}"
1967
- msgstr ""
1968
-
1969
1965
  #: imap_migration/checks.py:12
1970
1966
  msgid ""
1971
1967
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2289,11 +2285,11 @@ msgstr ""
2289
2285
  msgid "Personal account information"
2290
2286
  msgstr ""
2291
2287
 
2292
- #: pdfcredentials/api/v2/serializers.py:81
2288
+ #: pdfcredentials/api/v2/serializers.py:86
2293
2289
  msgid "Directory is not writable"
2294
2290
  msgstr ""
2295
2291
 
2296
- #: pdfcredentials/api/v2/serializers.py:102
2292
+ #: pdfcredentials/api/v2/serializers.py:114
2297
2293
  msgid "No document available for this user"
2298
2294
  msgstr ""
2299
2295
 
@@ -3003,16 +2999,28 @@ msgstr ""
3003
2999
  msgid "User defined email signature"
3004
3000
  msgstr ""
3005
3001
 
3002
+ #: webmail/exceptions.py:18
3003
+ msgid "Server response"
3004
+ msgstr ""
3005
+
3006
3006
  #: webmail/lib/attachments.py:112
3007
3007
  #, fuzzy
3008
3008
  #| msgid "Failed to create LDAP account: {}"
3009
3009
  msgid "Failed to remove attachment: "
3010
3010
  msgstr "Nepodařilo se vytvořit LDAT účet: {}"
3011
3011
 
3012
+ #: webmail/lib/imapemail.py:272
3013
+ msgid "wrote:"
3014
+ msgstr ""
3015
+
3012
3016
  #: webmail/lib/imapemail.py:306
3013
3017
  msgid "Date"
3014
3018
  msgstr ""
3015
3019
 
3020
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3021
+ msgid "Original message"
3022
+ msgstr ""
3023
+
3016
3024
  #: webmail/lib/imaputils.py:221
3017
3025
  msgid "Failed to retrieve hierarchy delimiter"
3018
3026
  msgstr ""