modoboa 2.6.5__py3-none-any.whl → 2.7.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 (359) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/calendars/backends/caldav_.py +17 -13
  16. modoboa/calendars/jobs.py +7 -0
  17. modoboa/calendars/mocks.py +4 -1
  18. modoboa/calendars/serializers.py +14 -9
  19. modoboa/calendars/tests.py +10 -9
  20. modoboa/calendars/viewsets.py +3 -1
  21. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  22. modoboa/contacts/models.py +1 -0
  23. modoboa/contacts/serializers.py +5 -2
  24. modoboa/contacts/tasks.py +9 -3
  25. modoboa/contacts/tests.py +32 -6
  26. modoboa/contacts/viewsets.py +7 -1
  27. modoboa/core/api/v2/serializers.py +0 -7
  28. modoboa/core/api/v2/tests.py +0 -10
  29. modoboa/core/app_settings.py +0 -22
  30. modoboa/core/commands/deploy.py +13 -0
  31. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  32. modoboa/core/commands/templates/settings.py.tpl +21 -0
  33. modoboa/core/jobs.py +34 -0
  34. modoboa/core/management/commands/load_initial_data.py +1 -1
  35. modoboa/core/password_hashers/base.py +4 -1
  36. modoboa/core/tests/test_core.py +0 -14
  37. modoboa/core/tests/test_jobs.py +40 -0
  38. modoboa/frontend_dist/assets/{AccountAliasForm-B-hTKSFr.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  39. modoboa/frontend_dist/assets/{AccountEditView-LkP_qhf_.js → AccountEditView-CCuN9mGB.js} +1 -1
  40. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  41. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  42. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  43. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  44. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  45. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  46. modoboa/frontend_dist/assets/{AliasEditView-BVjNJekt.js → AliasEditView-CTjrXYPf.js} +1 -1
  47. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  48. modoboa/frontend_dist/assets/{AliasView-DvvI6cV9.js → AliasView-BN13MNN_.js} +1 -1
  49. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  50. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  52. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  53. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  55. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  56. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  57. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  58. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  59. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  60. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  61. modoboa/frontend_dist/assets/{DomainAdminList-BO8_4Cwt.js → DomainAdminList-DD7p3i6F.js} +1 -1
  62. modoboa/frontend_dist/assets/{DomainEditView-BXylM4aB.js → DomainEditView-DoIoNYC4.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainTransportForm-Ccw5BXyM.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainView-Bd5XQI-1.js → DomainView-BXvznFYz.js} +3 -3
  65. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  66. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  67. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  68. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  69. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  70. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  71. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  72. modoboa/frontend_dist/assets/{HtmlEditor-DNn3CY-w.js → HtmlEditor-CyBl5wj2.js} +15 -15
  73. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  74. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  75. modoboa/frontend_dist/assets/{LoadingData-CnQ_aVqa.js → LoadingData-C2txD49L.js} +1 -1
  76. modoboa/frontend_dist/assets/{LoginCallbackView-Nh_gmh8e.js → LoginCallbackView-DAvty3CI.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginView-BtC9BHuJ.js → LoginView-DHYITkn4.js} +1 -1
  78. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  79. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  80. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  81. modoboa/frontend_dist/assets/{MessageView-C1Goz-hY.js → MessageView-CrrEJpNI.js} +1 -1
  82. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  83. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  84. modoboa/frontend_dist/assets/{ParametersForm-BegEnkQM.js → ParametersForm-DFKYkPAs.js} +1 -1
  85. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  86. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  87. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  88. modoboa/frontend_dist/assets/{ProviderGeneralForm-BAELnXh6.js → ProviderGeneralForm-DO-IpJMQ.js} +1 -1
  89. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  90. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  92. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  93. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  94. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  95. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  97. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  98. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  100. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  101. modoboa/frontend_dist/assets/{VAlert-Buv8Z5G4.js → VAlert-MDbeolOo.js} +1 -1
  102. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  103. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  105. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  106. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  107. modoboa/frontend_dist/assets/{VCard-D7AwBs4w.js → VCard-CBtX8JF-.js} +1 -1
  108. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  109. modoboa/frontend_dist/assets/{VCheckboxBtn-B5evxN9K.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  110. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  111. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  112. modoboa/frontend_dist/assets/{VContainer-DY9021j4.js → VContainer-Cn-vKB3s.js} +1 -1
  113. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  114. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  116. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  118. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  119. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  120. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  121. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  122. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  123. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  125. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  127. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  128. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  129. modoboa/frontend_dist/assets/{VRow-DyK_Mj7R.js → VRow-83Qnr5iB.js} +1 -1
  130. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  131. modoboa/frontend_dist/assets/{VSelectionControl-Dkms9_P5.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  132. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  133. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  134. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  135. modoboa/frontend_dist/assets/{VTable-D8ZwwC_B.js → VTable-f7wcr2AZ.js} +1 -1
  136. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  137. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  138. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  140. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  142. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  144. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  145. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  147. modoboa/frontend_dist/assets/{accounts-BZBqbAmd.js → accounts-KUsk6LHW.js} +1 -1
  148. modoboa/frontend_dist/assets/{admin-uCrKjpln.js → admin-BW9cZW0P.js} +1 -1
  149. modoboa/frontend_dist/assets/{aliases-CFwFkX45.js → aliases-Ge0hjIsH.js} +1 -1
  150. modoboa/frontend_dist/assets/{amavis-DCy0U0TD.js → amavis-BbFeFfsk.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-B4ScfQsG.js → amavis-DtuzP_CS.js} +1 -1
  152. modoboa/frontend_dist/assets/{contacts-DKmh2q-4.js → contacts-DMJlQTe0.js} +1 -1
  153. modoboa/frontend_dist/assets/{domains-CDE4_LDF.js → domains-Du64lcXT.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains.store-a9Y5UlDV.js → domains.store-1U61jeCV.js} +1 -1
  155. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  156. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  157. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  158. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  159. modoboa/frontend_dist/assets/{index-Dwg6jPTX.js → index-Dv00bmw9.js} +1 -1
  160. modoboa/frontend_dist/assets/{index-BjibLozh.js → index-jui3edpn.js} +47 -41
  161. modoboa/frontend_dist/assets/{language.store-DGuI8jG0.js → language.store-OcfdXL_-.js} +1 -1
  162. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  163. modoboa/frontend_dist/assets/{layout-5PvsmkGR.js → layout-DOO7TRTJ.js} +1 -1
  164. modoboa/frontend_dist/assets/{layout.store-DJVcXtxk.js → layout.store-C0g-piJn.js} +1 -1
  165. modoboa/frontend_dist/assets/{logos-CMmd0hOG.js → logos-Dz2Gzei-.js} +1 -1
  166. modoboa/frontend_dist/assets/{logs-D2GOydPZ.js → logs-CLm32Weu.js} +1 -1
  167. modoboa/frontend_dist/assets/{parameters-DJdlq9sh.js → parameters-DMIAQ7cd.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters.store-DH3pPlaT.js → parameters.store-DLnFzCwV.js} +1 -1
  169. modoboa/frontend_dist/assets/{permissions-CgFJFhCp.js → permissions-CrpE0b4w.js} +1 -1
  170. modoboa/frontend_dist/assets/{ssrBoot-ChTB-PYP.js → ssrBoot-B7cr7q9U.js} +1 -1
  171. modoboa/frontend_dist/assets/{tag-CvrHE14f.js → tag-WF93n81Q.js} +1 -1
  172. modoboa/frontend_dist/assets/{theme-DFzlhSh5.js → theme-_0oOYChG.js} +1 -1
  173. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  174. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  175. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  176. modoboa/frontend_dist/index.html +2 -2
  177. modoboa/imap_migration/models.py +3 -3
  178. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  179. modoboa/imap_migration/tests.py +21 -0
  180. modoboa/lib/cryptutils.py +2 -2
  181. modoboa/lib/sysutils.py +1 -1
  182. modoboa/lib/tests/__init__.py +0 -1
  183. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  184. modoboa/locale/br/LC_MESSAGES/django.po +301 -273
  185. modoboa/locale/cs/LC_MESSAGES/django.po +286 -269
  186. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  187. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +303 -275
  188. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/de/LC_MESSAGES/django.po +297 -269
  190. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de_DE/LC_MESSAGES/django.po +303 -275
  192. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/el_GR/LC_MESSAGES/django.po +303 -275
  194. modoboa/locale/en/LC_MESSAGES/django.po +286 -269
  195. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  196. modoboa/locale/es/LC_MESSAGES/django.po +302 -274
  197. modoboa/locale/es_MX/LC_MESSAGES/django.po +286 -269
  198. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  199. modoboa/locale/fi/LC_MESSAGES/django.po +299 -271
  200. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fr/LC_MESSAGES/django.po +288 -271
  202. modoboa/locale/hu/LC_MESSAGES/django.po +286 -269
  203. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  204. modoboa/locale/it/LC_MESSAGES/django.po +303 -275
  205. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/ja_JP/LC_MESSAGES/django.po +390 -413
  207. modoboa/locale/ka/LC_MESSAGES/django.po +286 -269
  208. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/nl_NL/LC_MESSAGES/django.po +299 -271
  210. modoboa/locale/no/LC_MESSAGES/django.po +286 -269
  211. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  212. modoboa/locale/pl_PL/LC_MESSAGES/django.po +297 -269
  213. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pt_BR/LC_MESSAGES/django.po +298 -270
  215. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_PT/LC_MESSAGES/django.po +303 -275
  217. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/ro_RO/LC_MESSAGES/django.po +299 -271
  219. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ru/LC_MESSAGES/django.po +993 -1096
  221. modoboa/locale/si/LC_MESSAGES/django.po +286 -269
  222. modoboa/locale/sk/LC_MESSAGES/django.po +286 -269
  223. modoboa/locale/sk_SK/LC_MESSAGES/django.po +286 -269
  224. modoboa/locale/sl_SI/LC_MESSAGES/django.po +288 -269
  225. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  226. modoboa/locale/sv/LC_MESSAGES/django.po +297 -269
  227. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/tr/LC_MESSAGES/django.po +301 -272
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr_TR/LC_MESSAGES/django.po +291 -269
  231. modoboa/locale/uk/LC_MESSAGES/django.po +286 -269
  232. modoboa/locale/zh/LC_MESSAGES/django.po +286 -269
  233. modoboa/locale/zh_CN/LC_MESSAGES/django.po +286 -269
  234. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  235. modoboa/locale/zh_TW/LC_MESSAGES/django.po +295 -273
  236. modoboa/maillog/jobs.py +11 -0
  237. modoboa/maillog/tests/test_views.py +5 -4
  238. modoboa/parameters/api/v2/tests.py +1 -1
  239. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  240. modoboa/policyd/tests.py +4 -2
  241. modoboa/rspamd/tests.py +20 -0
  242. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  243. modoboa/webmail/app_settings.py +37 -0
  244. modoboa/webmail/constants.py +21 -1
  245. modoboa/webmail/factories.py +19 -0
  246. modoboa/webmail/jobs.py +27 -0
  247. modoboa/webmail/lib/__init__.py +0 -2
  248. modoboa/webmail/lib/imapemail.py +9 -11
  249. modoboa/webmail/lib/imapheader.py +25 -13
  250. modoboa/webmail/lib/imaputils.py +51 -13
  251. modoboa/webmail/lib/sendmail.py +88 -105
  252. modoboa/webmail/lib/utils.py +109 -0
  253. modoboa/webmail/migrations/0001_initial.py +90 -0
  254. modoboa/webmail/migrations/__init__.py +0 -0
  255. modoboa/webmail/mocks.py +12 -3
  256. modoboa/webmail/models.py +102 -0
  257. modoboa/webmail/serializers.py +84 -4
  258. modoboa/webmail/tests/data.py +21 -0
  259. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  260. modoboa/webmail/tests/test_viewsets.py +108 -0
  261. modoboa/webmail/urls.py +5 -0
  262. modoboa/webmail/viewsets.py +39 -9
  263. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  264. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/RECORD +269 -252
  265. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  266. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  267. modoboa/core/management/commands/cleanlogs.py +0 -53
  268. modoboa/frontend_dist/assets/AccountLayout-APeC9bsN.js +0 -1
  269. modoboa/frontend_dist/assets/AccountPasswordSubForm-D4vB2yQK.js +0 -1
  270. modoboa/frontend_dist/assets/AccountView-CloBP1BY.js +0 -1
  271. modoboa/frontend_dist/assets/AddressBook-C03MXg3y.js +0 -1
  272. modoboa/frontend_dist/assets/AdminLayout-DFmyKOo6.js +0 -1
  273. modoboa/frontend_dist/assets/AlarmsView-CFhH0I5d.js +0 -1
  274. modoboa/frontend_dist/assets/AliasRecipientForm-CZ_SvjtG.js +0 -1
  275. modoboa/frontend_dist/assets/AuditTrailView-Cyq25Jle.js +0 -1
  276. modoboa/frontend_dist/assets/CalendarView-C_dSXRp9.js +0 -1
  277. modoboa/frontend_dist/assets/ChoiceField-BPhUvoyr.js +0 -1
  278. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  279. modoboa/frontend_dist/assets/ComposeEmailForm-Ns5SYs4J.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailView-DgUfiWEH.js +0 -1
  281. modoboa/frontend_dist/assets/ConfirmDialog-BMIg94-U.js +0 -1
  282. modoboa/frontend_dist/assets/ConnectedLayout-CSXdVJtV.js +0 -1
  283. modoboa/frontend_dist/assets/CreationForm-CaAZYATm.js +0 -1
  284. modoboa/frontend_dist/assets/DashboardView-DErmyUoy.js +0 -1
  285. modoboa/frontend_dist/assets/DomainsView-CC1EwRId.js +0 -1
  286. modoboa/frontend_dist/assets/EmailField-BFgga4zp.js +0 -1
  287. modoboa/frontend_dist/assets/EmailView-DPWTch_6.js +0 -1
  288. modoboa/frontend_dist/assets/EmptyLayout-DAw7fAab.js +0 -1
  289. modoboa/frontend_dist/assets/FiltersView-Cg9lkLw0.js +0 -1
  290. modoboa/frontend_dist/assets/ForwardEmailView-Dd1sxgaP.js +0 -1
  291. modoboa/frontend_dist/assets/IdentitiesView-CiHIQ9Qt.js +0 -1
  292. modoboa/frontend_dist/assets/InformationView-Cc0aBA5j.js +0 -1
  293. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  294. modoboa/frontend_dist/assets/MailboxView-DplC0IXR.js +0 -5
  295. modoboa/frontend_dist/assets/MenuItems-efx2rqwT.js +0 -1
  296. modoboa/frontend_dist/assets/MessagesView-CesYYZ9f.js +0 -1
  297. modoboa/frontend_dist/assets/MigrationsView-DSBk8T0y.js +0 -1
  298. modoboa/frontend_dist/assets/ParametersView-B8W_PAiz.js +0 -1
  299. modoboa/frontend_dist/assets/ParametersView-Dsx2M_g9.js +0 -1
  300. modoboa/frontend_dist/assets/ProviderEditView-PEAr7MA1.js +0 -1
  301. modoboa/frontend_dist/assets/ProvidersView-CHvQf3Vv.js +0 -1
  302. modoboa/frontend_dist/assets/QuarantineLayout-BWEaBK48.js +0 -1
  303. modoboa/frontend_dist/assets/QuarantineView-BzjeDhTm.js +0 -1
  304. modoboa/frontend_dist/assets/ReplyEmailView-CwQ9jsce.js +0 -1
  305. modoboa/frontend_dist/assets/ResourcesForm-noC3AXd9.js +0 -1
  306. modoboa/frontend_dist/assets/SelfServiceLayout-DQgRMu0L.js +0 -1
  307. modoboa/frontend_dist/assets/SettingsView-DJTdIeRK.css +0 -1
  308. modoboa/frontend_dist/assets/SettingsView-Dgwpfd8O.js +0 -6
  309. modoboa/frontend_dist/assets/StatisticsView-BZkVSh5o.js +0 -1
  310. modoboa/frontend_dist/assets/TimeSerieChart-BXJwhTMO.js +0 -1
  311. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  312. modoboa/frontend_dist/assets/UserLayout-CWK9ICfE.js +0 -1
  313. modoboa/frontend_dist/assets/VApp-CiIBWB_Q.js +0 -1
  314. modoboa/frontend_dist/assets/VAutocomplete-DcNqTIie.js +0 -1
  315. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  316. modoboa/frontend_dist/assets/VAvatar-BsHplcRP.js +0 -1
  317. modoboa/frontend_dist/assets/VBadge-CavP_E2g.js +0 -1
  318. modoboa/frontend_dist/assets/VCheckbox-CKW9lz5i.js +0 -1
  319. modoboa/frontend_dist/assets/VColorPicker-Bsrz8yif.js +0 -1
  320. modoboa/frontend_dist/assets/VDataTable-ocZo8ju0.js +0 -1
  321. modoboa/frontend_dist/assets/VDataTableServer-CJfpYXQW.js +0 -1
  322. modoboa/frontend_dist/assets/VDataTableVirtual-Cr8yw49k.js +0 -1
  323. modoboa/frontend_dist/assets/VDialog-CUMh3paI.js +0 -1
  324. modoboa/frontend_dist/assets/VExpansionPanels-CkwHiKsA.js +0 -1
  325. modoboa/frontend_dist/assets/VFileInput-D5qlksIG.js +0 -1
  326. modoboa/frontend_dist/assets/VForm-ClJU5x_v.js +0 -1
  327. modoboa/frontend_dist/assets/VInput-DhzSMFXh.js +0 -1
  328. modoboa/frontend_dist/assets/VMenu-B53a3gm6.js +0 -1
  329. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  330. modoboa/frontend_dist/assets/VPicker-B928ZVJQ.js +0 -1
  331. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  332. modoboa/frontend_dist/assets/VProgressCircular-viI3jDXe.js +0 -1
  333. modoboa/frontend_dist/assets/VRadioGroup-C0bqFrYg.js +0 -1
  334. modoboa/frontend_dist/assets/VSelect-y0E5_vPn.js +0 -1
  335. modoboa/frontend_dist/assets/VSheet-DQkh_hsX.js +0 -1
  336. modoboa/frontend_dist/assets/VSpacer-CBqB9uSt.js +0 -1
  337. modoboa/frontend_dist/assets/VSwitch-D4xdR9jz.js +0 -1
  338. modoboa/frontend_dist/assets/VTabs-D2c0KeF2.js +0 -1
  339. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  340. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  341. modoboa/frontend_dist/assets/VTextField-DvvH1ciR.js +0 -1
  342. modoboa/frontend_dist/assets/VTextarea-DHtXtzqP.js +0 -1
  343. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  344. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  345. modoboa/frontend_dist/assets/VToolbar-pvLQtmbU.js +0 -1
  346. modoboa/frontend_dist/assets/VWindowItem-DErNPSH8.js +0 -1
  347. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  348. modoboa/frontend_dist/assets/WebmailLayout-D7J-QJ-0.js +0 -1
  349. modoboa/frontend_dist/assets/filter-BVvMTmPG.js +0 -1
  350. modoboa/frontend_dist/assets/global.store-Bha4Z76j.js +0 -1
  351. modoboa/frontend_dist/assets/importExport-EgijWlC1.js +0 -1
  352. modoboa/frontend_dist/assets/languages-Cge6pECg.js +0 -1
  353. modoboa/frontend_dist/assets/transports-BUSYxSF4.js +0 -1
  354. modoboa/frontend_dist/assets/webmail-HVg3ZHC0.js +0 -1
  355. modoboa/frontend_dist/assets/webmail.store-D-d88s4w.js +0 -1
  356. {modoboa-2.6.5.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  357. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  358. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  359. {modoboa-2.6.5.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: \n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2025-12-02 16:07+0100\n"
10
+ "POT-Creation-Date: 2026-02-04 09:30+0100\n"
11
11
  "PO-Revision-Date: 2023-02-17 22:03+0200\n"
12
12
  "Last-Translator: Ossi Mäntylahti <ossiman@gmail.com>\n"
13
13
  "Language-Team: \n"
@@ -47,14 +47,14 @@ msgid "Cannot be greater than domain quota"
47
47
  msgstr "Ei voi olla suurempi kuin verkkotunnuksen kiintiö"
48
48
 
49
49
  #: admin/api/v1/serializers.py:168 admin/api/v1/serializers.py:364
50
- #: admin/api/v2/serializers.py:570 admin/models/alias.py:45
50
+ #: admin/api/v2/serializers.py:571 admin/models/alias.py:45
51
51
  msgid "Permission denied."
52
52
  msgstr "Lupa evätty."
53
53
 
54
54
  #: admin/api/v1/serializers.py:231 admin/api/v2/serializers.py:90
55
- #: admin/api/v2/serializers.py:491 amavis/serializers.py:39
56
- #: core/api/v2/serializers.py:255 core/api/v2/serializers.py:257
57
- #: core/api/v2/serializers.py:266 transport/backends.py:40
55
+ #: admin/api/v2/serializers.py:492 amavis/serializers.py:39
56
+ #: core/api/v2/serializers.py:248 core/api/v2/serializers.py:250
57
+ #: core/api/v2/serializers.py:259 transport/backends.py:40
58
58
  msgid "This field is required"
59
59
  msgstr "Tämä kenttä on pakollinen"
60
60
 
@@ -65,7 +65,7 @@ msgstr ""
65
65
  "Luettelo hallinnoiduista verkkotunnuksista (vain jälleenmyyjät ja "
66
66
  "verkkotunnusten ylläpitäjät)."
67
67
 
68
- #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:552
68
+ #: admin/api/v1/serializers.py:337 admin/api/v2/serializers.py:553
69
69
  msgid "Not allowed for this role."
70
70
  msgstr "Ei sallittu tässä roolissa."
71
71
 
@@ -73,13 +73,12 @@ msgstr "Ei sallittu tässä roolissa."
73
73
  msgid "Must be equal to mailbox full_address"
74
74
  msgstr "Täytyy olla yhtä suuri kuin postilaatikon koko osoite"
75
75
 
76
- #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:604
77
- #: calendars/serializers.py:175 calendars/serializers.py:177
78
- #: pdfcredentials/api/v2/serializers.py:91
76
+ #: admin/api/v1/serializers.py:397 admin/api/v2/serializers.py:605
77
+ #: calendars/serializers.py:182 pdfcredentials/api/v2/serializers.py:91
79
78
  msgid "This field is required."
80
79
  msgstr "Tämä kenttä on pakollinen."
81
80
 
82
- #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:621
81
+ #: admin/api/v1/serializers.py:409 admin/api/v2/serializers.py:622
83
82
  msgid "Local domain {} does not exist"
84
83
  msgstr "Paikallista verkkotunnusta {} ei ole olemassa"
85
84
 
@@ -122,41 +121,41 @@ msgstr "Et voi määritellä rajoittamatonta kiintiötä."
122
121
  msgid "User '%s' already exists"
123
122
  msgstr "Käyttäjä '%s' on jo olemassa"
124
123
 
125
- #: admin/api/v2/serializers.py:255 admin/api/v2/serializers.py:261
124
+ #: admin/api/v2/serializers.py:256 admin/api/v2/serializers.py:262
126
125
  msgid "Must be a positive integer"
127
126
  msgstr "Täytyy olla positiivinen kokonaisluku"
128
127
 
129
- #: admin/api/v2/serializers.py:270
128
+ #: admin/api/v2/serializers.py:271
130
129
  msgid "openssl not found, please make sure it is installed."
131
130
  msgstr "openssl ei löydy, varmista, että se on asennettu."
132
131
 
133
- #: admin/api/v2/serializers.py:273 pdfcredentials/api/v2/serializers.py:84
132
+ #: admin/api/v2/serializers.py:274 pdfcredentials/api/v2/serializers.py:84
134
133
  msgid "Directory not found."
135
134
  msgstr "Hakemistoa ei löydy."
136
135
 
137
- #: admin/api/v2/serializers.py:284
136
+ #: admin/api/v2/serializers.py:285
138
137
  msgid "This field only allows valid IP addresses (or networks)"
139
138
  msgstr ""
140
139
 
141
- #: admin/api/v2/serializers.py:297
140
+ #: admin/api/v2/serializers.py:298
142
141
  msgid "Please disable imap migration before disabling this option."
143
142
  msgstr ""
144
143
 
145
- #: admin/api/v2/serializers.py:310
144
+ #: admin/api/v2/serializers.py:311
146
145
  msgid "Define at least one authorized network / address"
147
146
  msgstr "Määritä vähintään yksi valtuutettu verkko/osoite"
148
147
 
149
- #: admin/api/v2/serializers.py:587
148
+ #: admin/api/v2/serializers.py:588
150
149
  msgid "The left part of an email address can't be more than 64 characters."
151
150
  msgstr ""
152
151
 
153
- #: admin/api/v2/serializers.py:609
152
+ #: admin/api/v2/serializers.py:610
154
153
  #, fuzzy
155
154
  #| msgid "A mailbox is required"
156
155
  msgid "A mailbox is required to create aliases."
157
156
  msgstr "Tarvitaan postilaatikko"
158
157
 
159
- #: admin/api/v2/serializers.py:782
158
+ #: admin/api/v2/serializers.py:783
160
159
  #, fuzzy
161
160
  #| msgid "Unknown tag {}"
162
161
  msgid "Unknown status"
@@ -263,20 +262,30 @@ msgid "Check every domain against major DNSBL providers"
263
262
  msgstr ""
264
263
  "Tarkista jokainen verkkotunnus merkittävimmistä DNSBL-palveluntarjoajista"
265
264
 
266
- #: admin/app_settings.py:116
265
+ #: admin/app_settings.py:117
266
+ msgid "Notify domain admins about DNS issues"
267
+ msgstr ""
268
+
269
+ #: admin/app_settings.py:120
270
+ msgid ""
271
+ "Send a notification by email to domain administrators when DNS issues are "
272
+ "encountered"
273
+ msgstr ""
274
+
275
+ #: admin/app_settings.py:128
267
276
  msgid "Custom DNS server"
268
277
  msgstr "Mukautettu DNS-palvelin"
269
278
 
270
- #: admin/app_settings.py:118
279
+ #: admin/app_settings.py:130
271
280
  msgid "Use a custom DNS server instead of local server configuration"
272
281
  msgstr ""
273
282
  "Käytä mukautettua DNS-palvelinta paikallisen palvelinkonfiguraation sijasta"
274
283
 
275
- #: admin/app_settings.py:126
284
+ #: admin/app_settings.py:138
276
285
  msgid "DKIM keys storage directory"
277
286
  msgstr "DKIM-avainten tallennushakemisto"
278
287
 
279
- #: admin/app_settings.py:128
288
+ #: admin/app_settings.py:140
280
289
  msgid ""
281
290
  "Absolute path of the directory where DKIM private keys will be stored. Make "
282
291
  "sure this directory belongs to root user and is not readable by the outside "
@@ -286,19 +295,19 @@ msgstr ""
286
295
  "että tämä hakemisto kuuluu root-käyttäjälle eikä ole ulkomaailman "
287
296
  "luettavissa."
288
297
 
289
- #: admin/app_settings.py:137
298
+ #: admin/app_settings.py:149
290
299
  msgid "Default DKIM key length"
291
300
  msgstr "DKIM-avaimen oletuspituus"
292
301
 
293
- #: admin/app_settings.py:139
302
+ #: admin/app_settings.py:151
294
303
  msgid "Default length in bits for newly generated DKIM keys."
295
304
  msgstr "Uusien luotujen DKIM-avainten oletuspituus bitteinä."
296
305
 
297
- #: admin/app_settings.py:146
306
+ #: admin/app_settings.py:158
298
307
  msgid "Default domain quota"
299
308
  msgstr "Verkkotunnuksen oletuskiintiö"
300
309
 
301
- #: admin/app_settings.py:148
310
+ #: admin/app_settings.py:160
302
311
  msgid ""
303
312
  "Default quota (in MB) applied to freshly created domains with no value "
304
313
  "specified. A value of 0 means no quota."
@@ -306,11 +315,11 @@ msgstr ""
306
315
  "Oletuskiintiö (megatavua), jota sovelletaan juuri luotuihin toimialueisiin, "
307
316
  "joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, että kiintiötä ei ole."
308
317
 
309
- #: admin/app_settings.py:156
318
+ #: admin/app_settings.py:168
310
319
  msgid "Default domain sending limit"
311
320
  msgstr "Oletusarvo verkkotunnuksen lähetysrajalle"
312
321
 
313
- #: admin/app_settings.py:158
322
+ #: admin/app_settings.py:170
314
323
  msgid ""
315
324
  "Number of messages freshly created domains will be allowed to send per day. "
316
325
  "Leave empty for no limit."
@@ -318,16 +327,16 @@ msgstr ""
318
327
  "Viestien määrä, jonka juuri luodut verkkotunnukset saavat lähettää päivässä. "
319
328
  "Jätä tyhjäksi, jos et halua rajoitusta."
320
329
 
321
- #: admin/app_settings.py:170 limits/app_settings.py:61
330
+ #: admin/app_settings.py:182 limits/app_settings.py:61
322
331
  #: limits/app_settings.py:135 limits/constants.py:31 limits/constants.py:84
323
332
  msgid "Mailboxes"
324
333
  msgstr "Postilaatikot"
325
334
 
326
- #: admin/app_settings.py:176
335
+ #: admin/app_settings.py:188
327
336
  msgid "Handle mailboxes on filesystem"
328
337
  msgstr "Käsittele postilaatikoita tiedostojärjestelmässä"
329
338
 
330
- #: admin/app_settings.py:178
339
+ #: admin/app_settings.py:190
331
340
  msgid ""
332
341
  "Rename or remove mailboxes on the filesystem when they get renamed or "
333
342
  "removed within Modoboa"
@@ -335,11 +344,11 @@ msgstr ""
335
344
  "Nimeä uudelleen tai poista postilaatikot tiedostojärjestelmästä, kun ne "
336
345
  "nimetään uudelleen tai poistetaan Modoboassa"
337
346
 
338
- #: admin/app_settings.py:186 admin/models/domain.py:36
347
+ #: admin/app_settings.py:198 admin/models/domain.py:36
339
348
  msgid "Default mailbox quota"
340
349
  msgstr "Oletuspostilaatikkokiintiö"
341
350
 
342
- #: admin/app_settings.py:188
351
+ #: admin/app_settings.py:200
343
352
  #, fuzzy
344
353
  #| msgid ""
345
354
  #| "Default mailbox quota (in MB) applied to freshly created mailboxes with "
@@ -352,11 +361,11 @@ msgstr ""
352
361
  "postilaatikoihin, joille ei ole määritetty arvoa. Arvo 0 tarkoittaa, ettei "
353
362
  "kiintiötä ole."
354
363
 
355
- #: admin/app_settings.py:197
364
+ #: admin/app_settings.py:209
356
365
  msgid "Default mailbox sending limit"
357
366
  msgstr "Oletuspostilaatikon lähetysraja"
358
367
 
359
- #: admin/app_settings.py:199
368
+ #: admin/app_settings.py:211
360
369
  msgid ""
361
370
  "Number of messages freshly created mailboxes will be allowed to send per "
362
371
  "day. Leave empty for no limit."
@@ -364,63 +373,63 @@ msgstr ""
364
373
  "Viestien määrä, jonka juuri luodut postilaatikot saavat lähettää päivässä. "
365
374
  "Jätä tyhjäksi, jos et halua rajoitusta."
366
375
 
367
- #: admin/app_settings.py:207
376
+ #: admin/app_settings.py:219
368
377
  msgid "Automatic account removal"
369
378
  msgstr "Tilin automaattinen poistaminen"
370
379
 
371
- #: admin/app_settings.py:209
380
+ #: admin/app_settings.py:221
372
381
  msgid "When a mailbox is removed, also remove the associated account"
373
382
  msgstr "Kun postilaatikko poistetaan, poistetaan myös siihen liittyvä tili"
374
383
 
375
- #: admin/app_settings.py:218
384
+ #: admin/app_settings.py:230
376
385
  msgid "Automatic domain/mailbox creation"
377
386
  msgstr "Automaattinen verkkotunnuksen/sähköpostilaatikon luominen"
378
387
 
379
- #: admin/app_settings.py:221
388
+ #: admin/app_settings.py:233
380
389
  msgid "Create a domain and a mailbox when an account is automatically created."
381
390
  msgstr "Luo verkkotunnus ja postilaatikko, kun tili luodaan automaattisesti."
382
391
 
383
- #: admin/app_settings.py:230
392
+ #: admin/app_settings.py:242
384
393
  msgid "Create an alias when a mailbox is renamed"
385
394
  msgstr "Luo alias, kun postilaatikko nimetään uudelleen"
386
395
 
387
- #: admin/app_settings.py:233
396
+ #: admin/app_settings.py:245
388
397
  msgid "Create an alias using the old address when a mailbox is renamed."
389
398
  msgstr ""
390
399
  "Luo alias, joka käyttää vanhaa osoitetta, kun postilaatikko nimetään "
391
400
  "uudelleen."
392
401
 
393
- #: admin/app_settings.py:245
402
+ #: admin/app_settings.py:257
394
403
  #, fuzzy
395
404
  #| msgid "alias"
396
405
  msgid "Aliases"
397
406
  msgstr "alias"
398
407
 
399
- #: admin/app_settings.py:251
408
+ #: admin/app_settings.py:263
400
409
  msgid "Alias can target any domain"
401
410
  msgstr ""
402
411
 
403
- #: admin/app_settings.py:253
412
+ #: admin/app_settings.py:265
404
413
  msgid "Allow aliases to target any domain, not just the local domains."
405
414
  msgstr ""
406
415
 
407
- #: admin/app_settings.py:260
416
+ #: admin/app_settings.py:272
408
417
  msgid "Alias target block list"
409
418
  msgstr ""
410
419
 
411
- #: admin/app_settings.py:262
420
+ #: admin/app_settings.py:274
412
421
  msgid "A list of domains that aliases cannot target (comma separated)."
413
422
  msgstr ""
414
423
 
415
- #: admin/app_settings.py:270
424
+ #: admin/app_settings.py:282
416
425
  msgid "Alias target allow list"
417
426
  msgstr ""
418
427
 
419
- #: admin/app_settings.py:272
428
+ #: admin/app_settings.py:284
420
429
  msgid "A list of domains that aliases can target (comma separated)."
421
430
  msgstr ""
422
431
 
423
- #: admin/app_settings.py:326 core/api/v2/viewsets.py:174
432
+ #: admin/app_settings.py:338 core/api/v2/viewsets.py:174
424
433
  msgid "Administration"
425
434
  msgstr "Hallinnointinäkymä"
426
435
 
@@ -440,6 +449,35 @@ msgstr "Avattu"
440
449
  msgid "Closed"
441
450
  msgstr "Suljettu"
442
451
 
452
+ #: admin/dns_checker.py:96
453
+ msgid "MX {} listed by DNSBL provider {}"
454
+ msgstr "MX {} DNSBL-palveluntarjoajan listaama {}"
455
+
456
+ #: admin/dns_checker.py:138
457
+ msgid "Domain has no MX record"
458
+ msgstr "Verkkotunnuksella ei ole MX-tietuetta"
459
+
460
+ #: admin/dns_checker.py:141
461
+ msgid "Domain {} has no MX record"
462
+ msgstr "Verkkotunnuksella {} ei ole MX-tietuetta"
463
+
464
+ #: admin/dns_checker.py:159
465
+ msgid "Invalid MX record: {}"
466
+ msgstr "Virheellinen MX-tietue: {}"
467
+
468
+ #: admin/dns_checker.py:166
469
+ #, python-brace-format
470
+ msgid "MX record for domain {0} is invalid: {1}"
471
+ msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}"
472
+
473
+ #: admin/dns_checker.py:177
474
+ msgid "[modoboa] MX issue(s) for domain {}"
475
+ msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}"
476
+
477
+ #: admin/dns_checker.py:224
478
+ msgid "[modoboa] DNSBL issue(s) for domain {}"
479
+ msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}"
480
+
443
481
  #: admin/handlers.py:179
444
482
  msgid "domain alias"
445
483
  msgstr "verkkotunnuksen alias"
@@ -462,8 +500,8 @@ msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia"
462
500
  msgid "You are not allowed to import domain aliases."
463
501
  msgstr "Sinulla ei ole oikeutta tuoda verkkotunnuksia."
464
502
 
465
- #: admin/lib.py:227 admin/tests/test_mx.py:153 admin/tests/test_mx.py:166
466
- #: admin/tests/test_mx.py:171
503
+ #: admin/lib.py:227 admin/tests/test_mx.py:139 admin/tests/test_mx.py:152
504
+ #: admin/tests/test_mx.py:157
467
505
  #, python-format
468
506
  msgid "No DNS record found for %s"
469
507
  msgstr "DNS-tietuetta ei löytynyt %s"
@@ -473,11 +511,11 @@ msgstr "DNS-tietuetta ei löytynyt %s"
473
511
  msgid "No %(type)s record for %(name)s"
474
512
  msgstr "Ei %(type)s-tietueelle %(name)s"
475
513
 
476
- #: admin/lib.py:234 admin/tests/test_mx.py:156
514
+ #: admin/lib.py:234 admin/tests/test_mx.py:142
477
515
  msgid "No working name servers found"
478
516
  msgstr "Toimivia nimipalvelimia ei löytynyt"
479
517
 
480
- #: admin/lib.py:237 admin/tests/test_mx.py:160
518
+ #: admin/lib.py:237 admin/tests/test_mx.py:146
481
519
  #, python-format
482
520
  msgid "DNS resolution timeout, unable to query %s at the moment"
483
521
  msgstr "DNS-kyselyn aikakatkaisu, kysely %s ei onnistu tällä hetkellä"
@@ -531,35 +569,6 @@ msgstr ""
531
569
  msgid "Failed to generate DKIM public key"
532
570
  msgstr "Ota käyttöön viestintä Modoboan julkisen API:n kanssa"
533
571
 
534
- #: admin/management/commands/subcommands/_mx.py:133
535
- msgid "MX {} listed by DNSBL provider {}"
536
- msgstr "MX {} DNSBL-palveluntarjoajan listaama {}"
537
-
538
- #: admin/management/commands/subcommands/_mx.py:174
539
- msgid "Domain has no MX record"
540
- msgstr "Verkkotunnuksella ei ole MX-tietuetta"
541
-
542
- #: admin/management/commands/subcommands/_mx.py:177
543
- msgid "Domain {} has no MX record"
544
- msgstr "Verkkotunnuksella {} ei ole MX-tietuetta"
545
-
546
- #: admin/management/commands/subcommands/_mx.py:195
547
- msgid "Invalid MX record: {}"
548
- msgstr "Virheellinen MX-tietue: {}"
549
-
550
- #: admin/management/commands/subcommands/_mx.py:202
551
- #, python-brace-format
552
- msgid "MX record for domain {0} is invalid: {1}"
553
- msgstr "Verkkotunnuksen {0} MX-tietue on virheellinen: {1}"
554
-
555
- #: admin/management/commands/subcommands/_mx.py:213
556
- msgid "[modoboa] MX issue(s) for domain {}"
557
- msgstr "[modoboa] MX-ongelma(t) verkkotunnukselle {}"
558
-
559
- #: admin/management/commands/subcommands/_mx.py:269
560
- msgid "[modoboa] DNSBL issue(s) for domain {}"
561
- msgstr "[modoboa] DNSBL ongelma(t) verkkotunnukselle {}"
562
-
563
572
  #: admin/models/alias.py:43
564
573
  msgid "Domain not found."
565
574
  msgstr "Verkkotunnusta ei löydy."
@@ -759,17 +768,17 @@ msgstr ""
759
768
  "Modoboa havaitsi, että verkkotunnuksella %(domain)s ei ole voimassa olevaa "
760
769
  "MX-tietuetta:"
761
770
 
762
- #: admin/tests/test_mx.py:155
771
+ #: admin/tests/test_mx.py:141
763
772
  #, python-format
764
773
  msgid "No MX record for %s"
765
774
  msgstr "Ei MX-tietuetta %s"
766
775
 
767
- #: admin/tests/test_mx.py:176 admin/tests/test_mx.py:182
776
+ #: admin/tests/test_mx.py:162 admin/tests/test_mx.py:168
768
777
  #, python-format
769
778
  msgid "Invalid IP address format for %(domain)s; %(addr)s"
770
779
  msgstr "Virheellinen IP-osoiteformaatti %(domain)s; %(addr)s"
771
780
 
772
- #: admin/tests/test_mx.py:199
781
+ #: admin/tests/test_mx.py:185
773
782
  #, fuzzy, python-format
774
783
  #| msgid "No MX record for %s"
775
784
  msgid "No AAAA record for %s"
@@ -979,11 +988,11 @@ msgid ""
979
988
  "database)"
980
989
  msgstr ""
981
990
 
982
- #: amavis/app_settings.py:236 webmail/app_settings.py:118
991
+ #: amavis/app_settings.py:236 webmail/app_settings.py:155
983
992
  msgid "Display"
984
993
  msgstr ""
985
994
 
986
- #: amavis/app_settings.py:243 webmail/app_settings.py:144
995
+ #: amavis/app_settings.py:243 webmail/app_settings.py:181
987
996
  #, fuzzy
988
997
  #| msgid "Number of displayed items per page"
989
998
  msgid "Number of displayed emails per page"
@@ -1266,7 +1275,7 @@ msgstr "Luo verkkotunnuksen ylläpitäjä"
1266
1275
  msgid "Allow domain administrators to manage user calendars (read and write)"
1267
1276
  msgstr "Salli tämän järjestelmänvalvojan pääsy käyttäjien postilaatikoihin"
1268
1277
 
1269
- #: calendars/app_settings.py:60 core/app_settings.py:676
1278
+ #: calendars/app_settings.py:60 core/app_settings.py:664
1270
1279
  #: rspamd/app_settings.py:45
1271
1280
  msgid "Miscellaneous"
1272
1281
  msgstr "Sekalaiset"
@@ -1284,11 +1293,11 @@ msgstr ""
1284
1293
  msgid "Calendars"
1285
1294
  msgstr ""
1286
1295
 
1287
- #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:38
1296
+ #: calendars/models.py:48 calendars/models.py:65 contacts/models.py:39
1288
1297
  msgid "Server location is not set, please fix it."
1289
1298
  msgstr ""
1290
1299
 
1291
- #: calendars/viewsets.py:197
1300
+ #: calendars/viewsets.py:199
1292
1301
  msgid "Uploaded file is too big (max: {} bytes)"
1293
1302
  msgstr ""
1294
1303
 
@@ -1375,7 +1384,7 @@ msgstr "Kaksivaiheinen tunnistus (2FA) on jo käytössä"
1375
1384
  msgid "Failed TFA settings editing attempt from '%(addr)s' as user '%(user)s'"
1376
1385
  msgstr ""
1377
1386
 
1378
- #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:445
1387
+ #: core/api/v1/serializers.py:93 core/api/v2/serializers.py:438
1379
1388
  #, fuzzy
1380
1389
  #| msgid "Old password"
1381
1390
  msgid "Invalid password"
@@ -1389,24 +1398,20 @@ msgstr "Kaksivaiheinen tunnistautuminen (2FA) ei ole käytössä"
1389
1398
  msgid "Local"
1390
1399
  msgstr "Paikallinen"
1391
1400
 
1392
- #: core/api/v2/serializers.py:194 core/app_settings.py:17
1393
- msgid "User profile"
1394
- msgstr "Käyttäjäprofiili"
1395
-
1396
- #: core/api/v2/serializers.py:213 core/api/v2/serializers.py:221
1397
- #: core/api/v2/serializers.py:228
1401
+ #: core/api/v2/serializers.py:206 core/api/v2/serializers.py:214
1402
+ #: core/api/v2/serializers.py:221
1398
1403
  msgid "Invalid syntax"
1399
1404
  msgstr "Virheellinen syntaksi"
1400
1405
 
1401
- #: core/api/v2/serializers.py:233
1406
+ #: core/api/v2/serializers.py:226
1402
1407
  msgid "Invalid rounds number"
1403
1408
  msgstr "Virheellinen kierrosluku"
1404
1409
 
1405
- #: core/api/v2/serializers.py:433 core/forms.py:81
1410
+ #: core/api/v2/serializers.py:426 core/forms.py:81
1406
1411
  msgid "This code is invalid"
1407
1412
  msgstr "Tämä koodi on virheellinen"
1408
1413
 
1409
- #: core/api/v2/serializers.py:503 core/views/auth.py:213 core/views/auth.py:266
1414
+ #: core/api/v2/serializers.py:496 core/views/auth.py:213 core/views/auth.py:266
1410
1415
  msgid "Please use the following code to recover your Modoboa password: {}"
1411
1416
  msgstr "Käytä seuraavaa koodia saadaksesi takaisin Modoboa-salasanasi: {}"
1412
1417
 
@@ -1439,37 +1444,37 @@ msgid "Calendar"
1439
1444
  msgstr ""
1440
1445
 
1441
1446
  #: core/api/v2/viewsets.py:215 core/api/v2/viewsets.py:217
1442
- #: webmail/app_settings.py:258 webmail/app_settings.py:265
1447
+ #: webmail/app_settings.py:295 webmail/app_settings.py:302
1443
1448
  #, fuzzy
1444
1449
  #| msgid "E-mail"
1445
1450
  msgid "Webmail"
1446
1451
  msgstr "Sähköpostiosoite"
1447
1452
 
1448
- #: core/app_settings.py:37
1453
+ #: core/app_settings.py:25
1449
1454
  msgid "Authentication"
1450
1455
  msgstr "Tunnistautuminen"
1451
1456
 
1452
- #: core/app_settings.py:43
1457
+ #: core/app_settings.py:31
1453
1458
  msgid "Authentication type"
1454
1459
  msgstr "Autentikointityyppi"
1455
1460
 
1456
- #: core/app_settings.py:45
1461
+ #: core/app_settings.py:33
1457
1462
  msgid "The backend used for authentication"
1458
1463
  msgstr "Tunnistautumiseen käytettävä taustajärjestelmä"
1459
1464
 
1460
- #: core/app_settings.py:52
1465
+ #: core/app_settings.py:40
1461
1466
  msgid "Default password scheme"
1462
1467
  msgstr "Oletussalasanojen järjestelmä"
1463
1468
 
1464
- #: core/app_settings.py:54
1469
+ #: core/app_settings.py:42
1465
1470
  msgid "Scheme used to crypt mailbox passwords"
1466
1471
  msgstr "Sähköpostilaatikon salasanojen salaamiseen käytetty järjestelmä"
1467
1472
 
1468
- #: core/app_settings.py:61
1473
+ #: core/app_settings.py:49
1469
1474
  msgid "Rounds"
1470
1475
  msgstr "Kierrokset"
1471
1476
 
1472
- #: core/app_settings.py:63
1477
+ #: core/app_settings.py:51
1473
1478
  msgid ""
1474
1479
  "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
1475
1480
  "between 1000 and 999999999, inclusive."
@@ -1477,47 +1482,47 @@ msgstr ""
1477
1482
  "Käytettävien kierrosten määrä (vain sha256crypt ja sha512crypt käyttävät). "
1478
1483
  "Arvon on oltava välillä 1000 ja 99999999999."
1479
1484
 
1480
- #: core/app_settings.py:73
1485
+ #: core/app_settings.py:61
1481
1486
  msgid "Update password scheme at login"
1482
1487
  msgstr "Päivitä salasanajärjestelmä kirjautumisen yhteydessä"
1483
1488
 
1484
- #: core/app_settings.py:76
1489
+ #: core/app_settings.py:64
1485
1490
  msgid "Update user password at login to use the default password scheme"
1486
1491
  msgstr ""
1487
1492
  "Päivitä käyttäjän salasana sisäänkirjautumisen yhteydessä käyttämään "
1488
1493
  "oletussalasanajärjestelmää"
1489
1494
 
1490
- #: core/app_settings.py:84
1495
+ #: core/app_settings.py:72
1491
1496
  msgid "Default password"
1492
1497
  msgstr "Oletussalasana"
1493
1498
 
1494
- #: core/app_settings.py:86
1499
+ #: core/app_settings.py:74
1495
1500
  msgid "Default password for automatically created accounts."
1496
1501
  msgstr "Automaattisesti luotujen tilien oletussalasana."
1497
1502
 
1498
- #: core/app_settings.py:93
1503
+ #: core/app_settings.py:81
1499
1504
  msgid "Random password length"
1500
1505
  msgstr "Satunnaisen salasanan pituus"
1501
1506
 
1502
- #: core/app_settings.py:95
1507
+ #: core/app_settings.py:83
1503
1508
  msgid "Length of randomly generated passwords."
1504
1509
  msgstr "Satunnaisesti luotujen salasanojen pituus."
1505
1510
 
1506
- #: core/app_settings.py:103
1511
+ #: core/app_settings.py:91
1507
1512
  msgid "Allow special characters for random password"
1508
1513
  msgstr ""
1509
1514
 
1510
- #: core/app_settings.py:106
1515
+ #: core/app_settings.py:94
1511
1516
  #, fuzzy
1512
1517
  #| msgid "Length of randomly generated passwords."
1513
1518
  msgid "Enable special characters in randomly generated passwords."
1514
1519
  msgstr "Satunnaisesti luotujen salasanojen pituus."
1515
1520
 
1516
- #: core/app_settings.py:114
1521
+ #: core/app_settings.py:102
1517
1522
  msgid "Update password service URL"
1518
1523
  msgstr "Päivitä salasanapalvelun URL-osoite"
1519
1524
 
1520
- #: core/app_settings.py:116
1525
+ #: core/app_settings.py:104
1521
1526
  msgid ""
1522
1527
  "The URL of an external page where users will be able to update their "
1523
1528
  "password. It applies only to non local users, ie. those automatically "
@@ -1527,106 +1532,106 @@ msgstr ""
1527
1532
  "Koskee vain muita kuin paikallisia käyttäjiä. Eli niitä, jotka luodaan "
1528
1533
  "automaattisesti onnistuneen ulkoisen todennuksen jälkeen (LDAP, SMTP)."
1529
1534
 
1530
- #: core/app_settings.py:126
1535
+ #: core/app_settings.py:114
1531
1536
  msgid "Password recovery announcement"
1532
1537
  msgstr "Ilmoitus salasanan palautuksesta"
1533
1538
 
1534
- #: core/app_settings.py:128
1539
+ #: core/app_settings.py:116
1535
1540
  msgid "A temporary message that will be displayed on the reset password page."
1536
1541
  msgstr "Väliaikainen viesti, joka näytetään salasanan nollaussivulla."
1537
1542
 
1538
- #: core/app_settings.py:137
1543
+ #: core/app_settings.py:125
1539
1544
  msgid "Enable password recovery by SMS"
1540
1545
  msgstr "Ota salasanan palautus käyttöön tekstiviestillä"
1541
1546
 
1542
- #: core/app_settings.py:140
1547
+ #: core/app_settings.py:128
1543
1548
  msgid "Enable password recovery by SMS for users who filled a phone number."
1544
1549
  msgstr ""
1545
1550
  "Ota käyttöön salasanan palautus tekstiviestillä käyttäjille, jotka ovat "
1546
1551
  "täyttäneet puhelinnumeron."
1547
1552
 
1548
- #: core/app_settings.py:148
1553
+ #: core/app_settings.py:136
1549
1554
  msgid "SMS provider"
1550
1555
  msgstr "SMS-palveluntarjoaja"
1551
1556
 
1552
- #: core/app_settings.py:151
1557
+ #: core/app_settings.py:139
1553
1558
  msgid "Choose a provider to send password recovery SMS"
1554
1559
  msgstr ""
1555
1560
  "Valitse palveluntarjoaja, joka lähettää salasanan palautustekstiviestin"
1556
1561
 
1557
- #: core/app_settings.py:163
1562
+ #: core/app_settings.py:151
1558
1563
  msgid "LDAP"
1559
1564
  msgstr ""
1560
1565
 
1561
- #: core/app_settings.py:169 sievefilters/app_settings.py:18
1566
+ #: core/app_settings.py:157 sievefilters/app_settings.py:18
1562
1567
  #: sievefilters/app_settings.py:51 webmail/app_settings.py:36
1563
- #: webmail/app_settings.py:73
1568
+ #: webmail/app_settings.py:73 webmail/app_settings.py:119
1564
1569
  msgid "Server address"
1565
1570
  msgstr "Palvelimen osoite"
1566
1571
 
1567
- #: core/app_settings.py:171
1572
+ #: core/app_settings.py:159
1568
1573
  msgid "The IP address or the DNS name of the LDAP server"
1569
1574
  msgstr "LDAP-palvelimen IP-osoite tai DNS-nimi"
1570
1575
 
1571
- #: core/app_settings.py:178 sievefilters/app_settings.py:25
1576
+ #: core/app_settings.py:166 sievefilters/app_settings.py:25
1572
1577
  #: sievefilters/app_settings.py:67 webmail/app_settings.py:54
1573
- #: webmail/app_settings.py:91
1578
+ #: webmail/app_settings.py:91 webmail/app_settings.py:137
1574
1579
  msgid "Server port"
1575
1580
  msgstr "Palvelimen portti"
1576
1581
 
1577
- #: core/app_settings.py:180
1582
+ #: core/app_settings.py:168
1578
1583
  msgid "The TCP port number used by the LDAP server"
1579
1584
  msgstr "LDAP-palvelimen käyttämän TCP-portin numero"
1580
1585
 
1581
- #: core/app_settings.py:188
1586
+ #: core/app_settings.py:176
1582
1587
  msgid "Enable secondary server (fallback)"
1583
1588
  msgstr "Toisen palvelimen käyttöönotto (varapalvelin)"
1584
1589
 
1585
- #: core/app_settings.py:191
1590
+ #: core/app_settings.py:179
1586
1591
  msgid ""
1587
1592
  "Enable a secondary LDAP server which will be used if the primary one fails"
1588
1593
  msgstr ""
1589
1594
  "Ota käyttöön toissijainen LDAP-palvelin, jota käytetään, jos ensisijainen "
1590
1595
  "palvelin ei toimi"
1591
1596
 
1592
- #: core/app_settings.py:199
1597
+ #: core/app_settings.py:187
1593
1598
  msgid "Secondary server address"
1594
1599
  msgstr "Toisen palvelimen osoite"
1595
1600
 
1596
- #: core/app_settings.py:202
1601
+ #: core/app_settings.py:190
1597
1602
  msgid "The IP address or the DNS name of the seondary LDAP server"
1598
1603
  msgstr "Toisen LDAP-palvelimen IP-osoite tai DNS-nimi"
1599
1604
 
1600
- #: core/app_settings.py:209
1605
+ #: core/app_settings.py:197
1601
1606
  msgid "Secondary server port"
1602
1607
  msgstr "Toisen palvelimen portti"
1603
1608
 
1604
- #: core/app_settings.py:212
1609
+ #: core/app_settings.py:200
1605
1610
  msgid "The TCP port number used by the LDAP secondary server"
1606
1611
  msgstr "LDAP:n toissijaisen palvelimen käyttämä TCP-portin numero"
1607
1612
 
1608
- #: core/app_settings.py:219 sievefilters/app_settings.py:58
1613
+ #: core/app_settings.py:207 sievefilters/app_settings.py:58
1609
1614
  #: webmail/app_settings.py:45
1610
1615
  msgid "Use a secured connection"
1611
1616
  msgstr "Käytä suojattua yhteyttä"
1612
1617
 
1613
- #: core/app_settings.py:221
1618
+ #: core/app_settings.py:209
1614
1619
  msgid "Use an SSL/STARTTLS connection to access the LDAP server"
1615
1620
  msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
1616
1621
 
1617
- #: core/app_settings.py:228
1622
+ #: core/app_settings.py:216
1618
1623
  msgid "Active Directory"
1619
1624
  msgstr "Active Directory"
1620
1625
 
1621
- #: core/app_settings.py:230
1626
+ #: core/app_settings.py:218
1622
1627
  msgid "Tell if the LDAP server is an Active Directory one"
1623
1628
  msgstr "Kerro, onko LDAP-palvelin Active Directory -palvelin"
1624
1629
 
1625
- #: core/app_settings.py:237
1630
+ #: core/app_settings.py:225
1626
1631
  msgid "Administrator groups"
1627
1632
  msgstr "Järjestelmänvalvojien ryhmät"
1628
1633
 
1629
- #: core/app_settings.py:239
1634
+ #: core/app_settings.py:227
1630
1635
  msgid ""
1631
1636
  "Members of those LDAP Posix groups will be created as domain administrators. "
1632
1637
  "Use ';' characters to separate groups."
@@ -1634,47 +1639,47 @@ msgstr ""
1634
1639
  "Näiden LDAP Posix -ryhmien jäsenet luodaan verkkotunnuksen "
1635
1640
  "järjestelmänvalvojiksi. Käytä ';'-merkkejä ryhmien erottamiseen."
1636
1641
 
1637
- #: core/app_settings.py:248
1642
+ #: core/app_settings.py:236
1638
1643
  msgid "Group type"
1639
1644
  msgstr "Ryhmän tyyppi"
1640
1645
 
1641
- #: core/app_settings.py:250
1646
+ #: core/app_settings.py:238
1642
1647
  msgid "The LDAP group type to use with your directory."
1643
1648
  msgstr "LDAP-ryhmän tyyppi, jota käytetään hakemiston kanssa."
1644
1649
 
1645
- #: core/app_settings.py:257
1650
+ #: core/app_settings.py:245
1646
1651
  msgid "Groups search base"
1647
1652
  msgstr "Ryhmien hakupohja"
1648
1653
 
1649
- #: core/app_settings.py:259
1654
+ #: core/app_settings.py:247
1650
1655
  msgid "The distinguished name of the search base used to find groups"
1651
1656
  msgstr "Ryhmien etsimiseen käytettävän hakupohjan erottuva nimi"
1652
1657
 
1653
- #: core/app_settings.py:267
1658
+ #: core/app_settings.py:255
1654
1659
  msgid "Password attribute"
1655
1660
  msgstr "Salasana-attribuutti"
1656
1661
 
1657
- #: core/app_settings.py:269
1662
+ #: core/app_settings.py:257
1658
1663
  msgid "The attribute used to store user passwords"
1659
1664
  msgstr "Määrite, jota käytetään käyttäjien salasanojen tallentamiseen"
1660
1665
 
1661
- #: core/app_settings.py:276
1666
+ #: core/app_settings.py:264
1662
1667
  msgid "LDAP authentication settings"
1663
1668
  msgstr "LDAP-todennusasetukset"
1664
1669
 
1665
- #: core/app_settings.py:284
1670
+ #: core/app_settings.py:272
1666
1671
  msgid "Authentication method"
1667
1672
  msgstr "Tunnistusmenetelmä"
1668
1673
 
1669
- #: core/app_settings.py:287
1674
+ #: core/app_settings.py:275
1670
1675
  msgid "Choose the authentication method to use"
1671
1676
  msgstr "Valitse käytettävä todennusmenetelmä"
1672
1677
 
1673
- #: core/app_settings.py:294 core/app_settings.py:357
1678
+ #: core/app_settings.py:282 core/app_settings.py:345
1674
1679
  msgid "Bind DN"
1675
1680
  msgstr "Sido DN"
1676
1681
 
1677
- #: core/app_settings.py:296 core/app_settings.py:359
1682
+ #: core/app_settings.py:284 core/app_settings.py:347
1678
1683
  msgid ""
1679
1684
  "The distinguished name to use when binding to the LDAP server. Leave empty "
1680
1685
  "for an anonymous bind"
@@ -1682,29 +1687,29 @@ msgstr ""
1682
1687
  "Erotusnimi, jota käytetään LDAP-palvelimeen sitoutumisessa. Jätä tyhjäksi "
1683
1688
  "anonyymiä sidontaa varten"
1684
1689
 
1685
- #: core/app_settings.py:305 core/app_settings.py:367
1690
+ #: core/app_settings.py:293 core/app_settings.py:355
1686
1691
  msgid "Bind password"
1687
1692
  msgstr "Sido salasana"
1688
1693
 
1689
- #: core/app_settings.py:307 core/app_settings.py:369
1694
+ #: core/app_settings.py:295 core/app_settings.py:357
1690
1695
  msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
1691
1696
  msgstr ""
1692
1697
  "Salasana, jota käytetään LDAP-palvelimeen sitoutumisessa (komennolla 'Bind "
1693
1698
  "DN')"
1694
1699
 
1695
- #: core/app_settings.py:317 core/app_settings.py:422
1700
+ #: core/app_settings.py:305 core/app_settings.py:410
1696
1701
  msgid "Users search base"
1697
1702
  msgstr "Käyttäjien hakupohja"
1698
1703
 
1699
- #: core/app_settings.py:319 core/app_settings.py:424
1704
+ #: core/app_settings.py:307 core/app_settings.py:412
1700
1705
  msgid "The distinguished name of the search base used to find users"
1701
1706
  msgstr "Käyttäjien etsimiseen käytettävän hakupohjan erisnimi"
1702
1707
 
1703
- #: core/app_settings.py:328 core/app_settings.py:433
1708
+ #: core/app_settings.py:316 core/app_settings.py:421
1704
1709
  msgid "Search filter"
1705
1710
  msgstr "Etsi suodatin"
1706
1711
 
1707
- #: core/app_settings.py:330 core/app_settings.py:435
1712
+ #: core/app_settings.py:318 core/app_settings.py:423
1708
1713
  msgid ""
1709
1714
  "An optional filter string (e.g. '(objectClass=person)'). In order to be "
1710
1715
  "valid, it must be enclosed in parentheses."
@@ -1712,11 +1717,11 @@ msgstr ""
1712
1717
  "Valinnainen suodatinmerkkijono (esim. '(objectClass=person)'). Tämän on "
1713
1718
  "oltava suluissa."
1714
1719
 
1715
- #: core/app_settings.py:339
1720
+ #: core/app_settings.py:327
1716
1721
  msgid "User DN template"
1717
1722
  msgstr "Käyttäjän DN-malli"
1718
1723
 
1719
- #: core/app_settings.py:341
1724
+ #: core/app_settings.py:329
1720
1725
  #, python-format
1721
1726
  msgid ""
1722
1727
  "The template used to construct a user's DN. It should contain one "
@@ -1725,26 +1730,26 @@ msgstr ""
1725
1730
  "Käyttäjän DN:n rakentamiseen käytettävä malli. Sen tulisi sisältää yksi "
1726
1731
  "paikanvaraaja (eli %(user)s)"
1727
1732
 
1728
- #: core/app_settings.py:350
1733
+ #: core/app_settings.py:338
1729
1734
  msgid "LDAP synchronization settings"
1730
1735
  msgstr "LDAP-synkronointiasetukset"
1731
1736
 
1732
- #: core/app_settings.py:378
1737
+ #: core/app_settings.py:366
1733
1738
  msgid "Enable export to LDAP"
1734
1739
  msgstr "Ota käyttöön vienti LDAP:iin"
1735
1740
 
1736
- #: core/app_settings.py:380
1741
+ #: core/app_settings.py:368
1737
1742
  msgid ""
1738
1743
  "Enable automatic synchronization between local database and LDAP directory"
1739
1744
  msgstr ""
1740
1745
  "Ota käyttöön automaattinen synkronointi paikallisen tietokannan ja LDAP-"
1741
1746
  "hakemiston välillä"
1742
1747
 
1743
- #: core/app_settings.py:389
1748
+ #: core/app_settings.py:377
1744
1749
  msgid "Delete remote LDAP account when local account is deleted"
1745
1750
  msgstr "Etäisen LDAP-tilin poistaminen, kun paikallinen tili poistetaan"
1746
1751
 
1747
- #: core/app_settings.py:392
1752
+ #: core/app_settings.py:380
1748
1753
  msgid ""
1749
1754
  "Delete remote LDAP account when local account is deleted, otherwise it will "
1750
1755
  "be disabled."
@@ -1752,11 +1757,11 @@ msgstr ""
1752
1757
  "Poista etä-LDAP-tili, kun paikallinen tili poistetaan. Muuten se poistetaan "
1753
1758
  "käytöstä."
1754
1759
 
1755
- #: core/app_settings.py:401
1760
+ #: core/app_settings.py:389
1756
1761
  msgid "Account DN template"
1757
1762
  msgstr "Tilin DN-malli"
1758
1763
 
1759
- #: core/app_settings.py:403
1764
+ #: core/app_settings.py:391
1760
1765
  #, python-format
1761
1766
  msgid ""
1762
1767
  "The template used to construct an account's DN. It should contain one "
@@ -1765,207 +1770,207 @@ msgstr ""
1765
1770
  "Malli, jota käytetään tilin DN:n muodostamiseen. Sen tulisi sisältää yksi "
1766
1771
  "paikanvaraaja (eli %(user)s)"
1767
1772
 
1768
- #: core/app_settings.py:412
1773
+ #: core/app_settings.py:400
1769
1774
  msgid "Enable import from LDAP"
1770
1775
  msgstr "Ota käyttöön tuonti LDAP:stä"
1771
1776
 
1772
- #: core/app_settings.py:414
1777
+ #: core/app_settings.py:402
1773
1778
  msgid "Enable account synchronization from LDAP directory to local database"
1774
1779
  msgstr ""
1775
1780
  "Tilien synkronoinnin käyttöönotto LDAP-hakemistosta paikalliseen tietokantaan"
1776
1781
 
1777
- #: core/app_settings.py:444
1782
+ #: core/app_settings.py:432
1778
1783
  msgid "Username attribute"
1779
1784
  msgstr "Käyttäjätunnus-määrite"
1780
1785
 
1781
- #: core/app_settings.py:446
1786
+ #: core/app_settings.py:434
1782
1787
  msgid "The name of the LDAP attribute where the username can be found."
1783
1788
  msgstr "Sen LDAP-attribuutin nimi, josta käyttäjänimi löytyy."
1784
1789
 
1785
- #: core/app_settings.py:455
1790
+ #: core/app_settings.py:443
1786
1791
  msgid "Enable Dovecot LDAP sync"
1787
1792
  msgstr "Ota Dovecot LDAP-synkronointi käyttöön"
1788
1793
 
1789
- #: core/app_settings.py:457
1794
+ #: core/app_settings.py:445
1790
1795
  msgid "LDAP authentication settings will be applied to Dovecot configuration."
1791
1796
  msgstr "LDAP-todennusasetuksia sovelletaan Dovecot-konfiguraatioon."
1792
1797
 
1793
- #: core/app_settings.py:465
1798
+ #: core/app_settings.py:453
1794
1799
  msgid "Dovecot LDAP config file"
1795
1800
  msgstr "Dovecot LDAP -asetustiedosto"
1796
1801
 
1797
- #: core/app_settings.py:467
1802
+ #: core/app_settings.py:455
1798
1803
  msgid ""
1799
1804
  "Location of the configuration file which contains Dovecot LDAP settings."
1800
1805
  msgstr "Dovecotin LDAP-asetukset sisältävän määritystiedoston sijainti."
1801
1806
 
1802
- #: core/app_settings.py:480
1807
+ #: core/app_settings.py:468
1803
1808
  msgid "Dashboard"
1804
1809
  msgstr "Työpöytä"
1805
1810
 
1806
- #: core/app_settings.py:486
1811
+ #: core/app_settings.py:474
1807
1812
  #, fuzzy
1808
1813
  #| msgid "spam messages"
1809
1814
  msgid "Custom welcome message"
1810
1815
  msgstr "roskapostiviestit"
1811
1816
 
1812
- #: core/app_settings.py:488
1817
+ #: core/app_settings.py:476
1813
1818
  #, fuzzy
1814
1819
  #| msgid ""
1815
1820
  #| "A temporary message that will be displayed on the reset password page."
1816
1821
  msgid "A welcome message that will be displayed instead the default one"
1817
1822
  msgstr "Väliaikainen viesti, joka näytetään salasanan nollaussivulla."
1818
1823
 
1819
- #: core/app_settings.py:495
1824
+ #: core/app_settings.py:483
1820
1825
  msgid "Custom RSS feed"
1821
1826
  msgstr "Mukautettu RSS-syöte"
1822
1827
 
1823
- #: core/app_settings.py:497
1828
+ #: core/app_settings.py:485
1824
1829
  msgid "Display custom RSS feed to resellers and domain administrators"
1825
1830
  msgstr ""
1826
1831
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1827
1832
 
1828
- #: core/app_settings.py:506
1833
+ #: core/app_settings.py:494
1829
1834
  #, fuzzy
1830
1835
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1831
1836
  msgid "Display custom RSS feed to super admins"
1832
1837
  msgstr ""
1833
1838
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1834
1839
 
1835
- #: core/app_settings.py:509
1840
+ #: core/app_settings.py:497
1836
1841
  #, fuzzy
1837
1842
  #| msgid "Display custom RSS feed to resellers and domain administrators"
1838
1843
  msgid "Display custom RSS feed also to super administrators"
1839
1844
  msgstr ""
1840
1845
  "Näytä mukautettu RSS-syöte jälleenmyyjille ja verkkotunnuksen ylläpitäjille"
1841
1846
 
1842
- #: core/app_settings.py:517
1847
+ #: core/app_settings.py:505
1843
1848
  msgid "Hide features widget"
1844
1849
  msgstr "Piilota ominaisuudet-widget"
1845
1850
 
1846
- #: core/app_settings.py:519
1851
+ #: core/app_settings.py:507
1847
1852
  msgid "Hide features widget for resellers and domain administrators"
1848
1853
  msgstr ""
1849
1854
  "Piilota ominaisuudet-widget jälleenmyyjiltä ja verkkotunnuksen ylläpitäjiltä"
1850
1855
 
1851
- #: core/app_settings.py:531
1856
+ #: core/app_settings.py:519
1852
1857
  msgid "Theme"
1853
1858
  msgstr ""
1854
1859
 
1855
- #: core/app_settings.py:537
1860
+ #: core/app_settings.py:525
1856
1861
  msgid "Primary theme color"
1857
1862
  msgstr ""
1858
1863
 
1859
- #: core/app_settings.py:539
1864
+ #: core/app_settings.py:527
1860
1865
  msgid ""
1861
1866
  "Primary color of the theme (hexadecimal code), used as the background color "
1862
1867
  "of the left menu for example"
1863
1868
  msgstr ""
1864
1869
 
1865
- #: core/app_settings.py:548
1870
+ #: core/app_settings.py:536
1866
1871
  msgid "Primary theme color (lighter version)"
1867
1872
  msgstr ""
1868
1873
 
1869
- #: core/app_settings.py:551 core/app_settings.py:563
1874
+ #: core/app_settings.py:539 core/app_settings.py:551
1870
1875
  msgid "Primary color of the theme (hexadecimal code)"
1871
1876
  msgstr ""
1872
1877
 
1873
- #: core/app_settings.py:560
1878
+ #: core/app_settings.py:548
1874
1879
  msgid "Primary theme color (darker version)"
1875
1880
  msgstr ""
1876
1881
 
1877
- #: core/app_settings.py:571
1882
+ #: core/app_settings.py:559
1878
1883
  #, fuzzy
1879
1884
  #| msgid "Secondary email"
1880
1885
  msgid "Secondary theme color"
1881
1886
  msgstr "Toissijainen sähköpostiosoite"
1882
1887
 
1883
- #: core/app_settings.py:573
1888
+ #: core/app_settings.py:561
1884
1889
  msgid ""
1885
1890
  "Secondary color of the theme (hexadecimal code), used as the background "
1886
1891
  "color of some buttons for example"
1887
1892
  msgstr ""
1888
1893
 
1889
- #: core/app_settings.py:581
1894
+ #: core/app_settings.py:569
1890
1895
  msgid "Labels theme color"
1891
1896
  msgstr ""
1892
1897
 
1893
- #: core/app_settings.py:583
1898
+ #: core/app_settings.py:571
1894
1899
  msgid "Theme color for labels (hexadecimal code)"
1895
1900
  msgstr ""
1896
1901
 
1897
- #: core/app_settings.py:595
1902
+ #: core/app_settings.py:583
1898
1903
  msgid "Notifications"
1899
1904
  msgstr "Ilmoitukset"
1900
1905
 
1901
- #: core/app_settings.py:601
1906
+ #: core/app_settings.py:589
1902
1907
  msgid "Sender address"
1903
1908
  msgstr "Lähettäjän osoite"
1904
1909
 
1905
- #: core/app_settings.py:603
1910
+ #: core/app_settings.py:591
1906
1911
  msgid "Email address used to send notifications."
1907
1912
  msgstr "Ilmoitusten lähettämiseen käytettävä sähköpostiosoite."
1908
1913
 
1909
- #: core/app_settings.py:614
1914
+ #: core/app_settings.py:602
1910
1915
  msgid "Public API"
1911
1916
  msgstr "Julkinen API"
1912
1917
 
1913
- #: core/app_settings.py:620
1918
+ #: core/app_settings.py:608
1914
1919
  msgid "Enable communication"
1915
1920
  msgstr "Ota viestintä käyttöön"
1916
1921
 
1917
- #: core/app_settings.py:622 core/app_settings.py:632
1922
+ #: core/app_settings.py:610 core/app_settings.py:620
1918
1923
  msgid "Automatically checks if a newer version is available"
1919
1924
  msgstr "Tarkistaa automaattisesti, onko uudempi versio saatavana"
1920
1925
 
1921
- #: core/app_settings.py:629
1926
+ #: core/app_settings.py:617
1922
1927
  msgid "Check new versions"
1923
1928
  msgstr "Tarkista uudet versiot"
1924
1929
 
1925
- #: core/app_settings.py:640
1930
+ #: core/app_settings.py:628
1926
1931
  msgid "Send an email when new versions are found"
1927
1932
  msgstr "Lähetä sähköpostia, kun uusia versioita löytyy"
1928
1933
 
1929
- #: core/app_settings.py:644
1934
+ #: core/app_settings.py:632
1930
1935
  msgid "Send an email to notify admins about new versions"
1931
1936
  msgstr ""
1932
1937
  "Lähetä sähköpostiviesti, joka ilmoittaa ylläpitäjille uusista versioista"
1933
1938
 
1934
- #: core/app_settings.py:651 sievefilters/constants.py:25
1939
+ #: core/app_settings.py:639 sievefilters/constants.py:25
1935
1940
  msgid "Recipient"
1936
1941
  msgstr "Vastaanottaja"
1937
1942
 
1938
- #: core/app_settings.py:654
1943
+ #: core/app_settings.py:642
1939
1944
  msgid "Recipient of new versions notification emails."
1940
1945
  msgstr "Uusia versioita koskevien ilmoitussähköpostiviestien vastaanottaja."
1941
1946
 
1942
- #: core/app_settings.py:661
1947
+ #: core/app_settings.py:649
1943
1948
  msgid "Send statistics"
1944
1949
  msgstr "Lähetä tilastot"
1945
1950
 
1946
- #: core/app_settings.py:664
1951
+ #: core/app_settings.py:652
1947
1952
  msgid "Send statistics to Modoboa public API (counters and used extensions)"
1948
1953
  msgstr ""
1949
1954
  "Lähetä tilastoja Modoboan julkiseen API:han (laskurit ja käytetyt "
1950
1955
  "laajennukset)"
1951
1956
 
1952
- #: core/app_settings.py:683
1957
+ #: core/app_settings.py:671
1953
1958
  #, fuzzy
1954
1959
  #| msgid "Inactive account threshold"
1955
1960
  msgid "Enable inactive account tracking"
1956
1961
  msgstr "Inaktiivisen tilin kynnysarvo"
1957
1962
 
1958
- #: core/app_settings.py:686
1963
+ #: core/app_settings.py:674
1959
1964
  msgid ""
1960
1965
  "Allow the administrator to set a threshold (in days) beyond which an account "
1961
1966
  "is considered inactive if the user hasn't logged in"
1962
1967
  msgstr ""
1963
1968
 
1964
- #: core/app_settings.py:695
1969
+ #: core/app_settings.py:683
1965
1970
  msgid "Inactive account threshold"
1966
1971
  msgstr "Inaktiivisen tilin kynnysarvo"
1967
1972
 
1968
- #: core/app_settings.py:698
1973
+ #: core/app_settings.py:686
1969
1974
  msgid ""
1970
1975
  "An account with a last login date greater than this threshold (in days) will "
1971
1976
  "be considered as inactive"
@@ -1973,48 +1978,38 @@ msgstr ""
1973
1978
  "Tiliä, jonka viimeisin kirjautumispäivä on suurempi kuin tämä kynnysarvo "
1974
1979
  "(päivinä), pidetään inaktiivisena"
1975
1980
 
1976
- #: core/app_settings.py:707
1981
+ #: core/app_settings.py:695
1977
1982
  msgid "Top notifications check interval"
1978
1983
  msgstr "Ylimpien ilmoitusten tarkistusväli"
1979
1984
 
1980
- #: core/app_settings.py:710
1985
+ #: core/app_settings.py:698
1981
1986
  msgid "Interval between two top notification checks (in seconds)"
1982
1987
  msgstr "Kahden ylimmän ilmoituksen tarkistuksen välinen aika (sekunteina)"
1983
1988
 
1984
- #: core/app_settings.py:717
1989
+ #: core/app_settings.py:705
1985
1990
  msgid "Maximum log record age"
1986
1991
  msgstr "Lokitiedoston enimmäisikä"
1987
1992
 
1988
- #: core/app_settings.py:719
1993
+ #: core/app_settings.py:707
1989
1994
  msgid "The maximum age in days of a log record"
1990
1995
  msgstr "Lokitietueen enimmäisikä päivinä"
1991
1996
 
1992
- #: core/app_settings.py:727
1997
+ #: core/app_settings.py:715
1993
1998
  msgid "Retention time in message history"
1994
1999
  msgstr ""
1995
2000
 
1996
- #: core/app_settings.py:730
2001
+ #: core/app_settings.py:718
1997
2002
  msgid "Retention time (in days) of a message in the message history section"
1998
2003
  msgstr ""
1999
2004
 
2000
- #: core/app_settings.py:737
2005
+ #: core/app_settings.py:725
2001
2006
  msgid "Items per page"
2002
2007
  msgstr "Kohteita per sivu"
2003
2008
 
2004
- #: core/app_settings.py:739
2009
+ #: core/app_settings.py:727
2005
2010
  msgid "Number of displayed items per page"
2006
2011
  msgstr "Näytettävien kohteiden määrä sivua kohti"
2007
2012
 
2008
- #: core/app_settings.py:746
2009
- msgid "Default top redirection"
2010
- msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
2011
-
2012
- #: core/app_settings.py:748
2013
- msgid "The default redirection used when no application is specified"
2014
- msgstr ""
2015
- "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
2016
- "määritetty"
2017
-
2018
2013
  #: core/checks.py:15
2019
2014
  msgid ""
2020
2015
  "You have USE_TZ set to False, this may result in issues during transitions "
@@ -2356,7 +2351,7 @@ msgid "Not resolved"
2356
2351
  msgstr "Ei määritelty"
2357
2352
 
2358
2353
  #: dmarc/models.py:10 dmarc/models.py:16 pdfcredentials/constants.py:7
2359
- #: webmail/constants.py:18
2354
+ #: webmail/constants.py:38
2360
2355
  msgid "None"
2361
2356
  msgstr ""
2362
2357
 
@@ -3326,7 +3321,7 @@ msgstr ""
3326
3321
  msgid "is not"
3327
3322
  msgstr ""
3328
3323
 
3329
- #: sievefilters/constants.py:23 webmail/lib/imapemail.py:304
3324
+ #: sievefilters/constants.py:23 webmail/lib/imapemail.py:302
3330
3325
  msgid "Subject"
3331
3326
  msgstr "Aihe"
3332
3327
 
@@ -3588,25 +3583,25 @@ msgstr ""
3588
3583
  msgid "SMTP settings"
3589
3584
  msgstr "LDAP-asetukset"
3590
3585
 
3591
- #: webmail/app_settings.py:75
3586
+ #: webmail/app_settings.py:75 webmail/app_settings.py:121
3592
3587
  #, fuzzy
3593
3588
  #| msgid "IP address of your Modoboa server"
3594
3589
  msgid "Address of your SMTP server"
3595
3590
  msgstr "Modoboa-palvelimen IP-osoite"
3596
3591
 
3597
- #: webmail/app_settings.py:82
3592
+ #: webmail/app_settings.py:82 webmail/app_settings.py:128
3598
3593
  #, fuzzy
3599
3594
  #| msgid "Use a secured connection"
3600
3595
  msgid "Secured connection mode"
3601
3596
  msgstr "Käytä suojattua yhteyttä"
3602
3597
 
3603
- #: webmail/app_settings.py:84
3598
+ #: webmail/app_settings.py:84 webmail/app_settings.py:130
3604
3599
  #, fuzzy
3605
3600
  #| msgid "Use an SSL/STARTTLS connection to access the LDAP server"
3606
3601
  msgid "Use a secured connection to access SMTP server"
3607
3602
  msgstr "Käytä SSL/STARTTLS-yhteyttä LDAP-palvelimen käyttämiseen"
3608
3603
 
3609
- #: webmail/app_settings.py:93
3604
+ #: webmail/app_settings.py:93 webmail/app_settings.py:139
3610
3605
  #, fuzzy
3611
3606
  #| msgid "IP address of your Modoboa server"
3612
3607
  msgid "Listening port of your SMTP server"
@@ -3623,11 +3618,17 @@ msgstr "Tunnistusmenetelmä"
3623
3618
  msgid "Server needs authentication"
3624
3619
  msgstr "LDAP-todennusasetukset"
3625
3620
 
3626
- #: webmail/app_settings.py:124
3621
+ #: webmail/app_settings.py:113
3622
+ #, fuzzy
3623
+ #| msgid "LDAP settings"
3624
+ msgid "Scheduling settings"
3625
+ msgstr "LDAP-asetukset"
3626
+
3627
+ #: webmail/app_settings.py:161
3627
3628
  msgid "Default message display mode"
3628
3629
  msgstr ""
3629
3630
 
3630
- #: webmail/app_settings.py:126
3631
+ #: webmail/app_settings.py:163
3631
3632
  #, fuzzy
3632
3633
  #| msgid "The default redirection used when no application is specified"
3633
3634
  msgid "The default mode used when displaying a message"
@@ -3635,97 +3636,97 @@ msgstr ""
3635
3636
  "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3636
3637
  "määritetty"
3637
3638
 
3638
- #: webmail/app_settings.py:133
3639
+ #: webmail/app_settings.py:170
3639
3640
  msgid "Enable HTML links display"
3640
3641
  msgstr ""
3641
3642
 
3642
- #: webmail/app_settings.py:136
3643
+ #: webmail/app_settings.py:173
3643
3644
  msgid "Enable/Disable HTML links display"
3644
3645
  msgstr ""
3645
3646
 
3646
- #: webmail/app_settings.py:147
3647
+ #: webmail/app_settings.py:184
3647
3648
  msgid "Sets the maximum number of messages displayed in a page"
3648
3649
  msgstr ""
3649
3650
 
3650
- #: webmail/app_settings.py:154
3651
+ #: webmail/app_settings.py:191
3651
3652
  msgid "Listing refresh rate"
3652
3653
  msgstr ""
3653
3654
 
3654
- #: webmail/app_settings.py:156
3655
+ #: webmail/app_settings.py:193
3655
3656
  msgid "Automatic listing refresh rate (in secconds)"
3656
3657
  msgstr ""
3657
3658
 
3658
- #: webmail/app_settings.py:163
3659
+ #: webmail/app_settings.py:200
3659
3660
  msgid "Folder container's width"
3660
3661
  msgstr ""
3661
3662
 
3662
- #: webmail/app_settings.py:165
3663
+ #: webmail/app_settings.py:202
3663
3664
  msgid "The width of the folder list container"
3664
3665
  msgstr ""
3665
3666
 
3666
- #: webmail/app_settings.py:176
3667
+ #: webmail/app_settings.py:213
3667
3668
  #, fuzzy
3668
3669
  #| msgid "Create aliases"
3669
3670
  msgid "Folders"
3670
3671
  msgstr "Luo aliaksia"
3671
3672
 
3672
- #: webmail/app_settings.py:182
3673
+ #: webmail/app_settings.py:219
3673
3674
  #, fuzzy
3674
3675
  #| msgid "Create aliases"
3675
3676
  msgid "Trash folder"
3676
3677
  msgstr "Luo aliaksia"
3677
3678
 
3678
- #: webmail/app_settings.py:184
3679
+ #: webmail/app_settings.py:221
3679
3680
  #, fuzzy
3680
3681
  #| msgid "rejected messages"
3681
3682
  msgid "Folder where deleted messages go"
3682
3683
  msgstr "hylätyt viestit"
3683
3684
 
3684
- #: webmail/app_settings.py:191
3685
+ #: webmail/app_settings.py:228
3685
3686
  #, fuzzy
3686
3687
  #| msgid "Create aliases"
3687
3688
  msgid "Sent folder"
3688
3689
  msgstr "Luo aliaksia"
3689
3690
 
3690
- #: webmail/app_settings.py:193
3691
+ #: webmail/app_settings.py:230
3691
3692
  msgid "Folder where copies of sent messages go"
3692
3693
  msgstr ""
3693
3694
 
3694
- #: webmail/app_settings.py:200
3695
+ #: webmail/app_settings.py:237
3695
3696
  #, fuzzy
3696
3697
  #| msgid "Create aliases"
3697
3698
  msgid "Drafts folder"
3698
3699
  msgstr "Luo aliaksia"
3699
3700
 
3700
- #: webmail/app_settings.py:201
3701
+ #: webmail/app_settings.py:238
3701
3702
  msgid "Folder where drafts go"
3702
3703
  msgstr ""
3703
3704
 
3704
- #: webmail/app_settings.py:207
3705
+ #: webmail/app_settings.py:244
3705
3706
  #, fuzzy
3706
3707
  #| msgid "Create aliases"
3707
3708
  msgid "Junk folder"
3708
3709
  msgstr "Luo aliaksia"
3709
3710
 
3710
- #: webmail/app_settings.py:209
3711
+ #: webmail/app_settings.py:246
3711
3712
  #, fuzzy
3712
3713
  #| msgid "rejected messages"
3713
3714
  msgid "Folder where junk messages should go"
3714
3715
  msgstr "hylätyt viestit"
3715
3716
 
3716
- #: webmail/app_settings.py:220
3717
+ #: webmail/app_settings.py:257
3717
3718
  #, fuzzy
3718
3719
  #| msgid "sent messages"
3719
3720
  msgid "Composing messages"
3720
3721
  msgstr "lähetetyt viestit"
3721
3722
 
3722
- #: webmail/app_settings.py:226
3723
+ #: webmail/app_settings.py:263
3723
3724
  #, fuzzy
3724
3725
  #| msgid "Default top redirection"
3725
3726
  msgid "Default editor"
3726
3727
  msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
3727
3728
 
3728
- #: webmail/app_settings.py:228
3729
+ #: webmail/app_settings.py:265
3729
3730
  #, fuzzy
3730
3731
  #| msgid "The default redirection used when no application is specified"
3731
3732
  msgid "The default editor to use when composing a message"
@@ -3733,11 +3734,11 @@ msgstr ""
3733
3734
  "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3734
3735
  "määritetty"
3735
3736
 
3736
- #: webmail/app_settings.py:235
3737
+ #: webmail/app_settings.py:272
3737
3738
  msgid "Signature text"
3738
3739
  msgstr ""
3739
3740
 
3740
- #: webmail/app_settings.py:237
3741
+ #: webmail/app_settings.py:274
3741
3742
  msgid "User defined email signature"
3742
3743
  msgstr ""
3743
3744
 
@@ -3753,47 +3754,74 @@ msgstr "Palvelimen osoite"
3753
3754
  msgid "Failed to remove attachment: "
3754
3755
  msgstr "LDAP-tilin luominen epäonnistui: {}"
3755
3756
 
3756
- #: webmail/lib/imapemail.py:272
3757
+ #: webmail/lib/imapemail.py:270
3757
3758
  msgid "wrote:"
3758
3759
  msgstr ""
3759
3760
 
3760
- #: webmail/lib/imapemail.py:306
3761
+ #: webmail/lib/imapemail.py:304
3761
3762
  msgid "Date"
3762
3763
  msgstr "Päivämäärä"
3763
3764
 
3764
- #: webmail/lib/imapemail.py:322 webmail/lib/imapemail.py:325
3765
+ #: webmail/lib/imapemail.py:320 webmail/lib/imapemail.py:323
3765
3766
  #, fuzzy
3766
3767
  #| msgid "sent messages"
3767
3768
  msgid "Original message"
3768
3769
  msgstr "lähetetyt viestit"
3769
3770
 
3770
- #: webmail/lib/imaputils.py:221
3771
+ #: webmail/lib/imaputils.py:222
3771
3772
  msgid "Failed to retrieve hierarchy delimiter"
3772
3773
  msgstr ""
3773
3774
 
3774
- #: webmail/lib/imaputils.py:472
3775
+ #: webmail/lib/imaputils.py:478
3775
3776
  msgid "Inbox"
3776
3777
  msgstr ""
3777
3778
 
3778
- #: webmail/lib/imaputils.py:476
3779
+ #: webmail/lib/imaputils.py:482
3779
3780
  #, fuzzy
3780
3781
  #| msgid "Create aliases"
3781
3782
  msgid "Drafts"
3782
3783
  msgstr "Luo aliaksia"
3783
3784
 
3784
- #: webmail/lib/imaputils.py:481
3785
+ #: webmail/lib/imaputils.py:487
3785
3786
  msgid "Junk"
3786
3787
  msgstr ""
3787
3788
 
3788
- #: webmail/lib/imaputils.py:486
3789
+ #: webmail/lib/imaputils.py:492
3789
3790
  msgid "Sent"
3790
3791
  msgstr ""
3791
3792
 
3792
- #: webmail/lib/imaputils.py:491
3793
+ #: webmail/lib/imaputils.py:500
3794
+ msgid "Scheduled"
3795
+ msgstr ""
3796
+
3797
+ #: webmail/lib/imaputils.py:507
3793
3798
  msgid "Trash"
3794
3799
  msgstr ""
3795
3800
 
3796
- #: webmail/viewsets.py:357
3801
+ #: webmail/serializers.py:220
3802
+ msgid "Moving scheduled messages is forbidden"
3803
+ msgstr ""
3804
+
3805
+ #: webmail/serializers.py:253
3806
+ msgid "Only datetime in the future is allowed"
3807
+ msgstr ""
3808
+
3809
+ #: webmail/serializers.py:258
3810
+ msgid "Provived datetime must be one minute in the future at least"
3811
+ msgstr ""
3812
+
3813
+ #: webmail/viewsets.py:359
3797
3814
  #, python-format
3798
3815
  msgid "Attachment is too big (limit: %s)"
3799
3816
  msgstr ""
3817
+
3818
+ #~ msgid "User profile"
3819
+ #~ msgstr "Käyttäjäprofiili"
3820
+
3821
+ #~ msgid "Default top redirection"
3822
+ #~ msgstr "Oletusarvoinen ylhäältä uudelleenohjaus"
3823
+
3824
+ #~ msgid "The default redirection used when no application is specified"
3825
+ #~ msgstr ""
3826
+ #~ "Oletusarvoinen uudelleenohjaus, jota käytetään, kun sovellusta ei ole "
3827
+ #~ "määritetty"