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,17 +11,15 @@ msgid ""
11
11
  msgstr ""
12
12
  "Project-Id-Version: Modoboa\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-06 11:16+0000\n"
16
16
  "Last-Translator: Antoine Nguyen <tonio@ngyn.org>\n"
17
- "Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/"
18
- "modoboa/language/cs_CZ/)\n"
17
+ "Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/modoboa/language/cs_CZ/)\n"
19
18
  "Language: cs_CZ\n"
20
19
  "MIME-Version: 1.0\n"
21
20
  "Content-Type: text/plain; charset=UTF-8\n"
22
21
  "Content-Transfer-Encoding: 8bit\n"
23
- "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
24
- "<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
22
+ "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
25
23
 
26
24
  #: admin/api/v1/serializers.py:39
27
25
  msgid ""
@@ -35,68 +33,69 @@ msgstr ""
35
33
  msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
36
34
  msgstr "Výchozí kvóta v MB pro schránky. Hodnota 0 = žádná kvóta."
37
35
 
38
- #: admin/api/v1/serializers.py:88
36
+ #: admin/api/v1/serializers.py:94
39
37
  #, fuzzy
40
38
  msgid "domain alias with this name already exists"
41
39
  msgstr "Alias s tímto názvem již existuje"
42
40
 
43
- #: admin/api/v1/serializers.py:98
41
+ #: admin/api/v1/serializers.py:104
44
42
  msgid "No authorized MX record found for this domain"
45
43
  msgstr "Nebyly nalezeny žádné autorizované MX záznamy pro tuto doménu"
46
44
 
47
- #: admin/api/v1/serializers.py:116
45
+ #: admin/api/v1/serializers.py:122
48
46
  msgid "Cannot be greater than domain quota"
49
47
  msgstr "Nemůže být vyšší než kvóta domény"
50
48
 
51
- #: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
52
- #: admin/api/v2/serializers.py:548 admin/models/alias.py:44
49
+ #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
50
+ #: admin/api/v2/serializers.py:564 admin/models/alias.py:44
53
51
  msgid "Permission denied."
54
52
  msgstr "Přístup zamítnut."
55
53
 
56
- #: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
57
- #: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
58
- #: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
54
+ #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
55
+ #: admin/api/v2/serializers.py:486 core/api/v2/serializers.py:255
56
+ #: core/api/v2/serializers.py:257 core/api/v2/serializers.py:266
59
57
  #: transport/backends.py:40
60
58
  msgid "This field is required"
61
59
  msgstr "Toto pole je vyžadováno"
62
60
 
63
- #: admin/api/v1/serializers.py:236
61
+ #: admin/api/v1/serializers.py:243
64
62
  msgid ""
65
63
  "List of administered domains (resellers and domain administrators only)."
66
64
  msgstr "Zobrazit spravované domény (jenom distributori a správci domén)"
67
65
 
68
- #: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
66
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:546
69
67
  msgid "Not allowed for this role."
70
68
  msgstr "Není povoleno pro tuto roli."
71
69
 
72
- #: admin/api/v1/serializers.py:348
70
+ #: admin/api/v1/serializers.py:355
73
71
  msgid "Must be equal to mailbox full_address"
74
72
  msgstr "Musí být rovno hodnote schránky celá_adresa"
75
73
 
76
- #: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
74
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:598
77
75
  #: calendars/serializers.py:175 calendars/serializers.py:177
76
+ #: pdfcredentials/api/v2/serializers.py:91
78
77
  msgid "This field is required."
79
78
  msgstr "Toto pole je vyžadováno."
80
79
 
81
- #: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
80
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:615
82
81
  msgid "Local domain {} does not exist"
83
82
  msgstr "Lokální doména {} neexistuje"
84
83
 
85
- #: admin/api/v1/serializers.py:492
84
+ #: admin/api/v1/serializers.py:499
86
85
  msgid "A list of recipient"
87
86
  msgstr "Seznam příjemců"
88
87
 
89
- #: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
88
+ #: admin/api/v1/serializers.py:515 admin/api/v2/viewsets.py:286
90
89
  #, fuzzy
91
90
  #| msgid "User '%s' already exists"
92
91
  msgid "This alias already exists"
93
92
  msgstr "Uživatel '%s' již existuje"
