From 06702794c4277c381f094adc3d806f25ce34a888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Alix?= Date: Mon, 25 Mar 2024 16:35:57 +0100 Subject: [PATCH 01/10] mail_notification_clean_status_error: remove notifications in error --- .../README.rst | 96 ++++ .../__init__.py | 1 + .../__manifest__.py | 15 + .../models/__init__.py | 1 + .../models/mail_notification.py | 21 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 11 + .../static/description/index.html | 433 ++++++++++++++++++ .../tests/__init__.py | 1 + .../tests/test_gc_notifications.py | 45 ++ 10 files changed, 627 insertions(+) create mode 100644 mail_notification_clean_status_error/README.rst create mode 100644 mail_notification_clean_status_error/__init__.py create mode 100644 mail_notification_clean_status_error/__manifest__.py create mode 100644 mail_notification_clean_status_error/models/__init__.py create mode 100644 mail_notification_clean_status_error/models/mail_notification.py create mode 100644 mail_notification_clean_status_error/readme/CONTRIBUTORS.rst create mode 100644 mail_notification_clean_status_error/readme/DESCRIPTION.rst create mode 100644 mail_notification_clean_status_error/static/description/index.html create mode 100644 mail_notification_clean_status_error/tests/__init__.py create mode 100644 mail_notification_clean_status_error/tests/test_gc_notifications.py diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst new file mode 100644 index 000000000..28aca1113 --- /dev/null +++ b/mail_notification_clean_status_error/README.rst @@ -0,0 +1,96 @@ +=================================================== +Mail Notification - Clean up notifications in error +=================================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:603557fed3ff9abb0574f2481df84d26a699760ac64fcf03d1b9f9841d6f58d4 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png + :target: https://odoo-community.org/page/development-status + :alt: Production/Stable +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github + :target: https://github.com/OCA/social/tree/14.0/mail_notification_clean_status_error + :alt: OCA/social +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_notification_clean_status_error + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Delete email notifications in error. + +The scheduled action *Notification: Delete Notifications older than 6 Month* +provided by Odoo is responsible to delete notifications that have been sent +successfully. + +However, it doesn't delete the notifications that could not be sent, and their +number could keep growing over time, impacting the performance of some queries +related to the chatter. + +This module extends the scheduled action of Odoo to also delete such notifications. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* `Camptocamp `_: + + * Sébastien Alix + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-sebalix| image:: https://github.com/sebalix.png?size=40px + :target: https://github.com/sebalix + :alt: sebalix + +Current `maintainer `__: + +|maintainer-sebalix| + +This module is part of the `OCA/social `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_notification_clean_status_error/__init__.py b/mail_notification_clean_status_error/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/mail_notification_clean_status_error/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mail_notification_clean_status_error/__manifest__.py b/mail_notification_clean_status_error/__manifest__.py new file mode 100644 index 000000000..5bc730b6f --- /dev/null +++ b/mail_notification_clean_status_error/__manifest__.py @@ -0,0 +1,15 @@ +# Copyright 2024 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) +{ + "name": "Mail Notification - Clean up notifications in error", + "summary": "Extend Odoo scheduled action to also delete notifications in error.", + "version": "14.0.1.0.0", + "category": "Mail", + "website": "https://github.com/OCA/social", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["mail"], + "development_status": "Production/Stable", + "maintainers": ["sebalix"], +} diff --git a/mail_notification_clean_status_error/models/__init__.py b/mail_notification_clean_status_error/models/__init__.py new file mode 100644 index 000000000..f7ba6ce41 --- /dev/null +++ b/mail_notification_clean_status_error/models/__init__.py @@ -0,0 +1 @@ +from . import mail_notification diff --git a/mail_notification_clean_status_error/models/mail_notification.py b/mail_notification_clean_status_error/models/mail_notification.py new file mode 100644 index 000000000..1547d0c02 --- /dev/null +++ b/mail_notification_clean_status_error/models/mail_notification.py @@ -0,0 +1,21 @@ +# Copyright 2024 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import api, fields, models + + +class MailNotification(models.Model): + _inherit = "mail.notification" + + @api.model + def _gc_notifications(self, max_age_days=180): + res = super()._gc_notifications(max_age_days=max_age_days) + # Extend GC to also delete notifications in error + read_date = fields.Datetime.subtract(fields.Datetime.now(), days=max_age_days) + domain = [ + ("is_read", "=", True), + ("read_date", "<", read_date), + ("notification_status", "in", ("bounce", "exception")), + ] + self.search(domain).unlink() + return res diff --git a/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst b/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..dc1430363 --- /dev/null +++ b/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Camptocamp `_: + + * Sébastien Alix diff --git a/mail_notification_clean_status_error/readme/DESCRIPTION.rst b/mail_notification_clean_status_error/readme/DESCRIPTION.rst new file mode 100644 index 000000000..f716f4552 --- /dev/null +++ b/mail_notification_clean_status_error/readme/DESCRIPTION.rst @@ -0,0 +1,11 @@ +Delete email notifications in error. + +The scheduled action *Notification: Delete Notifications older than 6 Month* +provided by Odoo is responsible to delete notifications that have been sent +successfully. + +However, it doesn't delete the notifications that could not be sent, and their +number could keep growing over time, impacting the performance of some queries +related to the chatter. + +This module extends the scheduled action of Odoo to also delete such notifications. diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html new file mode 100644 index 000000000..f2cf1955d --- /dev/null +++ b/mail_notification_clean_status_error/static/description/index.html @@ -0,0 +1,433 @@ + + + + + + +Mail Notification - Clean up notifications in error + + + +
+