94
93
 
95
- #: admin/api/v1/serializers.py:544
94
+ #: admin/api/v1/serializers.py:551
96
95
  msgid "You don't have access to this domain."
97
96
  msgstr "K této doméně nemáte přístup."
98
97
 
99
- #: admin/api/v1/serializers.py:553
98
+ #: admin/api/v1/serializers.py:560
100
99
  msgid "You don't have access to this mailbox."
101
100
  msgstr "K této schránce nemáte přístup."
102
101
 
@@ -104,58 +103,58 @@ msgstr "K této schránce nemáte přístup."
104
103
  msgid "Here is your new Modoboa password: {}"
105
104
  msgstr ""
106
105
 
107
- #: admin/api/v2/serializers.py:80
106
+ #: admin/api/v2/serializers.py:82
108
107
  msgid "DKIM keys storage directory not configured"
109
108
  msgstr "Není nastavena složka pro ukládání DKIM klíčů"
110
109
 
111
- #: admin/api/v2/serializers.py:92
110
+ #: admin/api/v2/serializers.py:94
112
111
  msgid "This field is valid when type is relaydomain"
113
112
  msgstr ""
114
113
 
115
- #: admin/api/v2/serializers.py:99
114
+ #: admin/api/v2/serializers.py:101
116
115
  msgid "You can't define an unlimited quota."
117
116
  msgstr "Neomezená kvóta nelze definovat."
118
117
 
119
- #: admin/api/v2/serializers.py:133
118
+ #: admin/api/v2/serializers.py:135
120
119
  #, python-format
121
120
  msgid "User '%s' already exists"
122
121
  msgstr "Uživatel '%s' již existuje"
123
122
 
124
- #: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
123
+ #: admin/api/v2/serializers.py:250 admin/api/v2/serializers.py:256
125
124
  msgid "Must be a positive integer"
126
125
  msgstr "Musí se jednat o kladné číslo"
127
126
 
128
- #: admin/api/v2/serializers.py:263
127
+ #: admin/api/v2/serializers.py:265
129
128
  msgid "openssl not found, please make sure it is installed."
130
129
  msgstr "openssl nenalezeno, prosím ujistěte se, že je nainstalováno."
131
130
 
132
- #: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
131
+ #: admin/api/v2/serializers.py:268 pdfcredentials/api/v2/serializers.py:84
133
132
  msgid "Directory not found."
134
133
  msgstr "Složka nenalezena."
135
134
 
136
- #: admin/api/v2/serializers.py:277
135
+ #: admin/api/v2/serializers.py:279
137
136
  msgid "This field only allows valid IP addresses (or networks)"
138
137
  msgstr ""
139
138
 
140
- #: admin/api/v2/serializers.py:290
139
+ #: admin/api/v2/serializers.py:292
141
140
  msgid "Please disable imap migration before disabling this option."
142
141
  msgstr ""
143
142
 
144
- #: admin/api/v2/serializers.py:303
143
+ #: admin/api/v2/serializers.py:305
145
144
  msgid "Define at least one authorized network / address"
146
145
  msgstr "Definujte alespoň jednu autorizovanou síť / adresu"
147
146
 
148
- #: admin/api/v2/serializers.py:565
147
+ #: admin/api/v2/serializers.py:581
149
148
  msgid "The left part of an email address can't be more than 64 characters."
150
149
  msgstr ""
151
150
 
152
- #: admin/api/v2/serializers.py:587
151
+ #: admin/api/v2/serializers.py:603
153
152
  #, fuzzy
154
153
  #| msgid "A mailbox is required"
155
154
  msgid "A mailbox is required to create aliases."
156
155
  msgstr "Schránka je vyžadována"
157
156
 
158
- #: admin/api/v2/serializers.py:751
157
+ #: admin/api/v2/serializers.py:772
159
158
  #, fuzzy
160
159
  #| msgid "Unknown"
161
160
  msgid "Unknown status"
@@ -169,14 +168,6 @@ msgstr "Nemáte oprávnění k přístupu k této doméně"
169
168
  msgid "You can't delete your own domain"
170
169
  msgstr "Nemůžete smazat vlastní doménu"
171
170
 
172
- #: admin/api/v2/viewsets.py:407
173
- msgid "No alarm ID provided"
174
- msgstr ""
175
-
176
- #: admin/api/v2/viewsets.py:411
177
- msgid "Received invalid alarm id(s)"
178
- msgstr ""
179
-
180
171
  #: admin/app_settings.py:19 limits/app_settings.py:38 limits/constants.py:13
181
172
  msgid "Domains"
182
173
  msgstr "Domény"
@@ -195,11 +186,11 @@ msgstr "Platné MX záznamy"
195
186
 
196
187
  #: admin/app_settings.py:37
197
188
  msgid ""
198
- "A list of IP or network address every MX record should match. A warning will "
199
- "be sent if a record does not respect it."
189
+ "A list of IP or network address every MX record should match. A warning will"
190
+ " be sent if a record does not respect it."
200
191
  msgstr ""
201
- "Seznam IP nebo síťových adres, které by každý MX záznam měl obsahovat. Pokud "
202
- "toto záznam nerespektuje, bude odesláno varování."
192
+ "Seznam IP nebo síťových adres, které by každý MX záznam měl obsahovat. Pokud"
193
+ " toto záznam nerespektuje, bude odesláno varování."
203
194
 
204
195
  #: admin/app_settings.py:47
205
196
  msgid "New domains must use authorized MX(s)"
@@ -392,7 +383,8 @@ msgid "Automatic domain/mailbox creation"
392
383
  msgstr "Automatické vytvoření domény/schránky"
393
384
 
394
385
  #: admin/app_settings.py:221
395
- msgid "Create a domain and a mailbox when an account is automatically created."
386
+ msgid ""
387
+ "Create a domain and a mailbox when an account is automatically created."
396
388
  msgstr "Při založení účtu automaticky vytvořit doménu a schránku."
397
389
 
398
390
  #: admin/app_settings.py:230
@@ -405,7 +397,7 @@ msgstr ""
405
397
  "Vytvořit alias použitím původní adresy, pokud je mailová schránka "
406
398
  "přejmenována."
407
399
 
408
- #: admin/app_settings.py:287 core/api/v2/viewsets.py:162
400
+ #: admin/app_settings.py:287 core/api/v2/viewsets.py:174
409
401
  msgid "Administration"
410
402
  msgstr "Správa"
411
403
 
@@ -436,7 +428,7 @@ msgstr "doménový alias"
436
428
  msgid "Account import failed (%s): domain does not exist"
437
429
  msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje"
438
430
 
439
- #: admin/handlers.py:242 admin/models/mailbox.py:340
431
+ #: admin/handlers.py:242 admin/models/mailbox.py:342
440
432
  msgid "Mailbox {} already exists"
441
433
  msgstr "Schránka {} již existuje"
442
434
 
@@ -715,7 +707,7 @@ msgstr "Kvóta je vyžadována"
715
707
  msgid "{}: domain quota exceeded"
716
708
  msgstr "Kvóta domény byla překročena"
717
709
 
718
- #: admin/models/mailbox.py:308
710
+ #: admin/models/mailbox.py:310
719
711
  msgid "Domain does not exist"
720
712
  msgstr "Doména neexistuje"
721
713
 
@@ -735,8 +727,8 @@ msgid ""
735
727
  "and ask them to unlist detected IP address(es)."
736
728
  msgstr ""
737
729
  "Reputace domény bude ovlivněna, a je možné, že e-maily přicházející z ní "
738
- "jsou považovány za spam. Měli byste kontaktovat tyto poskytovatele a požádat "
739
- "je o odstranění IP adresy (adres) ze seznamu."
730
+ "jsou považovány za spam. Měli byste kontaktovat tyto poskytovatele a požádat"
731
+ " je o odstranění IP adresy (adres) ze seznamu."
740
732
 
741
733
  #: admin/templates/admin/notifications/domain_invalid_mx.html:3
742
734
  #, python-format
@@ -783,14 +775,16 @@ msgstr "Obecné"
783
775
 
784
776
  #: autoreply/app_settings.py:18
785
777
  #, fuzzy
786
- #| msgid "Timeout in seconds between two auto-replies to the same recipient"
778
+ #| msgid ""
779
+ #| "Timeout in seconds between two auto-replies to the same recipient"
787
780
  msgid "Period between two auto-replies"
788
781
  msgstr ""