Mail Notification - Clean up notifications in error

+ + +

Production/Stable License: AGPL-3 OCA/social Translate me on Weblate Try me on Runboat

+

Delete email notifications in error.

+

The scheduled action Notification: Delete Notifications older than 6 Month +provided by Odoo is responsible to delete notifications that have been sent +successfully.

+

However, it doesn’t delete the notifications that could not be sent, and their +number could keep growing over time, impacting the performance of some queries +related to the chatter.

+

This module extends the scheduled action of Odoo to also delete such notifications.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

sebalix

+

This module is part of the OCA/social project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/mail_notification_clean_status_error/tests/__init__.py b/mail_notification_clean_status_error/tests/__init__.py new file mode 100644 index 000000000..eb90d9fb3 --- /dev/null +++ b/mail_notification_clean_status_error/tests/__init__.py @@ -0,0 +1 @@ +from . import test_gc_notifications diff --git a/mail_notification_clean_status_error/tests/test_gc_notifications.py b/mail_notification_clean_status_error/tests/test_gc_notifications.py new file mode 100644 index 000000000..a195124df --- /dev/null +++ b/mail_notification_clean_status_error/tests/test_gc_notifications.py @@ -0,0 +1,45 @@ +# Copyright 2024 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields +from odoo.tests.common import SavepointCase + + +class TestNotificationErrorCleanUp(SavepointCase): + @classmethod + def setUpClass(cls): + super(TestNotificationErrorCleanUp, cls).setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.partner = cls.env.ref("base.res_partner_address_28") + cls.message = cls.env["mail.message"].create( + { + "model": "res.partner", + "res_id": cls.partner.id, + "body": "TEST", + "message_type": "email", + "subtype_id": cls.env.ref("mail.mt_comment").id, + "author_id": cls.partner.id, + "date": "2024-03-26", + } + ) + cls.notification = cls.env["mail.notification"].create( + { + "mail_message_id": cls.message.id, + "res_partner_id": cls.partner.id, + "notification_type": "email", + "notification_status": "bounce", + } + ) + + def test_notification_in_error_not_read(self): + # While the notification is not read, it is not deleted + self.env["mail.notification"]._gc_notifications(max_age_days=1) + self.assertTrue(self.notification.exists()) + # Once the notification is read, the GC will delete it + # NOTE: update the read data in two steps as 'read_date' is overwritten + # when 'is_read' is set. + read_date = fields.Datetime.subtract(fields.Datetime.now(), days=2) + self.notification.is_read = True + self.notification.read_date = read_date + self.env["mail.notification"]._gc_notifications(max_age_days=1) + self.assertFalse(self.notification.exists()) From ab4455dd9e2c5f02c2860970c325cc80f68b115d Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 1 Apr 2024 08:00:31 +0000 Subject: [PATCH 02/10] [UPD] Update mail_notification_clean_status_error.pot --- .../mail_notification_clean_status_error.pot | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot diff --git a/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot new file mode 100644 index 000000000..158fa43f3 --- /dev/null +++ b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_notification_clean_status_error +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: mail_notification_clean_status_error +#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification__display_name +msgid "Display Name" +msgstr "" + +#. module: mail_notification_clean_status_error +#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification__id +msgid "ID" +msgstr "" + +#. module: mail_notification_clean_status_error +#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_notification_clean_status_error +#: model:ir.model,name:mail_notification_clean_status_error.model_mail_notification +msgid "Message Notifications" +msgstr "" From 974b7483c64d3a7b43e6a342b7d0545e031215a3 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 1 Apr 2024 08:06:07 +0000 Subject: [PATCH 03/10] [BOT] post-merge updates --- mail_notification_clean_status_error/README.rst | 2 +- .../__manifest__.py | 2 +- .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 3 +-- 4 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 mail_notification_clean_status_error/static/description/icon.png diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst index 28aca1113..23e2b2660 100644 --- a/mail_notification_clean_status_error/README.rst +++ b/mail_notification_clean_status_error/README.rst @@ -7,7 +7,7 @@ Mail Notification - Clean up notifications in error !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:603557fed3ff9abb0574f2481df84d26a699760ac64fcf03d1b9f9841d6f58d4 + !! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/mail_notification_clean_status_error/__manifest__.py b/mail_notification_clean_status_error/__manifest__.py index 5bc730b6f..64d27d66c 100644 --- a/mail_notification_clean_status_error/__manifest__.py +++ b/mail_notification_clean_status_error/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Mail Notification - Clean up notifications in error", "summary": "Extend Odoo scheduled action to also delete notifications in error.", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "category": "Mail", "website": "https://github.com/OCA/social", "author": "Camptocamp, Odoo Community Association (OCA)", diff --git a/mail_notification_clean_status_error/static/description/icon.png b/mail_notification_clean_status_error/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html index f2cf1955d..208c5a46e 100644 --- a/mail_notification_clean_status_error/static/description/index.html +++ b/mail_notification_clean_status_error/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,7 +366,7 @@