789
782
  "Interval v sekundách mezi dvěmi automatickými odpověďmi stejnému příjemci"
790
783
 
791
784
  #: autoreply/app_settings.py:20
792
785
  #, fuzzy
793
- #| msgid "Timeout in seconds between two auto-replies to the same recipient"
786
+ #| msgid ""
787
+ #| "Timeout in seconds between two auto-replies to the same recipient"
794
788
  msgid ""
795
789
  "Number of days to wait before sending a new auto-reply to the same recipient"
796
790
  msgstr ""
@@ -898,7 +892,7 @@ msgid ""
898
892
  "Maximum size in bytes of imported ICS files (or KB, MB, GB if specified)"
899
893
  msgstr ""
900
894
 
901
- #: calendars/app_settings.py:89 core/api/v2/viewsets.py:172
895
+ #: calendars/app_settings.py:89 core/api/v2/viewsets.py:195
902
896
  msgid "Calendars"
903
897
  msgstr ""
904
898
 
@@ -932,7 +926,7 @@ msgstr ""
932
926
  msgid "Interval in seconds between 2 synchronization requests"
933
927
  msgstr ""
934
928
 
935
- #: contacts/app_settings.py:51 core/api/v2/viewsets.py:179
929
+ #: contacts/app_settings.py:51 core/api/v2/viewsets.py:185
936
930
  #, fuzzy
937
931
  #| msgid "Domains"
938
932
  msgid "Contacts"
@@ -986,12 +980,12 @@ msgstr "MX záznamy pro {}"
986
980
  msgid "2FA is already enabled"
987
981
  msgstr ""
988
982
 
989
- #: core/api/v1/serializers.py:87
983
+ #: core/api/v1/serializers.py:86
990
984
  #, python-format
991
- msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
985
+ msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
992
986
  msgstr ""
993
987
 
994
- #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
988
+ #: core/api/v1/serializers.py:91 core/api/v2/serializers.py:445
995
989
  #, fuzzy
996
990
  #| msgid "Old password"
997
991
  msgid "Invalid password"
@@ -1005,44 +999,45 @@ msgstr ""
1005
999
  msgid "Local"
1006
1000
  msgstr "Lokální"
1007
1001
 
1008
- #: core/api/v2/serializers.py:175 core/app_settings.py:17
1002
+ #: core/api/v2/serializers.py:194 core/app_settings.py:17
1009
1003
  msgid "User profile"
1010
1004
  msgstr "Uživatelský profil"
1011
1005
 
1012
- #: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
1013
- #: core/api/v2/serializers.py:208
1006
+ #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1007
+ #: core/api/v2/serializers.py:228
1014
1008
  msgid "Invalid syntax"
1015
1009
  msgstr "Neplatná syntaxe"
1016
1010
 
1017
- #: core/api/v2/serializers.py:213
1011
+ #: core/api/v2/serializers.py:233
1018
1012
  msgid "Invalid rounds number"
1019
1013
  msgstr "Neplatný počet cyklů"
1020
1014
 
1021
- #: core/api/v2/serializers.py:413 core/forms.py:81
1015
+ #: core/api/v2/serializers.py:433 core/forms.py:81
1022
1016
  msgid "This code is invalid"
1023
1017
  msgstr ""
1024
1018
 
1025
- #: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
1019
+ #: core/api/v2/serializers.py:503 core/views/auth.py:194
1020
+ #: core/views/auth.py:247
1026
1021
  msgid "Please use the following code to recover your Modoboa password: {}"
1027
1022
  msgstr ""
1028
1023
 
1029
- #: core/api/v2/viewsets.py:164
1024
+ #: core/api/v2/viewsets.py:176
1030
1025
  #, fuzzy
1031
1026
  #| msgid "Administration"
1032
1027
  msgid "Administration console"
1033
1028
  msgstr "Správa"
1034
1029
 
1035
- #: core/api/v2/viewsets.py:174
1036
- msgid "Calendar"
1037
- msgstr ""
1038
-
1039
- #: core/api/v2/viewsets.py:181
1030
+ #: core/api/v2/viewsets.py:187
1040
1031
  #, fuzzy
1041
1032
  #| msgid "Address"
1042
1033
  msgid "Address book"
1043
1034
  msgstr "Adresa"
1044
1035
 
1045
- #: core/api/v2/viewsets.py:186 core/api/v2/viewsets.py:188
1036
+ #: core/api/v2/viewsets.py:197
1037
+ msgid "Calendar"
1038
+ msgstr ""
1039
+
1040
+ #: core/api/v2/viewsets.py:205 core/api/v2/viewsets.py:207
1046
1041
  #: webmail/app_settings.py:258 webmail/app_settings.py:265
1047
1042
  #, fuzzy
1048
1043
  #| msgid "E-mail"
@@ -1078,8 +1073,8 @@ msgid ""
1078
1073
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1079
1074
  "between 1000 and 999999999, inclusive."
1080
1075
  msgstr ""
1081
- "Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být "
1082
- "mezi 1000 a 999999999 včetně."
1076
+ "Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být"
1077
+ " mezi 1000 a 999999999 včetně."
1083
1078
 
1084
1079
  #: core/app_settings.py:73
1085
1080
  msgid "Update password scheme at login"
@@ -1223,8 +1218,8 @@ msgstr "Správcovské skupiny"
1223
1218
 
1224
1219
  #: core/app_settings.py:239
1225
1220
  msgid ""
1226
- "Members of those LDAP Posix groups will be created as domain administrators. "
1227
- "Use ';' characters to separate groups."
1221
+ "Members of those LDAP Posix groups will be created as domain administrators."
1222
+ " Use ';' characters to separate groups."
1228
1223
  msgstr ""
1229
1224
  "Členové těchto LDAP Posix skupin budou automaticky vytvořeni jako správci "
1230
1225
  "domény. Pro oddělení skupin použijte ';'."
@@ -1413,13 +1408,15 @@ msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény"
1413
1408
 
1414
1409
  #: core/app_settings.py:506
1415
1410
  #, fuzzy
1416
- #| msgid "Display custom RSS feed to resellers and domain administrators"
1411
+ #| msgid ""
1412
+ #| "Display custom RSS feed to resellers and domain administrators"
1417
1413
  msgid "Display custom RSS feed to super admins"
1418
1414
  msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény"
1419
1415
 
1420
1416
  #: core/app_settings.py:509
1421
1417
  #, fuzzy
1422
- #| msgid "Display custom RSS feed to resellers and domain administrators"
1418
+ #| msgid ""
1419
+ #| "Display custom RSS feed to resellers and domain administrators"
1423
1420
  msgid "Display custom RSS feed also to super administrators"
1424
1421
  msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény"
1425
1422
 
@@ -1539,8 +1536,8 @@ msgstr "Počet dnů pro neaktivní účet"
1539
1536
 
1540
1537
  #: core/app_settings.py:686
1541
1538
  msgid ""
1542
- "Allow the administrator to set a threshold (in days) beyond which an account "
1543
- "is considered inactive if the user hasn't logged in"
1539
+ "Allow the administrator to set a threshold (in days) beyond which an account"
1540
+ " is considered inactive if the user hasn't logged in"
1544
1541
  msgstr ""
1545
1542
 
1546
1543
  #: core/app_settings.py:695
@@ -1549,8 +1546,8 @@ msgstr "Počet dnů pro neaktivní účet"
1549
1546
 
1550
1547
  #: core/app_settings.py:698
1551
1548
  msgid ""
1552
- "An account with a last login date greater than this threshold (in days) will "
1553
- "be considered as inactive"
1549
+ "An account with a last login date greater than this threshold (in days) will"
1550
+ " be considered as inactive"
1554
1551
  msgstr ""
1555
1552
  "Účet s datem posledního přihlášení starším než práh (ve dnech) bude "
1556
1553
  "považován za neaktivní"
@@ -1571,19 +1568,27 @@ msgstr "Maximální stáří záznamu"
1571
1568
  msgid "The maximum age in days of a log record"
1572
1569
  msgstr "Maximální stáří záznamu ve dnech"
1573
1570
 
1574
- #: core/app_settings.py:726
1571
+ #: core/app_settings.py:727
1572
+ msgid "Retention time in message history"
1573
+ msgstr ""
1574
+
1575
+ #: core/app_settings.py:730
1576
+ msgid "Retention time (in days) of a message in the message history section"
1577
+ msgstr ""
1578
+
1579
+ #: core/app_settings.py:737
1575
1580
  msgid "Items per page"