Mail Notification - Clean up notifications in error

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:603557fed3ff9abb0574f2481df84d26a699760ac64fcf03d1b9f9841d6f58d4 +!! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Production/Stable License: AGPL-3 OCA/social Translate me on Weblate Try me on Runboat

Delete email notifications in error.

From e96039d5e87f83ae5c46c036bffc249d67304a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=C3=B4i=20=28Ki=C3=AAn=20Kim=29?= Date: Fri, 4 Oct 2024 14:36:21 +0700 Subject: [PATCH 04/10] [IMP] mail_notification_clean_status_error: pre-commit auto fixes --- .../README.rst | 35 ++++++++++--------- .../pyproject.toml | 3 ++ .../readme/CONTRIBUTORS.md | 2 ++ .../readme/CONTRIBUTORS.rst | 3 -- .../readme/DESCRIPTION.md | 12 +++++++ .../readme/DESCRIPTION.rst | 11 ------ .../static/description/index.html | 32 +++++++++-------- .../tests/test_gc_notifications.py | 2 +- 8 files changed, 54 insertions(+), 46 deletions(-) create mode 100644 mail_notification_clean_status_error/pyproject.toml create mode 100644 mail_notification_clean_status_error/readme/CONTRIBUTORS.md delete mode 100644 mail_notification_clean_status_error/readme/CONTRIBUTORS.rst create mode 100644 mail_notification_clean_status_error/readme/DESCRIPTION.md delete mode 100644 mail_notification_clean_status_error/readme/DESCRIPTION.rst diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst index 23e2b2660..0fc9d91c1 100644 --- a/mail_notification_clean_status_error/README.rst +++ b/mail_notification_clean_status_error/README.rst @@ -17,28 +17,29 @@ Mail Notification - Clean up notifications in error :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github - :target: https://github.com/OCA/social/tree/14.0/mail_notification_clean_status_error + :target: https://github.com/OCA/social/tree/18.0/mail_notification_clean_status_error :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_notification_clean_status_error + :target: https://translation.odoo-community.org/projects/social-18-0/social-18-0-mail_notification_clean_status_error :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=14.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| Delete email notifications in error. -The scheduled action *Notification: Delete Notifications older than 6 Month* -provided by Odoo is responsible to delete notifications that have been sent -successfully. +The scheduled action *Notification: Delete Notifications older than 6 +Month* provided by Odoo is responsible to delete notifications that have +been sent successfully. -However, it doesn't delete the notifications that could not be sent, and their -number could keep growing over time, impacting the performance of some queries -related to the chatter. +However, it doesn't delete the notifications that could not be sent, and +their number could keep growing over time, impacting the performance of +some queries related to the chatter. -This module extends the scheduled action of Odoo to also delete such notifications. +This module extends the scheduled action of Odoo to also delete such +notifications. **Table of contents** @@ -51,7 +52,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -59,19 +60,19 @@ Credits ======= Authors -~~~~~~~ +------- * Camptocamp Contributors -~~~~~~~~~~~~ +------------ -* `Camptocamp `_: +- `Camptocamp `__: - * Sébastien Alix + - Sébastien Alix Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -91,6 +92,6 @@ Current `maintainer `__: |maintainer-sebalix| -This module is part of the `OCA/social `_ project on GitHub. +This module is part of the `OCA/social `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_notification_clean_status_error/pyproject.toml b/mail_notification_clean_status_error/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/mail_notification_clean_status_error/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mail_notification_clean_status_error/readme/CONTRIBUTORS.md b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..5c799a961 --- /dev/null +++ b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- [Camptocamp](https://www.camptocamp.com): + - Sébastien Alix \<\> diff --git a/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst b/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst deleted file mode 100644 index dc1430363..000000000 --- a/mail_notification_clean_status_error/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* `Camptocamp `_: - - * Sébastien Alix diff --git a/mail_notification_clean_status_error/readme/DESCRIPTION.md b/mail_notification_clean_status_error/readme/DESCRIPTION.md new file mode 100644 index 000000000..bc93e6da7 --- /dev/null +++ b/mail_notification_clean_status_error/readme/DESCRIPTION.md @@ -0,0 +1,12 @@ +Delete email notifications in error. + +The scheduled action *Notification: Delete Notifications older than 6 +Month* provided by Odoo is responsible to delete notifications that have +been sent successfully. + +However, it doesn't delete the notifications that could not be sent, and +their number could keep growing over time, impacting the performance of +some queries related to the chatter. + +This module extends the scheduled action of Odoo to also delete such +notifications. diff --git a/mail_notification_clean_status_error/readme/DESCRIPTION.rst b/mail_notification_clean_status_error/readme/DESCRIPTION.rst deleted file mode 100644 index f716f4552..000000000 --- a/mail_notification_clean_status_error/readme/DESCRIPTION.rst +++ /dev/null @@ -1,11 +0,0 @@ -Delete email notifications in error. - -The scheduled action *Notification: Delete Notifications older than 6 Month* -provided by Odoo is responsible to delete notifications that have been sent -successfully. - -However, it doesn't delete the notifications that could not be sent, and their -number could keep growing over time, impacting the performance of some queries -related to the chatter. - -This module extends the scheduled action of Odoo to also delete such notifications. diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html index 208c5a46e..cd78c2a80 100644 --- a/mail_notification_clean_status_error/static/description/index.html +++ b/mail_notification_clean_status_error/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -368,15 +369,16 @@