1576
1581
  msgstr "Položek na stránce"
1577
1582
 
1578
- #: core/app_settings.py:728
1583
+ #: core/app_settings.py:739
1579
1584
  msgid "Number of displayed items per page"
1580
1585
  msgstr "Počet zobrazených položek na stránce"
1581
1586
 
1582
- #: core/app_settings.py:735
1587
+ #: core/app_settings.py:746
1583
1588
  msgid "Default top redirection"
1584
1589
  msgstr "Výchozí přesměrování aplikace"
1585
1590
 
1586
- #: core/app_settings.py:737
1591
+ #: core/app_settings.py:748
1587
1592
  msgid "The default redirection used when no application is specified"
1588
1593
  msgstr ""
1589
1594
  "Výchozí přesměrování, které se použije, pokud není žádná aplikace "
@@ -1618,8 +1623,9 @@ msgstr ""
1618
1623
 
1619
1624
  #: core/checks.py:34
1620
1625
  msgid ""
1621
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
1622
- "html#dovecot-oauth2"
1626
+ "Visit : "
1627
+ "https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot.html#dovecot-"
1628
+ "oauth2"
1623
1629
  msgstr ""
1624
1630
 
1625
1631
  #: core/checks.py:41
@@ -1630,8 +1636,9 @@ msgstr ""
1630
1636
 
1631
1637
  #: core/checks.py:45
1632
1638
  msgid ""
1633
- "Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
1634
- "radicale.html#radicale-oauth2"
1639
+ "Visit : "
1640
+ "https://modoboa.readthedocs.io/en/latest/manual_installation/radicale.html#radicale-"
1641
+ "oauth2"
1635
1642
  msgstr ""
1636
1643
 
1637
1644
  #: core/constants.py:6
@@ -2126,8 +2133,8 @@ msgstr ""
2126
2133
  #: imap_migration/app_settings.py:76
2127
2134
  msgid ""
2128
2135
  "A comma seperated list of folders to explicitly include in sync even if "
2129
- "filtered by the Folder Filter Exclusions. Example: debian.user, debian."
2130
- "personal "
2136
+ "filtered by the Folder Filter Exclusions. Example: debian.user, "
2137
+ "debian.personal "
2131
2138
  msgstr ""
2132
2139
 
2133
2140
  #: imap_migration/apps.py:20
@@ -2136,12 +2143,6 @@ msgstr ""
2136
2143
  msgid "IMAP Migration"
2137
2144
  msgstr "IMAP migrace"
2138
2145
 
2139
- #: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
2140
- #, fuzzy, python-brace-format
2141
- #| msgid "Connection to IMAP server failed: %s"
2142
- msgid "Connection to IMAP server failed: {error}"
2143
- msgstr "Spojení se serverem IMAP selhalo: %s"
2144
-
2145
2146
  #: imap_migration/checks.py:12
2146
2147
  msgid ""
2147
2148
  "Automatic domain/mailbox creation is disabled which means IMAP "
@@ -2245,10 +2246,11 @@ msgstr "Doménové aliasy"
2245
2246
 
2246
2247
  #: limits/app_settings.py:52
2247
2248
  #, fuzzy
2248
- #| msgid "Maximum number of allowed domain aliases for a new administrator"
2249
+ #| msgid ""
2250
+ #| "Maximum number of allowed domain aliases for a new administrator"
2249
2251
  msgid ""
2250
- "Maximum number of allowed domain aliases for a new administrator. (0 to deny "
2251
- "any creation, -1 to allow unlimited creations)"
2252
+ "Maximum number of allowed domain aliases for a new administrator. (0 to deny"
2253
+ " any creation, -1 to allow unlimited creations)"
2252
2254
  msgstr "Maximální povolený počet doménových aliasů (nastavení nového správce)"
2253
2255
 
2254
2256
  #: limits/app_settings.py:64
@@ -2301,13 +2303,14 @@ msgstr ""
2301
2303
  #| msgid ""
2302
2304
  #| "Maximum number of allowed domain administrators for a new administrator"
2303
2305
  msgid ""
2304
- "Maximum number of allowed domain administrators for a new domain. (0 to deny "
2305
- "any creation, -1 to allow unlimited creations)"
2306
+ "Maximum number of allowed domain administrators for a new domain. (0 to deny"
2307
+ " any creation, -1 to allow unlimited creations)"
2306
2308
  msgstr "Maximální povolený počet správců domény (nastavení nového správce)"
2307
2309
 
2308
2310
  #: limits/app_settings.py:126
2309
2311
  #, fuzzy
2310
- #| msgid "Maximum number of allowed domain aliases for a new administrator"
2312
+ #| msgid ""
2313
+ #| "Maximum number of allowed domain aliases for a new administrator"
2311
2314
  msgid ""
2312
2315
  "Maximum number of allowed domain aliases for a new domain. (0 to deny any "
2313
2316
  "creation, -1 to allow unlimited creations)"
@@ -2325,8 +2328,8 @@ msgstr "Maximální povolený počet schránek (nastavení nového správce)"
2325
2328
  #, fuzzy
2326
2329
  #| msgid "Maximum number of allowed aliases for a new administrator"
2327
2330
  msgid ""
2328
- "Maximum number of allowed aliases for a new domain. (0 to deny any creation, "
2329
- "-1 to allow unlimited creations)"
2331
+ "Maximum number of allowed aliases for a new domain. (0 to deny any creation,"
2332
+ " -1 to allow unlimited creations)"
2330
2333
  msgstr "Maximální povolený počet aliasů (nastavení nového správce)"
2331
2334
 
2332
2335
  #: limits/apps.py:16
@@ -2515,13 +2518,13 @@ msgstr ""
2515
2518
  msgid "Personal account information"
2516
2519
  msgstr "Informace osobního účtu"
2517
2520
 
2518
- #: pdfcredentials/api/v2/serializers.py:81
2521
+ #: pdfcredentials/api/v2/serializers.py:86
2519
2522
  #, fuzzy
2520
2523
  #| msgid "Directory not found."
2521
2524
  msgid "Directory is not writable"
2522
2525
  msgstr "Složka nenalezena."
2523
2526
 
2524
- #: pdfcredentials/api/v2/serializers.py:102
2527
+ #: pdfcredentials/api/v2/serializers.py:114
2525
2528
  msgid "No document available for this user"
2526
2529
  msgstr "Pro tohoto uživatele není k dispozici žáden dokument"
2527
2530
 
@@ -2572,8 +2575,8 @@ msgid ""
2572
2575
  "Generate a new document only when a new account is created. If set to no, a "
2573
2576
  "new document will be created each time a password is updated."
2574
2577
  msgstr ""
2575
- "Vytvářet nové dokumenty pouze při vytvoření účtu. Je-li nastaveno na hodnotu "
2576
- "ne, bude nový dokument vytvořen pokaždé, když dojde ke změne hesla."
2578
+ "Vytvářet nové dokumenty pouze při vytvoření účtu. Je-li nastaveno na hodnotu"
2579
+ " ne, bude nový dokument vytvořen pokaždé, když dojde ke změne hesla."
2577
2580
 
2578
2581
  #: pdfcredentials/app_settings.py:84
2579
2582
  msgid "Customization options"
@@ -2701,8 +2704,7 @@ msgid ""
2701
2704
  "your contacts.\n"
2702
2705
  msgstr ""
2703
2706
  "\n"
2704
- "Zde si kdykoliv můžete prohlédnout své emaily, vytvořit filtry nebo "
2705
- "spravovat Vaše kontakty.\n"
2707
+ "Zde si kdykoliv můžete prohlédnout své emaily, vytvořit filtry nebo spravovat Vaše kontakty.\n"
2706
2708
 
2707
2709
  #: pdfcredentials/documents.py:126
2708
2710
  msgid "Please change your password!"
@@ -2730,7 +2732,8 @@ msgstr "PDF přístupové údaje"
2730
2732
 
2731
2733
  #: pdfcredentials/lib.py:29
2732
2734
  #, fuzzy
2733
- #| msgid "Failed to create the directory that will contain PDF documents (%s)"
2735
+ #| msgid ""
2736
+ #| "Failed to create the directory that will contain PDF documents (%s)"
2734
2737
  msgid "Can't write to selected directory to store PDF documents"