Mail Notification - Clean up notifications in error

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Production/Stable License: AGPL-3 OCA/social Translate me on Weblate Try me on Runboat

+

Production/Stable License: AGPL-3 OCA/social Translate me on Weblate Try me on Runboat

Delete email notifications in error.

-

The scheduled action Notification: Delete Notifications older than 6 Month -provided by Odoo is responsible to delete notifications that have been sent -successfully.

-

However, it doesn’t delete the notifications that could not be sent, and their -number could keep growing over time, impacting the performance of some queries -related to the chatter.

-

This module extends the scheduled action of Odoo to also delete such notifications.

+

The scheduled action Notification: Delete Notifications older than 6 +Month provided by Odoo is responsible to delete notifications that have +been sent successfully.

+

However, it doesn’t delete the notifications that could not be sent, and +their number could keep growing over time, impacting the performance of +some queries related to the chatter.

+

This module extends the scheduled action of Odoo to also delete such +notifications.

Table of contents

    @@ -394,7 +396,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

@@ -417,13 +419,15 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

sebalix

-

This module is part of the OCA/social project on GitHub.

+

This module is part of the OCA/social project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/mail_notification_clean_status_error/tests/test_gc_notifications.py b/mail_notification_clean_status_error/tests/test_gc_notifications.py index a195124df..b79945de4 100644 --- a/mail_notification_clean_status_error/tests/test_gc_notifications.py +++ b/mail_notification_clean_status_error/tests/test_gc_notifications.py @@ -8,7 +8,7 @@ class TestNotificationErrorCleanUp(SavepointCase): @classmethod def setUpClass(cls): - super(TestNotificationErrorCleanUp, cls).setUpClass() + super().setUpClass() cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) cls.partner = cls.env.ref("base.res_partner_address_28") cls.message = cls.env["mail.message"].create( From 876179cd90a3a688b83a1ebd0739ca8d4843b09f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=C3=B4i=20=28Ki=C3=AAn=20Kim=29?= Date: Fri, 4 Oct 2024 14:42:09 +0700 Subject: [PATCH 05/10] [MIG] mail_notification_clean_status_error: Migration to 18.0 --- .../README.rst | 28 +++++++++++++------ .../__manifest__.py | 4 +-- .../readme/CONTRIBUTORS.md | 3 ++ .../readme/CREDITS.md | 3 ++ .../static/description/index.html | 25 +++++++++++++---- .../tests/test_gc_notifications.py | 4 +-- 6 files changed, 49 insertions(+), 18 deletions(-) create mode 100644 mail_notification_clean_status_error/readme/CREDITS.md diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst index 0fc9d91c1..32488cbfe 100644 --- a/mail_notification_clean_status_error/README.rst +++ b/mail_notification_clean_status_error/README.rst @@ -16,14 +16,14 @@ Mail Notification - Clean up notifications in error .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 -.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github - :target: https://github.com/OCA/social/tree/18.0/mail_notification_clean_status_error - :alt: OCA/social +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmail-lightgray.png?logo=github + :target: https://github.com/OCA/mail/tree/18.0/mail_notification_clean_status_error + :alt: OCA/mail .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-18-0/social-18-0-mail_notification_clean_status_error + :target: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_notification_clean_status_error :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -49,10 +49,10 @@ notifications. Bug Tracker =========== -Bugs are tracked on `GitHub Issues `_. +Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -71,6 +71,18 @@ Contributors - Sébastien Alix +- `Trobz `__: + + - Khoi (Kien Kim) + +Other credits +------------- + +The migration of this module from 17.0 to 18.0 was financially supported +by: + +- Camptocamp. + Maintainers ----------- @@ -92,6 +104,6 @@ Current `maintainer `__: |maintainer-sebalix| -This module is part of the `OCA/social `_ project on GitHub. +This module is part of the `OCA/mail `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_notification_clean_status_error/__manifest__.py b/mail_notification_clean_status_error/__manifest__.py index 64d27d66c..72e3707be 100644 --- a/mail_notification_clean_status_error/__manifest__.py +++ b/mail_notification_clean_status_error/__manifest__.py @@ -3,9 +3,9 @@ { "name": "Mail Notification - Clean up notifications in error", "summary": "Extend Odoo scheduled action to also delete notifications in error.", - "version": "14.0.1.0.1", + "version": "18.0.1.0.0", "category": "Mail", - "website": "https://github.com/OCA/social", + "website": "https://github.com/OCA/mail", "author": "Camptocamp, Odoo Community Association (OCA)", "license": "AGPL-3", "installable": True, diff --git a/mail_notification_clean_status_error/readme/CONTRIBUTORS.md b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md index 5c799a961..1ba95526a 100644 --- a/mail_notification_clean_status_error/readme/CONTRIBUTORS.md +++ b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md @@ -1,2 +1,5 @@ - [Camptocamp](https://www.camptocamp.com): - Sébastien Alix \<\> + +- [Trobz](https://trobz.com): + - Khoi (Kien Kim) \<\> diff --git a/mail_notification_clean_status_error/readme/CREDITS.md b/mail_notification_clean_status_error/readme/CREDITS.md new file mode 100644 index 000000000..80354b7d2 --- /dev/null +++ b/mail_notification_clean_status_error/readme/CREDITS.md @@ -0,0 +1,3 @@ +The migration of this module from 17.0 to 18.0 was financially supported by: + +- Camptocamp. diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html index cd78c2a80..f687e7b40 100644 --- a/mail_notification_clean_status_error/static/description/index.html +++ b/mail_notification_clean_status_error/static/description/index.html @@ -369,7 +369,7 @@

Mail Notification - Clean up notifications in error

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Production/Stable License: AGPL-3 OCA/social Translate me on Weblate Try me on Runboat

+

Production/Stable License: AGPL-3 OCA/mail Translate me on Weblate Try me on Runboat

Delete email notifications in error.

The scheduled action Notification: Delete Notifications older than 6 Month provided by Odoo is responsible to delete notifications that have @@ -386,17 +386,18 @@

Mail Notification - Clean up notifications in error

  • Credits
  • Bug Tracker

    -

    Bugs are tracked on GitHub Issues. +

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    @@ -414,10 +415,22 @@

    Contributors

  • Sébastien Alix <sebastien.alix@camptocamp.com>
  • +
  • Trobz: +
  • + +
    +
    +

    Other credits

    +

    The migration of this module from 17.0 to 18.0 was financially supported +by:

    +
      +
    • Camptocamp.
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -427,7 +440,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    sebalix

    -

    This module is part of the OCA/social project on GitHub.

    +

    This module is part of the OCA/mail project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    diff --git a/mail_notification_clean_status_error/tests/test_gc_notifications.py b/mail_notification_clean_status_error/tests/test_gc_notifications.py index b79945de4..35050bda9 100644 --- a/mail_notification_clean_status_error/tests/test_gc_notifications.py +++ b/mail_notification_clean_status_error/tests/test_gc_notifications.py @@ -2,10 +2,10 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) from odoo import fields -from odoo.tests.common import SavepointCase +from odoo.tests.common import TransactionCase -class TestNotificationErrorCleanUp(SavepointCase): +class TestNotificationErrorCleanUp(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() From cf7a27d8489b2ab1c32796b30c0312c85c505a00 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 18 Nov 2024 07:50:29 +0000 Subject: [PATCH 06/10] [UPD] Update mail_notification_clean_status_error.pot --- .../mail_notification_clean_status_error.pot | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot index 158fa43f3..6dbdbcc86 100644 --- a/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot +++ b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,21 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: mail_notification_clean_status_error -#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification__display_name -msgid "Display Name" -msgstr "" - -#. module: mail_notification_clean_status_error -#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification__id -msgid "ID" -msgstr "" - -#. module: mail_notification_clean_status_error -#: model:ir.model.fields,field_description:mail_notification_clean_status_error.field_mail_notification____last_update -msgid "Last Modified on" -msgstr "" - #. module: mail_notification_clean_status_error #: model:ir.model,name:mail_notification_clean_status_error.model_mail_notification msgid "Message Notifications" From 4a420c0b833cadb517d183fe3c7e0fd1ef456246 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 18 Nov 2024 07:52:14 +0000 Subject: [PATCH 07/10] [BOT] post-merge updates --- mail_notification_clean_status_error/README.rst | 2 +- .../static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst index 32488cbfe..e3de8967e 100644 --- a/mail_notification_clean_status_error/README.rst +++ b/mail_notification_clean_status_error/README.rst @@ -7,7 +7,7 @@ Mail Notification - Clean up notifications in error !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 + !! source digest: sha256:bd9f5cb206148163f804bac6b092c415e864e167ac477e80fb6150e8c827d201 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html index f687e7b40..fd6d461c0 100644 --- a/mail_notification_clean_status_error/static/description/index.html +++ b/mail_notification_clean_status_error/static/description/index.html @@ -367,7 +367,7 @@

    Mail Notification - Clean up notifications in error

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:9a004084c3440966fc0ecdfebe40e185c6fc5e59542d7b6a1b3985edbfa5c708 +!! source digest: sha256:bd9f5cb206148163f804bac6b092c415e864e167ac477e80fb6150e8c827d201 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Production/Stable License: AGPL-3 OCA/mail Translate me on Weblate Try me on Runboat

    Delete email notifications in error.

    From b283c8021667c82256164f5730d3a79ffdddee51 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 19 Nov 2024 09:08:03 +0000 Subject: [PATCH 08/10] Added translation using Weblate (Italian) --- .../i18n/it.po | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 mail_notification_clean_status_error/i18n/it.po diff --git a/mail_notification_clean_status_error/i18n/it.po b/mail_notification_clean_status_error/i18n/it.po new file mode 100644 index 000000000..6f63b62e0 --- /dev/null +++ b/mail_notification_clean_status_error/i18n/it.po @@ -0,0 +1,20 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_notification_clean_status_error +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mail_notification_clean_status_error +#: model:ir.model,name:mail_notification_clean_status_error.model_mail_notification +msgid "Message Notifications" +msgstr "" From 083f545727fdb4a2e75aa90c8210115e257cbd6c Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 19 Nov 2024 09:08:12 +0000 Subject: [PATCH 09/10] Translated using Weblate (Italian) Currently translated at 100.0% (1 of 1 strings) Translation: mail-18.0/mail-18.0-mail_notification_clean_status_error Translate-URL: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_notification_clean_status_error/it/ --- mail_notification_clean_status_error/i18n/it.po | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mail_notification_clean_status_error/i18n/it.po b/mail_notification_clean_status_error/i18n/it.po index 6f63b62e0..a81047796 100644 --- a/mail_notification_clean_status_error/i18n/it.po +++ b/mail_notification_clean_status_error/i18n/it.po @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-11-19 11:52+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" #. module: mail_notification_clean_status_error #: model:ir.model,name:mail_notification_clean_status_error.model_mail_notification msgid "Message Notifications" -msgstr "" +msgstr "Notifiche messaggio" From 295e545fb9ff2d54a8718fd3db90a712ff1e4f9c Mon Sep 17 00:00:00 2001 From: prayag Date: Fri, 31 Jul 2026 11:14:43 +0530 Subject: [PATCH 10/10] [MIG] mail_notification_clean_status_error: Migration to 19.0 --- .../README.rst | 30 +++++++++------ .../__manifest__.py | 2 +- .../i18n/it.po | 2 +- .../mail_notification_clean_status_error.pot | 2 +- .../readme/CONTRIBUTORS.md | 2 + .../static/description/icon.png | Bin 9455 -> 0 bytes .../static/description/index.html | 32 ++++++++++------ .../tests/test_gc_notifications.py | 36 +++++++++++++++++- 8 files changed, 79 insertions(+), 27 deletions(-) delete mode 100644 mail_notification_clean_status_error/static/description/icon.png diff --git a/mail_notification_clean_status_error/README.rst b/mail_notification_clean_status_error/README.rst index e3de8967e..9ffe3185b 100644 --- a/mail_notification_clean_status_error/README.rst +++ b/mail_notification_clean_status_error/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =================================================== Mail Notification - Clean up notifications in error =================================================== @@ -13,17 +17,17 @@ Mail Notification - Clean up notifications in error .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status :alt: Production/Stable -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmail-lightgray.png?logo=github - :target: https://github.com/OCA/mail/tree/18.0/mail_notification_clean_status_error + :target: https://github.com/OCA/mail/tree/19.0/mail_notification_clean_status_error :alt: OCA/mail .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_notification_clean_status_error + :target: https://translation.odoo-community.org/projects/mail-19-0/mail-19-0-mail_notification_clean_status_error :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -52,7 +56,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -67,13 +71,17 @@ Authors Contributors ------------ -- `Camptocamp `__: +- `Camptocamp `__: + + - Sébastien Alix + +- `Trobz `__: - - Sébastien Alix + - Khoi (Kien Kim) -- `Trobz `__: +- CIT-Services <> - - Khoi (Kien Kim) +- Prayag Other credits ------------- @@ -81,7 +89,7 @@ Other credits The migration of this module from 17.0 to 18.0 was financially supported by: -- Camptocamp. +- Camptocamp. Maintainers ----------- @@ -104,6 +112,6 @@ Current `maintainer `__: |maintainer-sebalix| -This module is part of the `OCA/mail `_ project on GitHub. +This module is part of the `OCA/mail `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_notification_clean_status_error/__manifest__.py b/mail_notification_clean_status_error/__manifest__.py index 72e3707be..bfa7650e7 100644 --- a/mail_notification_clean_status_error/__manifest__.py +++ b/mail_notification_clean_status_error/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Mail Notification - Clean up notifications in error", "summary": "Extend Odoo scheduled action to also delete notifications in error.", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Mail", "website": "https://github.com/OCA/mail", "author": "Camptocamp, Odoo Community Association (OCA)", diff --git a/mail_notification_clean_status_error/i18n/it.po b/mail_notification_clean_status_error/i18n/it.po index a81047796..0b942122a 100644 --- a/mail_notification_clean_status_error/i18n/it.po +++ b/mail_notification_clean_status_error/i18n/it.po @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: 2024-11-19 11:52+0000\n" "Last-Translator: mymage \n" diff --git a/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot index 6dbdbcc86..62b71afbc 100644 --- a/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot +++ b/mail_notification_clean_status_error/i18n/mail_notification_clean_status_error.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/mail_notification_clean_status_error/readme/CONTRIBUTORS.md b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md index 1ba95526a..5a0fd2ea2 100644 --- a/mail_notification_clean_status_error/readme/CONTRIBUTORS.md +++ b/mail_notification_clean_status_error/readme/CONTRIBUTORS.md @@ -3,3 +3,5 @@ - [Trobz](https://trobz.com): - Khoi (Kien Kim) \<\> +- CIT-Services \<\> +- Prayag \<\> diff --git a/mail_notification_clean_status_error/static/description/icon.png b/mail_notification_clean_status_error/static/description/icon.png deleted file mode 100644 index 3a0328b516c4980e8e44cdb63fd945757ddd132d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I diff --git a/mail_notification_clean_status_error/static/description/index.html b/mail_notification_clean_status_error/static/description/index.html index fd6d461c0..967be5e31 100644 --- a/mail_notification_clean_status_error/static/description/index.html +++ b/mail_notification_clean_status_error/static/description/index.html @@ -3,7 +3,7 @@ -Mail Notification - Clean up notifications in error +README.rst -
    -

    Mail Notification - Clean up notifications in error

    +
    + + +Odoo Community Association + +
    +

    Mail Notification - Clean up notifications in error

    -

    Production/Stable License: AGPL-3 OCA/mail Translate me on Weblate Try me on Runboat

    +

    Production/Stable License: AGPL-3 OCA/mail Translate me on Weblate Try me on Runboat

    Delete email notifications in error.

    The scheduled action Notification: Delete Notifications older than 6 Month provided by Odoo is responsible to delete notifications that have @@ -393,23 +398,23 @@

    Mail Notification - Clean up notifications in error

    -

    Bug Tracker

    +

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

    +feedback.

    Do not contact contributors directly about support or help with technical issues.

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Camptocamp
    -

    Contributors

    +

    Contributors

    -

    Other credits

    +

    Other credits

    The migration of this module from 17.0 to 18.0 was financially supported by:

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -440,10 +447,11 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    sebalix

    -

    This module is part of the OCA/mail project on GitHub.

    +

    This module is part of the OCA/mail project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

    +
    diff --git a/mail_notification_clean_status_error/tests/test_gc_notifications.py b/mail_notification_clean_status_error/tests/test_gc_notifications.py index 35050bda9..c8b627a00 100644 --- a/mail_notification_clean_status_error/tests/test_gc_notifications.py +++ b/mail_notification_clean_status_error/tests/test_gc_notifications.py @@ -10,7 +10,7 @@ class TestNotificationErrorCleanUp(TransactionCase): def setUpClass(cls): super().setUpClass() cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) - cls.partner = cls.env.ref("base.res_partner_address_28") + cls.partner = cls.env.user.partner_id cls.message = cls.env["mail.message"].create( { "model": "res.partner", @@ -43,3 +43,37 @@ def test_notification_in_error_not_read(self): self.notification.read_date = read_date self.env["mail.notification"]._gc_notifications(max_age_days=1) self.assertFalse(self.notification.exists()) + + def test_notification_exception_status(self): + msg = self.env["mail.message"].create( + { + "model": "res.partner", + "res_id": self.partner.id, + "body": "TEST EXC", + "message_type": "email", + "subtype_id": self.env.ref("mail.mt_comment").id, + "author_id": self.partner.id, + "date": "2024-03-26", + } + ) + notification_exc = self.env["mail.notification"].create( + { + "mail_message_id": msg.id, + "res_partner_id": self.partner.id, + "notification_type": "email", + "notification_status": "exception", + } + ) + read_date = fields.Datetime.subtract(fields.Datetime.now(), days=2) + notification_exc.is_read = True + notification_exc.read_date = read_date + self.env["mail.notification"]._gc_notifications(max_age_days=1) + self.assertFalse(notification_exc.exists()) + + def test_notification_in_error_recent_read(self): + # Read recently (read_date > max_age_days threshold), should not be deleted + read_date = fields.Datetime.now() + self.notification.is_read = True + self.notification.read_date = read_date + self.env["mail.notification"]._gc_notifications(max_age_days=1) + self.assertTrue(self.notification.exists())