2735
2738
  msgstr "Vytváření adresáře pro uložení PDF dokumentů (%s) selhalo "
2736
2739
 
@@ -2812,8 +2815,8 @@ msgstr ""
2812
2815
 
2813
2816
  #: rspamd/app_settings.py:21
2814
2817
  msgid ""
2815
- "Absolute path of the file which contains paths to DKIM private keys. Must be "
2816
- "readable by _rspamd group or user."
2818
+ "Absolute path of the file which contains paths to DKIM private keys. Must be"
2819
+ " readable by _rspamd group or user."
2817
2820
  msgstr ""
2818
2821
 
2819
2822
  #: rspamd/app_settings.py:30
@@ -2832,8 +2835,8 @@ msgstr ""
2832
2835
 
2833
2836
  #: rspamd/app_settings.py:53
2834
2837
  msgid ""
2835
- "Location of the rspamd dashboard. Can either be a relative URL (eg. '/"
2836
- "rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
2838
+ "Location of the rspamd dashboard. Can either be a relative URL (eg. "
2839
+ "'/rspamd') or a full URL (eg. 'https://rspamd.domain.tld/').Only use for "
2837
2840
  "guidance on the Super-Admin dashboard."
2838
2841
  msgstr ""
2839
2842
 
@@ -3100,7 +3103,8 @@ msgid ""
3100
3103
  "To initiate the password reset process for your %(username)s Modoboa "
3101
3104
  "account, click the link below:"
3102
3105
  msgstr ""
3103
- "Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu %(username)s:"
3106
+ "Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu "
3107
+ "%(username)s:"
3104
3108
 
3105
3109
  #: templates/registration/password_reset_email.html:10
3106
3110
  #: templates/registration/password_reset_email_v2.html:10
@@ -3142,8 +3146,8 @@ msgstr "Původní heslo"
3142
3146
 
3143
3147
  #: templates/registration/twofactor_code_verify.html:35
3144
3148
  msgid ""
3145
- "Enter the code from the two-factor app on your mobile device. If you've lost "
3146
- "your device, you may enter one of your recovery codes."
3149
+ "Enter the code from the two-factor app on your mobile device. If you've lost"
3150
+ " your device, you may enter one of your recovery codes."
3147
3151
  msgstr ""
3148
3152
 
3149
3153
  #: templates/registration/twofactor_code_verify.html:42
@@ -3343,16 +3347,32 @@ msgstr "Text podpisu"
3343
3347
  msgid "User defined email signature"
3344
3348
  msgstr "Emailový podpis uživatele"
3345
3349
 
3350
+ #: webmail/exceptions.py:18
3351
+ #, fuzzy
3352
+ #| msgid "Server address"
3353
+ msgid "Server response"
3354
+ msgstr "Adresa serveru"
3355
+
3346
3356
  #: webmail/lib/attachments.py:112
3347
3357
  #, fuzzy
3348
3358
  #| msgid "Failed to remove filter"
3349
3359
  msgid "Failed to remove attachment: "
3350
3360
  msgstr "Nebylo možné odstranit přílohu:"
3351
3361
 
3362
+ #: webmail/lib/imapemail.py:272
3363
+ msgid "wrote:"
3364
+ msgstr ""
3365
+
3352
3366
  #: webmail/lib/imapemail.py:306
3353
3367
  msgid "Date"
3354
3368
  msgstr "Datum"
3355
3369
 
3370
+ #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3371
+ #, fuzzy
3372
+ #| msgid "sent messages"
3373
+ msgid "Original message"
3374
+ msgstr "Všechny zprávy"
3375
+
3356
3376
  #: webmail/lib/imaputils.py:221
3357
3377
  msgid "Failed to retrieve hierarchy delimiter"
3358
3378
  msgstr "Nebylo možné zjistit hierarchický oddělovač"
@@ -3383,3 +3403,7 @@ msgstr "Koš"
3383
3403
  #, python-format
3384
3404
  msgid "Attachment is too big (limit: %s)"
3385
3405
  msgstr "Příloha je příliš velká (omezení: %s)"
3406
+
3407
+ #, fuzzy, python-brace-format
3408
+ #~ msgid "Connection to IMAP server failed: {error}"
3409
+ #~ msgstr "Spojení se serverem IMAP selhalo: %s"