From 941809d36fe76f22579a30a2e346e3e830c488a1 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 17 Aug 2015 10:44:04 +0200 Subject: [PATCH 01/17] [IMP][mail_attach_existing_attachment] Change module name --- mail_attach_existing_attachment/README.rst | 68 ++++++++++++++++++ mail_attach_existing_attachment/__init__.py | 2 + .../__openerp__.py | 41 +++++++++++ mail_attach_existing_attachment/i18n/pt_BR.po | 34 +++++++++ mail_attach_existing_attachment/i18n/sl.po | 34 +++++++++ .../static/description/attachment.png | Bin 0 -> 8492 bytes .../description/ex_mail_compose_message.png | Bin 0 -> 54406 bytes .../tests/__init__.py | 3 + .../test_mail_attach_existing_attachment.py | 49 +++++++++++++ .../wizard/__init__.py | 2 + .../wizard/mail_compose_message.py | 57 +++++++++++++++ .../wizard/mail_compose_message_view.xml | 19 +++++ 12 files changed, 309 insertions(+) create mode 100644 mail_attach_existing_attachment/README.rst create mode 100644 mail_attach_existing_attachment/__init__.py create mode 100644 mail_attach_existing_attachment/__openerp__.py create mode 100644 mail_attach_existing_attachment/i18n/pt_BR.po create mode 100644 mail_attach_existing_attachment/i18n/sl.po create mode 100644 mail_attach_existing_attachment/static/description/attachment.png create mode 100644 mail_attach_existing_attachment/static/description/ex_mail_compose_message.png create mode 100644 mail_attach_existing_attachment/tests/__init__.py create mode 100644 mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py create mode 100644 mail_attach_existing_attachment/wizard/__init__.py create mode 100644 mail_attach_existing_attachment/wizard/mail_compose_message.py create mode 100644 mail_attach_existing_attachment/wizard/mail_compose_message_view.xml diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst new file mode 100644 index 000000000..50784be07 --- /dev/null +++ b/mail_attach_existing_attachment/README.rst @@ -0,0 +1,68 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +Mail Attach Existing Attachment +=============================== + +This module was written to add the possibility to add attachments located on +the object by sending it by email with the mail compose message wizard + +Installation +============ + +To install this module, you need to: + +* Click on install + +Usage +===== + +To configure this module, you need to: + +* Adding some attachments on an object + +.. figure:: static/description/attachment.png + :alt: Attachment on purchase order + +* Then, by sending the object via email, you can select the attachment added earlier + +.. figure:: static/description/ex_mail_compose_message.png + :alt: Sends the Purchase Order by email + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/205/8.0 + +Known issues / Roadmap +====================== + +* The module only allows the addition of attachments linked to the object. + +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 smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Adrien Peiffer + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +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. + +To contribute to this module, please visit http://odoo-community.org. \ No newline at end of file diff --git a/mail_attach_existing_attachment/__init__.py b/mail_attach_existing_attachment/__init__.py new file mode 100644 index 000000000..02baef47b --- /dev/null +++ b/mail_attach_existing_attachment/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import wizard diff --git a/mail_attach_existing_attachment/__openerp__.py b/mail_attach_existing_attachment/__openerp__.py new file mode 100644 index 000000000..7ec7bbb63 --- /dev/null +++ b/mail_attach_existing_attachment/__openerp__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This file is part of mail_attach_existing_attachment, +# an Odoo module. +# +# Copyright (c) 2015 ACSONE SA/NV () +# +# mail_attach_existing_attachment is free software: +# you can redistribute it and/or modify it under the terms of the GNU +# Affero General Public License as published by the Free Software +# Foundation,either version 3 of the License, or (at your option) any +# later version. +# +# mail_attach_existing_attachment is distributed +# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with mail_attach_existing_attachment. +# If not, see . +# +############################################################################## +{ + 'name': "Mail Attach Existing Attachment", + 'summary': """ + Adding attachment on the object by sending this one""", + 'author': "ACSONE SA/NV,Odoo Community Association (OCA)", + 'website': "http://acsone.eu", + 'category': 'Social Network', + 'version': '8.0.1.0.0', + 'license': 'AGPL-3', + 'depends': [ + 'mail', + 'document', + ], + 'data': [ + 'wizard/mail_compose_message_view.xml', + ], +} diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po new file mode 100644 index 000000000..b74de819e --- /dev/null +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +# Armando Vulcano Junior , 2015 +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-30 16:56+0000\n" +"PO-Revision-Date: 2015-09-18 19:58+0000\n" +"Last-Translator: Armando Vulcano Junior \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-social-8-0/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: mail_attach_existing_attachment +#: field:mail.compose.message,object_attachment_ids:0 +msgid "Attachments" +msgstr "Anexos" + +#. module: mail_attach_existing_attachment +#: field:mail.compose.message,can_attach_attachment:0 +msgid "Can Attach Attachment" +msgstr "Pode Anexar Anexo" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Assistente de Composição de Email" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po new file mode 100644 index 000000000..2f00e5d21 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-04 14:42+0000\n" +"PO-Revision-Date: 2015-09-07 14:25+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: mail_attach_existing_attachment +#: field:mail.compose.message,object_attachment_ids:0 +msgid "Attachments" +msgstr "Priponke" + +#. module: mail_attach_existing_attachment +#: field:mail.compose.message,can_attach_attachment:0 +msgid "Can Attach Attachment" +msgstr "Lahko pripenja priponke" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Čarovnik za sestavljanje e-pošte" diff --git a/mail_attach_existing_attachment/static/description/attachment.png b/mail_attach_existing_attachment/static/description/attachment.png new file mode 100644 index 0000000000000000000000000000000000000000..15e101e16880087442bb75203733f735e416a40d GIT binary patch literal 8492 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 Zg!zQgYWP}Temt2ED9WkIR!W-%{}0yJhUWkP literal 0 HcmV?d00001 diff --git a/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png b/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png new file mode 100644 index 0000000000000000000000000000000000000000..5742434efcc37a251e83deeb58b9f32caa1f2cc1 GIT binary patch literal 54406 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 +# +# mail_attach_existing_attachment is free software: +# you can redistribute it and/or modify it under the terms of the GNU +# Affero General Public License as published by the Free Software +# Foundation,either version 3 of the License, or (at your option) any +# later version. +# +# mail_attach_existing_attachment is distributed +# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with mail_attach_existing_attachment. +# If not, see . +# +############################################################################## + +from openerp.tests import common + + +class TestAttachExistingAttachment(common.TransactionCase): + + def setUp(self): + super(TestAttachExistingAttachment, self).setUp() + self.partner_obj = self.env['res.partner'] + self.partner_01 = self.env.ref('base.res_partner_1') + + def test_send_email_attachment(self): + attach1 = self.env['ir.attachment'].create({ + 'name': 'Attach1', 'datas_fname': 'Attach1', + 'datas': 'bWlncmF0aW9uIHRlc3Q=', + 'res_model': 'res.partner', 'res_id': self.partner_01.id}) + vals = {'model': 'res.partner', + 'partner_ids': [(6, 0, [self.partner_01.id])], + 'res_id': self.partner_01.id, + 'object_attachment_ids': [(6, 0, [attach1.id])] + } + mail = self.env['mail.compose.message'].create(vals) + values = mail.get_mail_values(mail, [self.partner_01.id]) + self.assertTrue(attach1.id in + values[self.partner_01.id]['attachment_ids']) diff --git a/mail_attach_existing_attachment/wizard/__init__.py b/mail_attach_existing_attachment/wizard/__init__.py new file mode 100644 index 000000000..12ddb2dc7 --- /dev/null +++ b/mail_attach_existing_attachment/wizard/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import mail_compose_message diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py new file mode 100644 index 000000000..4c7d43f30 --- /dev/null +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This file is part of mail_attach_existing_attachment, +# an Odoo module. +# +# Copyright (c) 2015 ACSONE SA/NV () +# +# mail_attach_existing_attachment is free software: +# you can redistribute it and/or modify it under the terms of the GNU +# Affero General Public License as published by the Free Software +# Foundation,either version 3 of the License, or (at your option) any +# later version. +# +# mail_attach_existing_attachment is distributed +# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with mail_attach_existing_attachment. +# If not, see . +# +############################################################################## + +from openerp import models, fields, api + + +class MailComposeMessage(models.TransientModel): + _inherit = 'mail.compose.message' + + @api.model + def default_get(self, fields_list): + res = super(MailComposeMessage, self).default_get(fields_list) + if res.get('res_id') and res.get('model') and \ + res.get('composition_mode', '') != 'mass_mail' and\ + not res.get('can_attach_attachment'): + res['can_attach_attachment'] = True + return res + + can_attach_attachment = fields.Boolean(string='Can Attach Attachment') + object_attachment_ids = fields.Many2many( + comodel_name='ir.attachment', + relation='mail_compose_message_ir_attachments_object_rel', + column1='wizard_id', column2='attachment_id', string='Attachments') + + @api.model + def get_mail_values(self, wizard, res_ids): + res = super(MailComposeMessage, self).get_mail_values(wizard, res_ids) + if wizard.object_attachment_ids.ids and wizard.model and\ + len(res_ids) == 1: + for res_id in res_ids: + if not res[res_id].get('attachment_ids'): + res[res_id]['attachment_ids'] = [] + res[res_id]['attachment_ids'].extend( + wizard.object_attachment_ids.ids) + return res diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml new file mode 100644 index 000000000..aa10025b9 --- /dev/null +++ b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml @@ -0,0 +1,19 @@ + + + + + mail.compose.message.form (mail_attach_existing_attachment) + mail.compose.message + + + + +
+
+ +
+
+
+
+
+
\ No newline at end of file From 8056012b1bbea0f3082b5734603c5c65a89bf9e7 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Albert Date: Mon, 13 Jun 2016 01:54:13 +0200 Subject: [PATCH 02/17] [MIG][9.0] mail_attach_existing_attachment: Module migrated (#68) * [MIG][9.0] mail_attach_existing_attachment: Module migrated --- mail_attach_existing_attachment/README.rst | 13 +++---- .../__openerp__.py | 7 ++-- mail_attach_existing_attachment/i18n/ca.po | 33 +++++++++++++++++ mail_attach_existing_attachment/i18n/de.po | 33 +++++++++++++++++ mail_attach_existing_attachment/i18n/es.po | 33 +++++++++++++++++ mail_attach_existing_attachment/i18n/es_CO.po | 33 +++++++++++++++++ mail_attach_existing_attachment/i18n/fr.po | 33 +++++++++++++++++ mail_attach_existing_attachment/i18n/hr.po | 34 ++++++++++++++++++ mail_attach_existing_attachment/i18n/pt_BR.po | 14 ++++---- mail_attach_existing_attachment/i18n/sl.po | 14 ++++---- mail_attach_existing_attachment/i18n/zh_CN.po | 34 ++++++++++++++++++ .../static/description/icon.png | Bin 0 -> 4773 bytes .../test_mail_attach_existing_attachment.py | 2 +- .../wizard/mail_compose_message.py | 18 ++++------ 14 files changed, 267 insertions(+), 34 deletions(-) create mode 100644 mail_attach_existing_attachment/i18n/ca.po create mode 100644 mail_attach_existing_attachment/i18n/de.po create mode 100644 mail_attach_existing_attachment/i18n/es.po create mode 100644 mail_attach_existing_attachment/i18n/es_CO.po create mode 100644 mail_attach_existing_attachment/i18n/fr.po create mode 100644 mail_attach_existing_attachment/i18n/hr.po create mode 100644 mail_attach_existing_attachment/i18n/zh_CN.po create mode 100644 mail_attach_existing_attachment/static/description/icon.png diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 50784be07..d81fb5879 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -31,7 +31,7 @@ To configure this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/8.0 + :target: https://runbot.odoo-community.org/runbot/205/9.0 Known issues / Roadmap ====================== @@ -41,10 +41,10 @@ Known issues / Roadmap 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 smashing it by providing a detailed and welcomed feedback -`here `_. +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 smashing it by providing a detailed and welcomed feedback. Credits ======= @@ -53,6 +53,7 @@ Contributors ------------ * Adrien Peiffer +* Sergio Teruel Maintainer ---------- @@ -65,4 +66,4 @@ This module is maintained by the OCA. 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. -To contribute to this module, please visit http://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit http://odoo-community.org. diff --git a/mail_attach_existing_attachment/__openerp__.py b/mail_attach_existing_attachment/__openerp__.py index 7ec7bbb63..58f1642dd 100644 --- a/mail_attach_existing_attachment/__openerp__.py +++ b/mail_attach_existing_attachment/__openerp__.py @@ -26,10 +26,12 @@ 'name': "Mail Attach Existing Attachment", 'summary': """ Adding attachment on the object by sending this one""", - 'author': "ACSONE SA/NV,Odoo Community Association (OCA)", + 'author': "ACSONE SA/NV," + "Tecnativa," + "Odoo Community Association (OCA)", 'website': "http://acsone.eu", 'category': 'Social Network', - 'version': '8.0.1.0.0', + 'version': '9.0.1.0.0', 'license': 'AGPL-3', 'depends': [ 'mail', @@ -38,4 +40,5 @@ 'data': [ 'wizard/mail_compose_message_view.xml', ], + 'installable': True, } diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po new file mode 100644 index 000000000..f5334acad --- /dev/null +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-12 23:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Catalan (http://www.transifex.com/oca/OCA-social-9-0/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Assistent per composició de correus electrònics" diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po new file mode 100644 index 000000000..98e6791e8 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/de.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-12 23:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: German (http://www.transifex.com/oca/OCA-social-9-0/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Assistent zum Email verfassen" diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po new file mode 100644 index 000000000..3db638d9c --- /dev/null +++ b/mail_attach_existing_attachment/i18n/es.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-12 23:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-social-9-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Asistente composición Correo Electrónico" diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po new file mode 100644 index 000000000..0d62d5fcb --- /dev/null +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-12 23:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Colombia) (http://www.transifex.com/oca/OCA-social-9-0/language/es_CO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_CO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Asistente de redacción de E-mail" diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po new file mode 100644 index 000000000..b84642276 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-12 23:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (http://www.transifex.com/oca/OCA-social-9-0/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Assistant de composition de courriel" diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po new file mode 100644 index 000000000..49b0ed73c --- /dev/null +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-14 11:29+0000\n" +"Last-Translator: Bole \n" +"Language-Team: Croatian (http://www.transifex.com/oca/OCA-social-9-0/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "Privitci" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "Može pridružiti privitak" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Čarobnjak za sastavljanje maila" diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index b74de819e..df34c99ef 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -6,12 +6,12 @@ # Armando Vulcano Junior , 2015 msgid "" msgstr "" -"Project-Id-Version: social (8.0)\n" +"Project-Id-Version: social (9.0)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-30 16:56+0000\n" -"PO-Revision-Date: 2015-09-18 19:58+0000\n" -"Last-Translator: Armando Vulcano Junior \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-social-8-0/language/pt_BR/)\n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-13 03:11+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-social-9-0/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -19,12 +19,12 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment -#: field:mail.compose.message,object_attachment_ids:0 +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids msgid "Attachments" msgstr "Anexos" #. module: mail_attach_existing_attachment -#: field:mail.compose.message,can_attach_attachment:0 +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment msgid "Can Attach Attachment" msgstr "Pode Anexar Anexo" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 2f00e5d21..2899f71dc 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -6,12 +6,12 @@ # Matjaž Mozetič , 2015 msgid "" msgstr "" -"Project-Id-Version: social (8.0)\n" +"Project-Id-Version: social (9.0)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-09-04 14:42+0000\n" -"PO-Revision-Date: 2015-09-07 14:25+0000\n" -"Last-Translator: Matjaž Mozetič \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"POT-Creation-Date: 2016-06-13 02:44+0000\n" +"PO-Revision-Date: 2016-06-13 03:11+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-9-0/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -19,12 +19,12 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" #. module: mail_attach_existing_attachment -#: field:mail.compose.message,object_attachment_ids:0 +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids msgid "Attachments" msgstr "Priponke" #. module: mail_attach_existing_attachment -#: field:mail.compose.message,can_attach_attachment:0 +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment msgid "Can Attach Attachment" msgstr "Lahko pripenja priponke" diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po new file mode 100644 index 000000000..49469d788 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +# Jeffery Chenn , 2016 +msgid "" +msgstr "" +"Project-Id-Version: social (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-02 00:46+0000\n" +"PO-Revision-Date: 2016-09-04 05:54+0000\n" +"Last-Translator: Jeffery Chenn \n" +"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-social-9-0/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "附件" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "" diff --git a/mail_attach_existing_attachment/static/description/icon.png b/mail_attach_existing_attachment/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6c4d89568d7aea4498047e6edcca8b53014538 GIT binary patch literal 4773 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 literal 0 HcmV?d00001 diff --git a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py index eed39bc3f..af1aaaec9 100644 --- a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py +++ b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py @@ -44,6 +44,6 @@ class TestAttachExistingAttachment(common.TransactionCase): 'object_attachment_ids': [(6, 0, [attach1.id])] } mail = self.env['mail.compose.message'].create(vals) - values = mail.get_mail_values(mail, [self.partner_01.id]) + values = mail.get_mail_values([self.partner_01.id]) self.assertTrue(attach1.id in values[self.partner_01.id]['attachment_ids']) diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index 4c7d43f30..6e154a14e 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -35,7 +35,7 @@ class MailComposeMessage(models.TransientModel): if res.get('res_id') and res.get('model') and \ res.get('composition_mode', '') != 'mass_mail' and\ not res.get('can_attach_attachment'): - res['can_attach_attachment'] = True + res['can_attach_attachment'] = True # pragma: no cover return res can_attach_attachment = fields.Boolean(string='Can Attach Attachment') @@ -44,14 +44,10 @@ class MailComposeMessage(models.TransientModel): relation='mail_compose_message_ir_attachments_object_rel', column1='wizard_id', column2='attachment_id', string='Attachments') - @api.model - def get_mail_values(self, wizard, res_ids): - res = super(MailComposeMessage, self).get_mail_values(wizard, res_ids) - if wizard.object_attachment_ids.ids and wizard.model and\ - len(res_ids) == 1: - for res_id in res_ids: - if not res[res_id].get('attachment_ids'): - res[res_id]['attachment_ids'] = [] - res[res_id]['attachment_ids'].extend( - wizard.object_attachment_ids.ids) + @api.multi + def get_mail_values(self, res_ids): + res = super(MailComposeMessage, self).get_mail_values(res_ids) + if self.object_attachment_ids.ids and self.model and len(res_ids) == 1: + res[res_ids[0]].setdefault('attachment_ids', []).extend( + self.object_attachment_ids.ids) return res From aa117d392ab14ab1b0c03050ebac8ae5af734f71 Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Tue, 11 Oct 2016 20:22:36 +0200 Subject: [PATCH 03/17] [MIG] mail_attach_existing_attachment: Migrated to 10.0 --- mail_attach_existing_attachment/README.rst | 2 +- .../{__openerp__.py => __manifest__.py} | 2 +- mail_attach_existing_attachment/i18n/de.po | 16 +++++---- mail_attach_existing_attachment/i18n/es.po | 16 +++++---- mail_attach_existing_attachment/i18n/fr.po | 16 +++++---- mail_attach_existing_attachment/i18n/it.po | 35 +++++++++++++++++++ .../wizard/mail_compose_message.py | 2 +- .../wizard/mail_compose_message_view.xml | 34 +++++++++--------- 8 files changed, 81 insertions(+), 42 deletions(-) rename mail_attach_existing_attachment/{__openerp__.py => __manifest__.py} (98%) create mode 100644 mail_attach_existing_attachment/i18n/it.po diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index d81fb5879..a3eea1475 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -31,7 +31,7 @@ To configure this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/9.0 + :target: https://runbot.odoo-community.org/runbot/205/10.0 Known issues / Roadmap ====================== diff --git a/mail_attach_existing_attachment/__openerp__.py b/mail_attach_existing_attachment/__manifest__.py similarity index 98% rename from mail_attach_existing_attachment/__openerp__.py rename to mail_attach_existing_attachment/__manifest__.py index 58f1642dd..fbc2b424a 100644 --- a/mail_attach_existing_attachment/__openerp__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -31,7 +31,7 @@ "Odoo Community Association (OCA)", 'website': "http://acsone.eu", 'category': 'Social Network', - 'version': '9.0.1.0.0', + 'version': '10.0.1.0.0', 'license': 'AGPL-3', 'depends': [ 'mail', diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 98e6791e8..022273015 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -3,14 +3,16 @@ # * mail_attach_existing_attachment # # Translators: +# OCA Transbot , 2016 +# Niki Waibel , 2016 msgid "" msgstr "" -"Project-Id-Version: social (9.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-13 02:44+0000\n" -"PO-Revision-Date: 2016-06-12 23:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: German (http://www.transifex.com/oca/OCA-social-9-0/language/de/)\n" +"POT-Creation-Date: 2016-11-29 14:24+0000\n" +"PO-Revision-Date: 2016-11-29 14:24+0000\n" +"Last-Translator: Niki Waibel , 2016\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -20,12 +22,12 @@ msgstr "" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids msgid "Attachments" -msgstr "" +msgstr "Anhänge" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment msgid "Can Attach Attachment" -msgstr "" +msgstr "Kann Anhang anhängen" #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index 3db638d9c..015f08a39 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -3,14 +3,16 @@ # * mail_attach_existing_attachment # # Translators: +# OCA Transbot , 2017 +# Pedro M. Baeza , 2017 msgid "" msgstr "" -"Project-Id-Version: social (9.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-13 02:44+0000\n" -"PO-Revision-Date: 2016-06-12 23:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: Spanish (http://www.transifex.com/oca/OCA-social-9-0/language/es/)\n" +"POT-Creation-Date: 2017-12-01 02:19+0000\n" +"PO-Revision-Date: 2017-12-01 02:19+0000\n" +"Last-Translator: Pedro M. Baeza , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -20,12 +22,12 @@ msgstr "" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids msgid "Attachments" -msgstr "" +msgstr "Adjuntos" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment msgid "Can Attach Attachment" -msgstr "" +msgstr "Puede adjuntar adjuntos" #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index b84642276..0220407d3 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -3,14 +3,16 @@ # * mail_attach_existing_attachment # # Translators: +# OCA Transbot , 2016 +# Quentin THEURET , 2017 msgid "" msgstr "" -"Project-Id-Version: social (9.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-06-13 02:44+0000\n" -"PO-Revision-Date: 2016-06-12 23:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: French (http://www.transifex.com/oca/OCA-social-9-0/language/fr/)\n" +"POT-Creation-Date: 2017-07-22 09:45+0000\n" +"PO-Revision-Date: 2017-07-22 09:45+0000\n" +"Last-Translator: Quentin THEURET , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" @@ -20,12 +22,12 @@ msgstr "" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids msgid "Attachments" -msgstr "" +msgstr "Pièces jointes" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment msgid "Can Attach Attachment" -msgstr "" +msgstr "Il est possible d'attacher des pièces jointes" #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po new file mode 100644 index 000000000..ed7ee33a6 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/it.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +# Translators: +# OCA Transbot , 2016 +# Marius Marolla , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 01:02+0000\n" +"PO-Revision-Date: 2017-05-17 01:02+0000\n" +"Last-Translator: Marius Marolla , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "Allegati" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "Inserimento Allegati Ammesso" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "Wizard Creazione Email" diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index 6e154a14e..a86e4a802 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -23,7 +23,7 @@ # ############################################################################## -from openerp import models, fields, api +from odoo import models, fields, api class MailComposeMessage(models.TransientModel): diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml index aa10025b9..d79a03429 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml +++ b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml @@ -1,19 +1,17 @@ - - - - mail.compose.message.form (mail_attach_existing_attachment) - mail.compose.message - - - - -
-
- -
-
-
-
-
-
\ No newline at end of file + + + mail.compose.message.form (mail_attach_existing_attachment) + mail.compose.message + + + + +
+
+ +
+
+
+
+
From 432b2b164064f5d3d08060228af2790df6cfa37a Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 16 Apr 2018 17:16:07 -0400 Subject: [PATCH 04/17] [MIG] mail_attach_existing_attachment: Migration to 11.0 --- mail_attach_existing_attachment/README.rst | 2 +- mail_attach_existing_attachment/__init__.py | 1 - .../__manifest__.py | 3 +- mail_attach_existing_attachment/i18n/ca.po | 7 +++-- mail_attach_existing_attachment/i18n/de.po | 4 +-- mail_attach_existing_attachment/i18n/es.po | 4 +-- mail_attach_existing_attachment/i18n/es_CO.po | 7 +++-- mail_attach_existing_attachment/i18n/fr.po | 4 +-- mail_attach_existing_attachment/i18n/hr.po | 10 ++++--- mail_attach_existing_attachment/i18n/it.po | 4 +-- .../i18n/mail_attach_existing_attachment.pot | 30 +++++++++++++++++++ mail_attach_existing_attachment/i18n/pt_BR.po | 7 +++-- mail_attach_existing_attachment/i18n/sl.po | 10 ++++--- mail_attach_existing_attachment/i18n/zh_CN.po | 7 +++-- .../tests/__init__.py | 1 - .../test_mail_attach_existing_attachment.py | 10 +++++-- .../wizard/__init__.py | 1 - .../wizard/mail_compose_message.py | 1 - 18 files changed, 75 insertions(+), 38 deletions(-) create mode 100644 mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index a3eea1475..b51893df8 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -31,7 +31,7 @@ To configure this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/10.0 + :target: https://runbot.odoo-community.org/runbot/205/11.0 Known issues / Roadmap ====================== diff --git a/mail_attach_existing_attachment/__init__.py b/mail_attach_existing_attachment/__init__.py index 02baef47b..40272379f 100644 --- a/mail_attach_existing_attachment/__init__.py +++ b/mail_attach_existing_attachment/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import wizard diff --git a/mail_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index fbc2b424a..901835c2d 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- ############################################################################## # # This file is part of mail_attach_existing_attachment, @@ -31,7 +30,7 @@ "Odoo Community Association (OCA)", 'website': "http://acsone.eu", 'category': 'Social Network', - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'license': 'AGPL-3', 'depends': [ 'mail', diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index f5334acad..78413f428 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: msgid "" msgstr "" @@ -10,11 +10,12 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2016-06-12 23:57+0000\n" "Last-Translator: <>\n" -"Language-Team: Catalan (http://www.transifex.com/oca/OCA-social-9-0/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/oca/OCA-social-9-0/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 022273015..2c6e26323 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # OCA Transbot , 2016 # Niki Waibel , 2016 @@ -13,10 +13,10 @@ msgstr "" "PO-Revision-Date: 2016-11-29 14:24+0000\n" "Last-Translator: Niki Waibel , 2016\n" "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index 015f08a39..95e6980ef 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # OCA Transbot , 2017 # Pedro M. Baeza , 2017 @@ -13,10 +13,10 @@ msgstr "" "PO-Revision-Date: 2017-12-01 02:19+0000\n" "Last-Translator: Pedro M. Baeza , 2017\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po index 0d62d5fcb..25924b96e 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: msgid "" msgstr "" @@ -10,11 +10,12 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2016-06-12 23:57+0000\n" "Last-Translator: <>\n" -"Language-Team: Spanish (Colombia) (http://www.transifex.com/oca/OCA-social-9-0/language/es_CO/)\n" +"Language-Team: Spanish (Colombia) (http://www.transifex.com/oca/OCA-" +"social-9-0/language/es_CO/)\n" +"Language: es_CO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: es_CO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index 0220407d3..a420ef1bc 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # OCA Transbot , 2016 # Quentin THEURET , 2017 @@ -13,10 +13,10 @@ msgstr "" "PO-Revision-Date: 2017-07-22 09:45+0000\n" "Last-Translator: Quentin THEURET , 2017\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po index 49b0ed73c..5ceb5fb39 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # Bole , 2016 msgid "" @@ -11,12 +11,14 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2016-06-14 11:29+0000\n" "Last-Translator: Bole \n" -"Language-Team: Croatian (http://www.transifex.com/oca/OCA-social-9-0/language/hr/)\n" +"Language-Team: Croatian (http://www.transifex.com/oca/OCA-social-9-0/" +"language/hr/)\n" +"Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index ed7ee33a6..6930c7db5 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # OCA Transbot , 2016 # Marius Marolla , 2017 @@ -13,10 +13,10 @@ msgstr "" "PO-Revision-Date: 2017-05-17 01:02+0000\n" "Last-Translator: Marius Marolla , 2017\n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot new file mode 100644 index 000000000..266b4463a --- /dev/null +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.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_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids +msgid "Attachments" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +msgid "Can Attach Attachment" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "" + diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index df34c99ef..3205cc480 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # Armando Vulcano Junior , 2015 msgid "" @@ -11,11 +11,12 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2016-06-13 03:11+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-social-9-0/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-" +"social-9-0/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 2899f71dc..76343af02 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # Matjaž Mozetič , 2015 msgid "" @@ -11,12 +11,14 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2016-06-13 03:11+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-9-0/language/sl/)\n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-9-0/" +"language/sl/)\n" +"Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po index 49469d788..2fdf0f0a5 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_attach_existing_attachment -# +# # Translators: # Jeffery Chenn , 2016 msgid "" @@ -11,11 +11,12 @@ msgstr "" "POT-Creation-Date: 2016-09-02 00:46+0000\n" "PO-Revision-Date: 2016-09-04 05:54+0000\n" "Last-Translator: Jeffery Chenn \n" -"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-social-9-0/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-social-9-0/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #. module: mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/tests/__init__.py b/mail_attach_existing_attachment/tests/__init__.py index 26c2cf040..fc1e8e4e2 100644 --- a/mail_attach_existing_attachment/tests/__init__.py +++ b/mail_attach_existing_attachment/tests/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import test_mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py index af1aaaec9..a6730e773 100644 --- a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py +++ b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- ############################################################################## # # This file is part of mail_attach_existing_attachment, @@ -23,7 +22,7 @@ # ############################################################################## -from openerp.tests import common +from odoo.tests import common class TestAttachExistingAttachment(common.TransactionCase): @@ -31,7 +30,12 @@ class TestAttachExistingAttachment(common.TransactionCase): def setUp(self): super(TestAttachExistingAttachment, self).setUp() self.partner_obj = self.env['res.partner'] - self.partner_01 = self.env.ref('base.res_partner_1') + self.partner_01 = self.env['res.partner'].create({ + 'name': 'Partner 1', + 'email': 'partner1@example.org', + 'is_company': True, + 'parent_id': False, + }) def test_send_email_attachment(self): attach1 = self.env['ir.attachment'].create({ diff --git a/mail_attach_existing_attachment/wizard/__init__.py b/mail_attach_existing_attachment/wizard/__init__.py index 12ddb2dc7..b528d997d 100644 --- a/mail_attach_existing_attachment/wizard/__init__.py +++ b/mail_attach_existing_attachment/wizard/__init__.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- from . import mail_compose_message diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index a86e4a802..073c7da0e 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- ############################################################################## # # This file is part of mail_attach_existing_attachment, From b6ab5ff26634e84d68c0ed21d93bc9a0e48649bd Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 5 Nov 2018 10:14:40 -0500 Subject: [PATCH 05/17] [MIG] mail_attach_existing_attachment: Migration to 12.0 --- mail_attach_existing_attachment/README.rst | 90 ++-- .../__manifest__.py | 11 +- mail_attach_existing_attachment/i18n/ca.po | 12 +- mail_attach_existing_attachment/i18n/de.po | 13 +- mail_attach_existing_attachment/i18n/es.po | 13 +- mail_attach_existing_attachment/i18n/es_CO.po | 12 +- mail_attach_existing_attachment/i18n/fr.po | 13 +- mail_attach_existing_attachment/i18n/hr.po | 13 +- mail_attach_existing_attachment/i18n/it.po | 13 +- .../i18n/mail_attach_existing_attachment.pot | 14 +- mail_attach_existing_attachment/i18n/pt_BR.po | 13 +- mail_attach_existing_attachment/i18n/sl.po | 13 +- mail_attach_existing_attachment/i18n/zh_CN.po | 13 +- .../readme/CONTRIBUTORS.rst | 5 + .../readme/DESCRIPTION.rst | 2 + .../readme/ROADMAP.rst | 1 + .../readme/USAGE.rst | 11 + .../static/description/attachment.png | Bin 8492 -> 15404 bytes .../description/ex_mail_compose_message.png | Bin 54406 -> 51219 bytes .../static/description/index.html | 450 ++++++++++++++++++ .../wizard/mail_compose_message.py | 3 +- 21 files changed, 611 insertions(+), 104 deletions(-) create mode 100644 mail_attach_existing_attachment/readme/CONTRIBUTORS.rst create mode 100644 mail_attach_existing_attachment/readme/DESCRIPTION.rst create mode 100644 mail_attach_existing_attachment/readme/ROADMAP.rst create mode 100644 mail_attach_existing_attachment/readme/USAGE.rst create mode 100644 mail_attach_existing_attachment/static/description/index.html diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index b51893df8..ec8919f49 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -1,38 +1,53 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 - +=============================== Mail Attach Existing Attachment =============================== -This module was written to add the possibility to add attachments located on +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |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/12.0/mail_attach_existing_attachment + :alt: OCA/social +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/social-12-0/social-12-0-mail_attach_existing_attachment + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/205/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module was written to add the possibility to add attachments located on the object by sending it by email with the mail compose message wizard -Installation -============ +**Table of contents** -To install this module, you need to: - -* Click on install +.. contents:: + :local: Usage ===== -To configure this module, you need to: +To use this module, you need to: -* Adding some attachments on an object +* Adding some attachments on an object by creating a new *Log note* -.. figure:: static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/mail_attach_existing_attachment/static/description/attachment.png :alt: Attachment on purchase order * Then, by sending the object via email, you can select the attachment added earlier -.. figure:: static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png :alt: Sends the Purchase Order by email -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/11.0 - Known issues / Roadmap ====================== @@ -41,29 +56,44 @@ Known issues / Roadmap 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 smashing it by providing a detailed and welcomed feedback. +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* ACSONE SA/NV +* Tecnativa + Contributors ------------- +~~~~~~~~~~~~ * Adrien Peiffer -* Sergio Teruel +* `Tecnativa `_: -Maintainer ----------- + * Sergio Teruel + * Ernesto Tejeda -.. image:: http://odoo-community.org/logo.png - :alt: Odoo Community Association - :target: http://odoo-community.org +Maintainers +~~~~~~~~~~~ This module is maintained by the OCA. -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. +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org -To contribute to this module, please visit http://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. + +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_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index 901835c2d..c907555ef 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -23,14 +23,13 @@ ############################################################################## { 'name': "Mail Attach Existing Attachment", - 'summary': """ - Adding attachment on the object by sending this one""", - 'author': "ACSONE SA/NV," - "Tecnativa," + 'summary': "Adding attachment on the object by sending this one", + 'author': "ACSONE SA/NV, " + "Tecnativa, " "Odoo Community Association (OCA)", - 'website': "http://acsone.eu", + 'website': "https://github.com/OCA/social", 'category': 'Social Network', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'license': 'AGPL-3', 'depends': [ 'mail', diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index 78413f428..cdfb4cacf 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -19,12 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -32,3 +27,8 @@ msgstr "" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistent per composició de correus electrònics" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +msgid "Object Attachments" +msgstr "" diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 2c6e26323..117c19351 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Anhänge" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Kann Anhang anhängen" @@ -33,3 +28,9 @@ msgstr "Kann Anhang anhängen" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistent zum Email verfassen" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Anhänge" diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index 95e6980ef..e948e76d6 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Adjuntos" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Puede adjuntar adjuntos" @@ -33,3 +28,9 @@ msgstr "Puede adjuntar adjuntos" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Asistente composición Correo Electrónico" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Adjuntos" diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po index 25924b96e..f85607c42 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -19,12 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -32,3 +27,8 @@ msgstr "" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Asistente de redacción de E-mail" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +msgid "Object Attachments" +msgstr "" diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index a420ef1bc..24f1e490e 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Pièces jointes" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Il est possible d'attacher des pièces jointes" @@ -33,3 +28,9 @@ msgstr "Il est possible d'attacher des pièces jointes" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistant de composition de courriel" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Pièces jointes" diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po index 5ceb5fb39..cbeebfdd8 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -21,12 +21,7 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Privitci" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Može pridružiti privitak" @@ -34,3 +29,9 @@ msgstr "Može pridružiti privitak" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Čarobnjak za sastavljanje maila" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Privitci" diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index 6930c7db5..9b750d0ab 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Allegati" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Inserimento Allegati Ammesso" @@ -33,3 +28,9 @@ msgstr "Inserimento Allegati Ammesso" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Wizard Creazione Email" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Allegati" diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot index 266b4463a..329b973c7 100644 --- a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -14,12 +14,7 @@ msgstr "" "Plural-Forms: \n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -28,3 +23,8 @@ msgstr "" msgid "Email composition wizard" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +msgid "Object Attachments" +msgstr "" + diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index 3205cc480..e7e837b89 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Anexos" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Pode Anexar Anexo" @@ -33,3 +28,9 @@ msgstr "Pode Anexar Anexo" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistente de Composição de Email" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Anexos" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 76343af02..3b78e47e1 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -21,12 +21,7 @@ msgstr "" "%100==4 ? 2 : 3);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "Priponke" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Lahko pripenja priponke" @@ -34,3 +29,9 @@ msgstr "Lahko pripenja priponke" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Čarovnik za sestavljanje e-pošte" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "Priponke" diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po index 2fdf0f0a5..a61c0d028 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -20,12 +20,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_object_attachment_ids -msgid "Attachments" -msgstr "附件" - -#. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message_can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -33,3 +28,9 @@ msgstr "" #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +#, fuzzy +msgid "Object Attachments" +msgstr "附件" diff --git a/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst b/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..db6910ff2 --- /dev/null +++ b/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Adrien Peiffer +* `Tecnativa `_: + + * Sergio Teruel + * Ernesto Tejeda diff --git a/mail_attach_existing_attachment/readme/DESCRIPTION.rst b/mail_attach_existing_attachment/readme/DESCRIPTION.rst new file mode 100644 index 000000000..189719c21 --- /dev/null +++ b/mail_attach_existing_attachment/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module was written to add the possibility to add attachments located on +the object by sending it by email with the mail compose message wizard diff --git a/mail_attach_existing_attachment/readme/ROADMAP.rst b/mail_attach_existing_attachment/readme/ROADMAP.rst new file mode 100644 index 000000000..5d24095fd --- /dev/null +++ b/mail_attach_existing_attachment/readme/ROADMAP.rst @@ -0,0 +1 @@ +* The module only allows the addition of attachments linked to the object. diff --git a/mail_attach_existing_attachment/readme/USAGE.rst b/mail_attach_existing_attachment/readme/USAGE.rst new file mode 100644 index 000000000..22a328e9a --- /dev/null +++ b/mail_attach_existing_attachment/readme/USAGE.rst @@ -0,0 +1,11 @@ +To use this module, you need to: + +* Adding some attachments on an object by creating a new *Log note* + +.. figure:: mail_attach_existing_attachment/static/description/attachment.png + :alt: Attachment on purchase order + +* Then, by sending the object via email, you can select the attachment added earlier + +.. figure:: mail_attach_existing_attachment/static/description/ex_mail_compose_message.png + :alt: Sends the Purchase Order by email diff --git a/mail_attach_existing_attachment/static/description/attachment.png b/mail_attach_existing_attachment/static/description/attachment.png index 15e101e16880087442bb75203733f735e416a40d..0a6c2c23b7572b28b252e7974ba23103f1a84710 100644 GIT binary patch literal 15404 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 MSxc$tsb$dr0@f~l(EtDd literal 8492 zcmb7~Ra9I*)aVZ`MT29kjSRgF}JA z<>UX|bsz5I-4Dr0R(8%#vhzFZWaq28sscVPH7)=E_=@jjH30zS&C|0PHtJJK8%dS* zl%csuD{5n7V=t_!tv(g0T;=p!wHz#5Jw7@^0ZW*JJ(SA@;tYktT&x^ikI_2C0e}%u zl$Fx<%skBUG18v8=$aAcM=%cU4CRWoy}(#k(`vp3NOK_{t< zAk*v8sSd6ArB+w5rH_j-;oS?vR2>~1Nk$@XhBts&)K`{- z{$;jO!$ufNkmQcv7}y>NlC+|0>Fb02r=_FlZu^v_Dp50`1G3K*%^ecWH~&+4#lgW5 zB*}O#-Vfsn8hamqc{jTx%JPfyqmnEmY8Vf2j$2NTjzc-|rXPS?<+3YZ)`Qy>27MNT zml=tFvE@2seD@|`nKI5%cUUdc;Tx{a?dvnly4@Kh#V6z^eNHAuPNq!^QpGAbkMtqExf?yqXl_UY_Y zaD^oqE;(@OJlsTTK@}eslCQ|+{{0GjCLkbSVq!u-KmcB1q{}TX-kz<2JeBC_>BaJq zVrQd|ufUjp6B$qqy{dME7-$C~C&$Yjb+}cj?Z$Y5qiJs{O%?ULDdaS=Xoa0-vLQrr z|IT+OxZBSYva*b2WMpDZE%u8lDh@+&NSs|PeB}^cQx?o1)Fc5&8q1N1dgcy07#M}~e$YM% zVZA+inSy2=d!^F|(N7)e(G?Ukv=t6+WTsJVr+Cwokc(mKo>gXBSqjI`BKOYCukfur z#C@g$wyZCcwJn4i14qi=f2>bmmYaO*yzR8VH_B*S-+h^5Zb z4im?N$yEF)^@Bst1b^b=#27D!sP?b4(B_Y#97C*=*~-|)$Wg0 zhZzLsZEWS$&3+`l%C1;d`8s>)F1`r8h#oO6kj}Q&se<&P>wCXt7Ip2i@SOWbK}_Jg z&b`E)^}xyT^Glt(577?8TTet$L8+cESTVKvTM`Nn_n$ z9BY;d7_%yF7e9tG)IJ)2q}8CiN0^s<9o$fWXHu|+(fT>4jjf1h7+f43kltE;HWu=i z>ic&Q%N-Nr)qRa1TwX5NSY3)ETig9A6;hNLW?Q0`M3bJ}BNU6IF0Qs2a`-^;^@3)^ z(+2s&>QE~ZA(r$3P|-@Y5SjmNdXLDvHvAQlBJbz4H>Kym8r<@$0p2m~bmFc)Ti)$v zn!R!D;v!S&e1~G(EKa66f+NT(pf8^d3(&wxzXi6d7fMo-+{&s z9PKsMJR?MyuInKN9D1rUco(;)S13B}hOIguN=~bmHqFitlIuP`mIxzY&Vx=4EIs$v zOfr5*5G_9wA|U^) z-4j41G3P0Cf6^skDZ&&=^KiRlS|9;-R_v?0C_vTit;`goB;wyomiU*qi-A&OazE@= zC8FzS(kJLbTogXj)cy8@$NBUvnF<6j1839toP`G%d2gu*QpsuD^@Q}zDlT92?G?sE zao;K^-AzBX|G?_qt%*BHuJXb!bPZqjJshi6xMp}PqG{j*JAFdxe*N0|=(Yr;E12j} zpKWW!yxrD}BI|j4U19T~WwUa-iyi_3|Se{(2r9q0(Evu1~`?w_uquRf@ zVYnF=V6=LKdJ8}=84eF-Clrbh2GArapT(2u5r>U8ZW00YjLv7{F9p?%GsO0Lun)_? z$I&G!D#E&?zAgUnEeoWxw>WhFRAKg_!lwMJ!?NcV-!$9Jv7hm`$JqpK?(TW3+v~&I zo9&%11CSKt&0+w-^68{*tBLa+Qr+qxK70kP zU`y@ZPRc!tKhdD_64wK~fm@W0PHPZ-^n= z?44y_1ayriv(w-bUG86t7J^}9$cW#!YuGQ+H0p7|W#z~G)kps^gWJjWczV2+n#+Bc z5K|L}Sl%+x_#{`GyWS8{w%J9odJF$M%ZHUppL&MCx<GPsycghff8u zjvl6X?u&z2kdQ}5ZUq|wql#0Gt%8a6)3*$qK3t2@QuwKa_l0<#aN%1$E@@yPswRsGqAY41gcr+q4-np=i@nNt@4y>=zU_(c1% zJ@Lk?FclT8T509W+{VF{yNn+K&$7Id3WN)EUC*s591>}IdJCXgFr*{$HV&jp z1lQ*$Ot(V9_axvl$pq6n{K6wa>XdVQAj(n*$g_s}nCBo4y5P3C{QhI=EU4ZMOd0 zm*>8}s|ujDGhT52RYlYb3^CWWU2TNFrs8EKJ-(h3_e|ht-m(yTyxicip4%tU=F{p7 zM_cw^YB*S3qu~Pp1Ur9@tCOqiX3X)u*XqHSG-i9bG@D->4qh}d{yu4fK3^s#|C~b$ z^dhO*+m}^MFAIB>a*o^DMwt=c8ykQ483nONe0rmL!TGN78?gl`H3lm-cGoF=y)=^o zHV$@P@mwS51t6J^ecJn6PNUEc{QGahN9#X=P{2$Ax-?C>f)dQAXRT9*GX+-TeLq0C zIOuM4INItzwtLlxN>~SUor!5fa|pd|i7_E~fvm?^Ko>UfXMuIazsc$GYerl9{zccxp?Qb3wbqtLpC$ioBJfC5Ee2w&PJDXRh}u;NIA?CW}!MHwX*%423mswdJ5 zP=W>>>mm@U?c!UlqHgEkSHE|YS|sCQW+=0z;X#0i5_JgTrinTcU zu{v6+j|wGFLuf7{U$M=;sWK#^m0WcW`Zmz3e*OzD8Y2~(kEgtnNQ3V{AHoYLx?He6 z#v&*tlAiX_MXZ=U>;te16?9QLU{FLC;(*H>JK(kx;!ONJ*!P+MH}<Lii@(__aTb4y{_%u+rAu@nz_UBK=NzeKIl_ew zgvsORkTuGVlSz^W+_T%p!v3~NZF`c-;YDw_L&WpHpcIO$i@*j~V5^eTbBHrzcz7M9 z7OAODUSfHcItJ`uJH16L>X9lS768(F_x1;Q2djvcb!mi4?GQ;T&< z%`*L>Uhs+&Jd`^&8*-#+jOLsV1eR5NUnPxY*9%1nB$gwF$gdTe8=DRf;W;NA%-9Ab z3xlf7vbPySH!HgbtgqUmDcIUu2OW5zd}&9*M``Wl6SY1a9hO{ya(Tpw11!Tw)KwAs zMZ1JuDf)sYZ&N<%KWrmwUu`T=JqzxtD=>*vGuSR7Mep|2sAzx($9(AA(kJV4&#Jr3 zK`LN17*uGMYL_u3nqFAM-XDG=u+vM~;ust(i=xz{S*4FuVBcsOnw&?fMl-Jse$;XI~Hl_HH|NP{`zQXxTiYQ9HfDwE9 zTjOAEs}x;J{FFIU%l`Cq16u2AVKqWWVz~jz!~yfmKCi@NM5ARYQ;DK~B{YZAdti<(=M5pJ5@Uh@aj^;Cwg74YX3=&x@9YQ;4)@Ksq*FAk$ zqG)D-FCvep)Yp96n=3XRRQ9q`(fjwqyUm+*&jJd0c+60 z4=9ne*ywxXYUJUZSLd&%kDy0@dqR6Q4H;kWPbYFr%EEH! z>wk(apTE3-oeGD>S*v&55SngYejdfe#x^*`kPvtXL1d+eHSr5$<7Ok(iTc8> z+8>3BO?LaJoN(Amhu=u1@E46`o@%e;3%FQ$q2`aEV(T=QnTVt~ zr@SGS23i=H$&U$VPiHK35`tajSOnM?XiVFwo&2C5l1kd(YF&d{r)nd3=Wdhu8Yk|2 ziOK$Q8cCZxDIH8)+*F_Az2%>5*?rgh1p3`q?<^IkQfZa{N?|MR8vlr&Yqhht7o{+D z-Z{-APshx>c%Sf@cz}y@BBO$X(}yk+8YMYV?+TNV3E8q~jVy=44Zh)5*CJU*VZ|$a zYIVg)Anf2RXZRvaJ5qEzA!ZJ;dIXkya<xJ-U=;#PlM4T{I9UH6BY;w8Lx0CO*X+Iq5e^$4lj}dpSdo3?!Cpf(G{{-VL`-!ai11PqHEd8i5`R3@IJThodAqIX2B)pZYFxzg6#S(j`$@1(=Q<#IQQzb**4BfS*kNM)YY||yF4fJ+MnhU6%~!*#n4k_0=^3lv=mACGdvfp z7&ExnF~~@3t$RIaQ=r^}OS(8v9ebn0f4t{f*Z<*%9*VJKy1hwuRUI!mVAjg3xgF;E2WKfKY4|Nvu?#JAve!px` z_j=^9rrw2cXF@JWi3lCO06%=MsMV6TxS6Zme|ar~ zHogDV8VVXF9wkrU!Sn^`-M|z-1vKdt$OYeZ=jT3&V55JV)%GCjQ8vOrJ)5qBr6Lq- zH8RoEi+61ZEKWYbJCxRlYns`@BGTGs_?|^ilFb>6vERXHQ~Ea^V^zud*>&J7*E4xg z*?al@B~d=2e{Iu@a#;J%X^Bx_2Vm75Y!5yMIw^-$fh9fqHP|~x102&92_~lUozGHc zw0-E@(fUGCr4qCqpoJa z&b>kTG^pPd&_m@vU)w10ll)ywOb{bUWk~^&{%~=dwphr1_%%01rzk#{a-*uL2^+^p z12%;GP0TkrQxlqY7Hv>IA*xK$>vLIz(_-g|w+2q<+oJwNF|$sg7SOLzP*d&g|2ciB z+xcyK6QOCOZeY&?>gE3OHT`HLxPwvPHS(Qe1AyB&5Lxiz&Uk2iIIAu3`mRJ&oI%`0cZ@d}!8V>#Y>!(G|6%zR2_ZuDzVofjE^@QS5 zbOzA?Y{3!GcCp>PtF6*^h`-UNZ2G1|oN=nH4T$@J@Heu3(=_5N-vqQVhL}ir*sh{J z)}aWrA1C@b9gERawL*TEm;q-AZDf9xjKZ%eELabPJx^9+z7w;iSzmi^ zg?_sN1o*|>`#wwd6}w#j9oqTxB6V!ohu}z&(2ZRwY6O%LRl&(~Wk1{Oav4K8nlMx^ z20rPbD!tyTuD~LsUnJi3XX9#+3@8~)No)1`+>0&=`()vCy%xI3&z#bW9&=&Zxont6 z@NQA*#hGAmROW|#bxG)Q5N#@u^KT;YLKO=bL*tRz9!}3i2ev|YgCb7QEbHx5iLd^Q zo=sK*%pnxFhq2=7znb?6lWb7mVzqFfB#FNlWYKv=sy^@j@g|WAnH=%uoV0h~>y~f@ z{Tp1+I5j}ZHL~^I<@6l#i~P2w8c^+sl!+Zu8{xt?#_a<62K&7Ma%tB#P^q>sfe$F3 z`Gs!@`5#EcnB9-;OCApT$NB?V!aDd$LH(}w@6@Y5M`*I3AOJ*o($bsHKh-MVfHEgl>a?cEHM&!E&$<8*sY)pxfGt*ilt=SoF6v-t7R;XO zcxFi3F!{-30ndH&yo;$hZAyHiFK(=jJ8rd}pwb9_C2RMs2URycl`8dH+*Yd_Ik3}! z39teuHyqw$Lim3{RBn!cr`0{kfxsDCWK^$Wzm}vww4o5^CUNc-DPA}K&oS)%vwNIa zvL5J%5v76jtxEJUMCj-!Y~NfVEUzscD~|K~k2lrS0?#Vs_^Y^QL`Mudg-JaR(=s>R ztV=ii-d_FWRh-%`JSwB#sCfNugi{rVMzOfIQ`mginrBuMvSWL}VXT=Mg+E$=hQp_bcgs}T#kfr-;D+h;$` zN!fjamkhb1xd)6WGBUMB(8`^(t2xWn0YKM4-BBL?+c?eE&pkAyBu;RP7|4neJ7jGWyB?$rx17kQEywQBl-TfK>a_Lc;Ib?#j#^>!b_oZ5L65!zKCzR1KG=JRf zf9s7}q$Zn`^HJCHow|B|0;f15+o#~?SEpzLPE>N3)%|xR?O&hpz%2a|q@TL_-R$Ds zuM~dT{cS`6yORF%tb)Ui&uoi9e|KFkOA5vRg^op01x@D^{Rdf5p8E+Obm|~8@a@GG z9?iCNHqi?rZvhq|oKO?oxr#$E>c?T9d!KpiU&j=D&d;&iNuOt;OLK>zzkCWHF?B04 zo@>5y{Qs*qc$V7eZK3`oo`zNAXGK(1=orIyxz`?93ra7E=EKoTlC93_MxWw&y0tDh zn*sKW=feFQkZFzVL_Z9({wpTI2-v0t#b~6}-6@u7dSYf=e1MF4?8%wVGmHD5e{s;u znV3riPI_)*wNd%~*Z!(IVB&e{%Naqu=UeLUXjZo=))AW7T2?&!joGS1thb;p~=Txv6AS>MpA=S}f9*G_T(U|&RnO&1iEc`0w2 zWDEkTr-ZF>2IihZ0J^o8sc3;xqiCQ^T73YR9xvKOoA}?>f#?YEIJtQa2EdaM&M^?a>KSe2_Gf)wp(>RtM5&#}q-k>2<14J~Nt#m9#F zbVZf_D-EVs>j#TUflNUUN84{o2F`lT|739ujtH`F>2)r~Rd2nsP#PyX?gIMIn!TR} z(2jInEr)Y(E3*&*Ha0dy()l1w?7Zx^#fZ}X6=AnM-*E9)DvYk8 zPmUBtBdApL^zZ(PuY#4xoBjWI6OJlsUaE9(qU26d+$zieQ#~W4L0V6jdABPd#l(;m zAPI}oB4rg&@Vh_E{uy?%s;Q;5FlN@mrY^1MJeI_6zKIUR4VXJO8|78sZ>63I2sD80 z3D%?vJ032=o>6d{Obu*0KLup)TKAKAJ2)>3F0}&M?9}mmES{gNG8HY~F(L0KLnzL> zguoqUQ|VriWbmguhcC)(5dG<4`<*TLjQ`y~PqhpgPs!$sm38LFvYfX$Mb@~14cMv= zn!RNzscp-ns&vmvv~=4zPUwNI95wvg)zBHA*0(B}DRiCzJ!JwH`WdJPK0^;H=QBrK>~5&;`ssmbRTiy*pPgLv87v^QLblSc(CuhcQdL zv}F88c6O5!NDI3=Vr~HdenLzljd`8odi2%GIV0QM z-n_QxwABuN-2FDY9;d>)><$3PFei?Ss3;X|Dm-N4-XZ3kjxPn7&t8uT@5UjJyX|?f zAo|U6#j_`%THSfI&ffB~9824p^-QVF45@v@TyI-^wVk@E_ItGT-t8Z=+MRY2wefgB zSH&^pQ;b9^k?6J^2WC^YO@Y9k!xT@5HnQ*dj?-v)+TbUN4zfoS(uh+f2hJv$Sbw$X zu=i|Zd7hv1V0YcV1a;$6n~vlZeY9x+?@p186m3uSkEr7AQ>g93-);uif)AnIb9I18 z-p5#kKRR%C4VG|>t;EgP976R(4<8=JU2>78I1!ChWfvO8TB6U))kFcR>f`zEZwS>( z_09;V6fU#P?`ALvY?WG_e#-tkSJoxVEZU5aLeqIg1^~x}^$_$7l%F@?jE+)IJGsI2 zuX}q1hRX{HH%s3M5#mE{v!KKoQxZiEH)o{qC-4Jx|J?;Beke_@ieWghCGIDSL8E~u z+mbrRA?tKX_1HZ|QsV0dQC=mZ0@|bY^IL?R&j6kw@ZEX_O-$0@OO=Bwn$pja`lW^( z^v0*-h21}OHEc0wzu-X}RwilnisH1)%AM_p1B=ECY`@v6+xHFXw?1`-8|VNwyiPV2 zjbt!w9{1U~W-u@cyNxmG9!x`lb&TGx-3Fwrm#UQqfFG)E`b>R%$6)CedMU{RpulI3 Zg!zQgYWP}Temt2ED9WkIR!W-%{}0yJhUWkP diff --git a/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png b/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png index 5742434efcc37a251e83deeb58b9f32caa1f2cc1..c6437475a428e9d2f56e4b74fd499237ca1d9cd1 100644 GIT binary patch literal 51219 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

%j|z!rtnD$t=fIw0@|9=|X03 z9K$y{>59g0 zyHq;3xhoi-ajMk*=)8Obb}|4Lp@n`bOq9I=D+lVntq0@$QqDQIQU`Q<>__9=RywUY zBL@O$pmm_#G^fkh3B1RaDR43;sxzr5&n0W@s{i8QF~fEQ1uIr5TRJ|)k@!Jbm+-U_ ze??%sQ|IN3fqEGL8E_%vYz<+tO>^qO!GEJA8&Wc8w3StANU=EJ$PNw(7iFw*Kf>Pq zun=ZhJ~8GPcNGP9>;NX?$uQe%2Ti#aeLh*01e zF`jP)Aa69+1k`Ly7pz7aNAp+1=W_4*#p@15nIuso@=B^W*q;yce_m)zwNxIAyX<-X z956dYK>4bCbGsz%|C|Yv_AGeT_IT}H$JzEg7r{N%kdl(@%}OZk;mKEFPU*$F)u)0& zi?44Dm5p(wXg0LJG=7Ar82w}3JnU0d_^aJ))-EtdA-lfrb&Pu6Hf|syB|c#B-+m&o z9bNxIQD@EV)%+sWL5*HBEP+(e!J(e5K~nkmI|9@P_fhHJ#ph`FD%HS2DulbUmHr1& z|EaAI|N;6)c+2`@L$Tt znO!r&Qt;o0de7#HRaJP`ols*Iy6T}e%)^Iz-|L%e)$I{%NkVHzv10iZ3fa_%h7@!r zz*%moZ8e5F{uM!bUzGkztNpF!sNoP}H*_hDY)GXqdjhd4`-#l8@rL0Q_R#Espbup9 zyiPg&46g;85dV8h(wfnD8g=A;-Vh+!1{*cC@j9#1jmrzf;|7BNdeOI*T36x2YK%S@ zrf80-H&F=cGzFI0;?E?ITu$2kaxspg^BjYf#@QtP^&z2})lLokZmMa+i+bg=yK1;m z8e&Ery}MM5kt(J%$k%kIHpC?Rh>Fd0V?4U&@o$A-+1~cKo7B1QxSipfZNh5yS=B@`HF_vD z8(JH2!|CKKXp;F$Gy5VE5E${OkGH$ z0aA&M-J+gZU`01v!ADE0 zIK=!?5{dj3dvruN4n|vOK3N3C;-8fm(0L1V(g%Wfn5g7M>Cu%8N^na~(i4Wrs1ecB zvr(FAb~hQr+s|KL2@6m|)K2u^22vX!5a1uh&xV6D!iXR35`jh+77##t`=k7a7K4(= zPw+c_ux%^c*k_3wjI(sVB~w+>rQ{Yg#dAJ<+6{PTfD^9WU+vB1=R+7g(uyaQ$!~tt zA>8n>m$Ee03V9Wg(5+%mApaPDr`?E|HC$4xIbP}~lD{NYw^o<@o+%7)w0M(7M6w7O z{qK1-M#jK&%6Wc7#N)xz5RRtmJ<>awXY6rq*$6M2*N#nN7!S<-gp0al1n2@SRiY#H z_wvJ30{7$d=O_L=AtGWiXX2M|2vHD@{f=7QHYh6j`g8dCrKOQnFa5g4EvQ}w2C~{E z)A2ohIz}bmN_`-&>&;jrjCU!XD54f^&(HL=&h?$bvV@xUDRt{((Wsh4M(s>-qL|^L z$h#8|O3-X{X8=RG2^^Bgj~}DBaRt^2&2I7(ZN~el8Q_R!*TgPUhYx;kk6kV_5JTin&nt?Su6W;gb8^y1|(A!5I zU%u&z8so)7pu{eoE*c@j%E(Ljsa6#X>mMwJ@biB@LJ)@M;ZY`J!kUGSNffo7pkmh1 z%95_z{sx!VkBslnUzl9R*}F$6DJcQ3uQtZ9rprtjwJN^7IW%G)mp4>6RzFvnG*(f! zzqr<0zcm{d@|A1SXu|*Ui)P#3;bZrSDBt&?zjZok)4IP|C+%)lS32A!DA#aYi~Y9C zq{Te6N5t}?eEo^zNeFp8IgcA-Q~s&u@Y&*^FyBs=PAc9}Eg(iI?RY#0%}?J>XoZq}!7m|Rs6pAIRg$ARvqYbvc>@5pnAVyx2gjunyHnTv*z5qb|)s?KC8 zM}4VZelbQypYa>66aPnCJfZcyBbNpuSCszib`w90tJQB{Tt_-tQ!ur; z&s|_Sx~Q#g--k+I@byc~+gLr_^?fCV?_+e`1@?~uZ*-X&8(XkwyB#J0P%*O9Yg(-; z>%O9k7Zs(LoN}Hf_L^t@VR80OMi5G?$zc`FCkjmO6xa2cbD2i+_Ro%TVK0*Pi8bFBodYruDNL4 z14flE3oByJy^>QSrF-(aRqe_pr8%FQn44!!{@iK4vf3lSOV@&2+_M^ElOQ9|ic6;} z34ii1O|zHV?_+zGoKQrxMX?Qa=ki1U`qFE`%mPf$)49e1SzhMM)wIyPdrD>+BEnR@ zycfdnC7&kgGWc@aceK?xs`fJ3Jd!hOxm%1~^r?fme|o}!nI+PwU9#Nvrr6`3@pCWO z%fv8lXLeR-*NSzZH=7+;@@vqjGW_LD%2e07^m_SL^VmFJ!v4&~zsE@5)!+*oXG5OG z56aSIS#pViPikrnNSuiR%@8e@OI-nh`{Ww6)=hu!37QW|CY_u1>|_Sh%DO(9NhN>X zu)k4PO(FQ3vO(u~&|)Zzkn?x%kn>S7t(V4r7cIqQLO?XL&Ty(?C0t3OL=oP0e0KY(S4Gv`mOP_7O4*@+$ElCCc3&)1X=ZETWhby z!iXi18ta)8d|q9h7rQIBBX0`l3hq(olN)*_N2zxVHF2%yH! zVSNujT>eY+ZhLeQYcbNOb09vDHp~)AYBaQ&Yq2KbNrq8xOY`S592D1SOsqaUEwdL< z&FnL1m+oT28R2-Lz_yQ{ipVW^TgG!k?zQjCQS!WW(x56H(U-mQRkp~3M2T%5L4+!3+L&)SGQ6 zCbYuLzdIOnes)&lw33f?uWM*!^$+`U$;G#`v*&uB^Q(rJDRI>ql|k%J^KF8{{qQ=+ zJr}1RE-WlXM;j9-LZi-eS=~nk5cNZ+d_}30a`CR#%Vx6{-|^CE@I&tu_iIc{Ff?)v zI%<}sze3ku#-yEK8WMRYAi(8HiFW#@tGEp8<#G7IeuR;K8b4CeJYtoV%)pMVtfs_B z@A{=CPMS1a85#1zQtErf1P@PKjZ>fk0uj;L+{VS<6a4fQyM;)YaBfgwaH#U_j>M6^ zM~*@AlE3UjuByAdlT4H9R~N^B-zGl_!si^s19 zy1F{k(==k@r8i2{TUx|KgCEK*-N(`XZ5}92Z>3_-fAz|mUeTQ?thRC2-Fum&SP@;C zl^>|m5-1jx$X~9qNHuSMI#I(44bMyia-0!jK`Qm6Z}prE&zp@lbYf(l ziZU*a7E*`*uB5p$-l+Z3zor7PEpyl%Ya#xGCL!k?P;~gY( zj1;M?Rbeij2c3}jBFXCl_5Ji(fA4zUf%*nfd3pWRH@w(5FeThql}?)O9oB5mc%F5f znJ28bf2Rr;&*-1Gnkv~{{1(sur1<&iaOj#!t zbW@u^v;8cZUlj+P+FVdw!t%hEs(0(#JwxtSe#Sq;au?lrtqNUt8!t zaYRP&t=m?QkEYl76@l#76&cOO9v-4*c+hY8m9f-UshM^*Z}zmM!=+j6r&EL4uTRN3 z^Sj5v7q!z1s=D_gy5@Mxmh7sFdOa4r6TJ4(^M&l~*n5&S8~!FNDmcHU65ug7I=f^P zANBtHI%RV5>i6rRG;C>6!Ve!aa}wWe!NZF}K6o4nrPB1agN-pEgJF4un?d_rSG4y~ zru~c8saw0(bz3Ve4rAI(I90{ZsKMFcm%*{!%n-79c%AFG9&A~6J4{nvA5CT9G(jaN zCfUpBR~}0*;rYDy*(~I4B(?Rf#V&Uob3UpCw}{Oa-{J`ippq;PX(R5*Tw31eS$Q83 zagdFtb=Vs#oT_rGJu$&eA$>5BKjPn9x+5a0j&EVU<5PVH4}LNgn;2cy%C$(C`jW0j zJv_-)HG$7(J1C<>*euxD9Nn}Rx92kiIz~(?yfQ2I23_uyD~LxYeiC>gM=mETF=URx zsHG$95*uq-6LQz8+be=i+VXzzs*aAX=do+l;K}IP*AOv76&0u5#a|2)s%w7^rCr)1 z3j^AFdy6j9J-yG42@u3Q2E${UKQE>hb=~)+pTu?ExJNR=nbnQaD?`5jd*I&w>iJ+= zOL{VCcw~YUav;0DuUu;Bdy|;p_)>pgUtf%A-CoR1P6)P_XYAQh9zW*f?uMCVV%`0; z0HAya3pK{ABin__HLkNF#Ub*!lq7yom!UwODk8w57svnjw?=9@nL+XY8^(bzdXX=;2dvqj`W#jE$l;$Z2j?B%;q*n;_rSIqI zE|{daD`D2sziwGzjqkQoG~MqqCqFjiaOWg{+CG=^HyeMvRn<_Yx-BeafQTtym{GZ< z)!9x+G)KUT>ba(YiTGpXip|ldA~aQFw6&i<>w)O1vPM~_L6Bd`HquW$TKj09i_d#% zf|t!;a{L~3#7&Fn5>0c|owI^sUL|j{wh4+|-n4q(&zG3d^KX)l!p7lB7g_OEE-7l0 zAm;y{n}vV34FB~A`wE-3t@=7^FO!~|M23~S^>rvn0d^JM-MvF?N;+>s_G4B$m2_s7 z)_k+zZ8hDh3yr?bQ*zSC8-{TcGr|^H_olkK;I;p3y5Qp!i7@(Mv726mO%A-_|4U12 zyarzFpK+$6a|X>(WHB_foHwq(@t;mnRZ=qIAhzNpiJzUMdT_^>OHUPbxNjXC zS)fMq=+PswbR3yC&>GHtP!mE~{O&EkJOr`~FeP@tLhUk%7o=Umpy-+kOfOeseC~f2 zWph-d`njyk0kC}_8MMWnzX0)GM&2pH@ae38R&7%G$lqk|+`NR*HEY{oY_tu$j*brc zs8xy)M=1Zu%E|(T!Ui90<1MgNL@_RHstYxaoBKX!*ZNb!wvyxLf*m;foA)LQn0&2< zIvrRCH}|DJ4_pRMHLwpDGB3BQJ_CQ^(6F$g+CivUf_2F5&JOB=zg?aerKK4FGa*|p z1^3O;P42#LI^Jr!*PF!01+E%Umf<7)0B-sq(}9XP>s@wua;E7$0UjQB3fM!n zm^GmrOzLlAVtRtuEIlo4b)$X70lfcrz?umpP;7B1w`x>D$fO&Q22~XkV`J1S!D41; zgUl3vnr3AEZ#ZRj3`+v3(^9#RXNI$bctDxe*vGG?MZ~!B`qm0z+<;o6ag>7oCSUg( z&#2%rQ+1c4DC$f0$K9-i=)mP($l88=v53?81Giq7tpe zoWk)+0jfIHS{u<%I!1{AZo(KJO{KTtMs(Wo;hC-}uFwK->3p`c?{tb-=;(kJi+n&vhANxi z2YdE@0R5m2H__nf-uvOkT|#W|jmO4Du~$BS{tWUiNWtJ^FMw|ZqYhp>6ncn-#uXi> z{&^_od@AI{g55Wg2ll+$gPeRo4Q(9!##dLzuip7}S|{$~$E~BeuuC|10%~^GaQyuJ zdy)ml^qye%qvU~LH&Vq#$H-Wxv#{|)LPFx^J#s39zdq>)hHH8gbe;7q-rnAb+1+Eu zds(Pzw4V=3AGT*%9oM}G{glk>7}UE2oZb83YpdZ8xhDD0#?=B#O4Zp@NU|AfleG7D z^+U5_1J2Gx7Zy}d!2*E*hbAN_$!_1ijm#J{7wB)Zm0DDkiW10=?S| zmH?PnZ2bNbIcN?}8Lw^lYx&lyFb-D-Er4i(L>)2l@gufeTuoCdF)49WObjFqP*jx7 zrbNU^s~l#d7(-rXN8p1o1#}89#ejnk+7vsw|B|6u|6FmHaQTU7;syhr;)AsCfEtI} zB>Wk3t(af-TMZxSU1_|Q3l$$|uO=WA+1uNnpP$Pm@roirrF9D@Ga~~`Y0BUQFb!=9 zROq9CfB>;z5C#o5sjRvADrzi)3m7n2h6)s^aKVio3VL9y_=tmJ4|IH>A>)XX{sspl zpsetUywBHY!eokuVCq-G>!9`+DVa&e>#*fujT4U268h_-IOX&0I0!p#(hZ)gvPrz< zpnC%{*hNzP^YmL77`u$XsC3wzJO@9Y(13ud`cV{d1v(7GffLo&fM zkKj0GZunHmu^c#6SPM%rxGz0C@}7k`PurONUbgPeSVABcWLAhCwQPueS;wdu8@6TSqXks1dM7Q!^2sj%Rv=*^TrJro!}S+N@Qn^0+f;8 zKCmJ%ft}Q~K+fv`jB=Di6)=XNq&QLe8fD`Fr>6KN2vq=E=MMT?xRE@iT(Cybef;3h z`3igm^vpiEje+X!=Q)+3wRNFn<|>q~Va|aS2u$^<5k8J+sNj*K2xj4wP*4TQG5Fhm zab`c91P`PaVdO~>5j#+1-GD0xI~ceuD3C)Sb#@zq*KP0YfF=Jrbhhcw*lm;}&S=?6 zg#~zVOo0c#$I`E;LGw$mg=fw+t0Q^)bH034wKY{*Jw8{~H7f3!NfMyW8sRzWJ-YJp zpDHR_*)H}MEovKaIE02KyV4Te)Q%D`;g`5U7j3!My_-+EXSHl6~{GqxV^ zfwCsB|636>xeRo4a8yh)&_;_A8VFP-2Okiacr8tEEZE9qMGOL6mM?kmAme7rI7=uRh zh7<sP=3hYct&5EBL5qm4&k2GtG>?tiGRs*3Ghf~)a_HI6|gAEh_mKPe%u z-0U>@T6Dxbl2l0USysTOZFRgq?}y=^!O zj8buNaiEQ8XrP*g2{%xQeh{t*mi`w=xKc3TER%nXvdV;`QvfXjwK$x^F#+-I>xh=J zGIh9kP;hX4ef_b=1+0|=0|P0pi*Z0G!bY7V0hY7CGT{i{H5-$Xf%Q;f(uB2h zwH7eOAb-;Vx-qEIk%)eX|Jl-U3i9$cz!!#mU{L#7)06#43@|k;^praW28=NqQA`(g z8jyLaREh82=w$Y;JN5fN> zpRm|v@b1RK!9UIywHQYplkE4&Yh3yXiHP=mv>H(r5*rqCpaM>q-kzw^Vs3h}u~5UF z=(>0vh^3+c^Qo)H@ugc%)C>x^x0iE*A|J*h3<3HFcMx`AhcHR*Hs!08{IISBk3Mg3 zk%eyl)U^P1m*e1kFf;iCQc|4_q9=NdFp-1|Tkn>r{k<&#O|Sv+xmn! zH!)X!9dq;C(^r3XcI<*%6gJ(TnnCBo)I5MGJpScnfr{L}yy^|!A_0@bjSD&t!Oiay zs_#&O6dQ_{d8ld2>$v&}Y-_>5p@<1cZoh$m1^W_JRaNi^4g+eb8&QiTCx)L0;8u+pH5>Dq@ZdT(<|w`gdn!2HL% z+gGk!k%I^ZvK|PQV8cu!6Q41(2H{fubvA4$U{Z{h8V5Jcs8!o#)^5@>GUme&+!*48 zL<#cDbD_&)xq3_@{}GroP}`V@f>dUEcQ*m99#-L}#4-vBzkm`wE}-x2`qTMCQHry1 zW~lx!2|-@2fhDKdEUjhk5WO2})7P*K?!2K8M>;>z0sRRaG^T)+S#FHataSt=c;~f0 z-9XTTB;E}oxWM!HRX3F97AeoK^cVLax-e_k@b9!!LWT^7TU`Jh5S&bt($dm^o(P_X z{M@J?7f3%)E?>`{y;1mb2KoM~fao%i)qvOxHq$4tgfRgf3lbNIKSGyh_J`VCH5z4R z+wcdJZ!S!{RhWjBmW(*I+=;Ljq1F-@CPwPuy3v5zSkz-OFfhPoOlOl$BwV}<-1mUy z^A~P~D^40VQo!!r(8&WDzD3wEP_CS3NXuW{KWp2t7drp+tHe->MW^YU+v%qJ?2%}R z+Aw`u$H6Q8c>kNXvR;Ays*g!#0PQd;ZKJ1-tc};DlqK z?eO754?w@1m$83 z78~7QA_-o1U%q?++k@?c11u~oFv1=09@>R19r&*>u(8>}5)QHQ5=j{g1LE^B9T56>!@GT--I3nzi1i=Fgv3T}?AuY+Ucbz)JV0#CWEF(K%gm{3ar z9O|T5W|j)}pY`>xzkp%dokI~Vtwi^rZ({Rb&N#gQExG5=XqWwwW*nh4PFi=n#a}Y; z8!*d*1BmM!VhOcR)Ta{w;DV2~6SuL5U6a6g4jBf0xuRs=l@3o31a zg#s20I4+38ZeASgJ$PH7j)nu`8edWmj0u!MV_6w&*o08(j)~W=V}X7TX30R}-rV?3 zPe*rrd9cA>7|4Ek?I`9h5e*S8Kp5YJ(S0AMnQ{BQeQaKTFaJg5;la35?ZzMSH4RO7 ztMURcg0-mBcF*~yGx@@zfcEV;;WKPe1Ysb$$it7=Y|@Ear<8A9W?pW3O|e`y8uidN zHPQC6@AAVM`nJjEttG|A=2MtBCYxj?) zCS8}A>#%ruc9L*e|6XwbqYpUW2#nEFQ}sI{sL_f+(gMyxDtWb2p0k0pTeu=Qv_WZL zg<={j(sU$_oTkD9bv|aQl$PokKe^Zg5c!igXQ|)yUFTQq z28|745Fd}WE6wHiv?@t%>1#C_crT>Uu(2PGmgx+QjKs0o3A11fa3saVfJO=69@yV? z&20m36aW@rOk5F0glA-B!45^2CK7nKAQ|va1FIf3Hq`k8tl-cN!&qp$`953RT{Q5> zr0ylvkHPc^4TbwdIV^g5cz_==j2AGvCcweLxqqKBN)nEy6VUxYKlBQ{Dx&$i& zn1?RMC9Z)Zr~7j1`}p{Hw1?c>!|X3CrKNuYG)IPYQ)U1^*cjpfIK_Zvq#a9W5{C>} zX1#_^NJ>hAJp#TL%ZnW6H*emc$!lwOKe-#-niQD!7&cNOU#wbU8SK_9>rj^!4==9<6)yN|>oua)xnS4ChxmEd z;oM-{)8sg~5J$`T!==NjT|Hs#`+W&w$PWH)aWpt$&=D{WomQ;q4kL*B)|Ft&kJjGVnf8j8fg#v< z1Tw2*pe2R2{{3s&`-33l@yy&DC2rtP6MK32kFK;d|)^4#F^wzXx0ruMIy*aa+aZsdd>fNrAcfw}^`njrT8A5B|8OWQ2am?&TZAq8$3BZMe*VxHWv#&6ql2O)A!2D%W(s#1O(0_ zS#({urxjaEatioY=l8g z=m20S+DA}N!Tu5)@xg=$jN4pfZNPO4Wn)`m8MmYj2QR4OfaRFL-*{Sg>ymPb=7vM3 z)bYF}7tct6%2BfVFbC1&kE-l_W{2XbN1E^ZUMsRh3Q#(*Y)c<_6glD4B;Iv4C6%D< zO03QcR`|=X_vkpL*0Y^m8S8=z1GumKK8u_Z6 zL^hGxT&4N$A;HzEUYiZgBio9>F|}9n3g|MEu3STqFX&%B1jEF;YFua?1j$JpacMu& zPsm3G4UBy_H>R9|uuSAqjErv2Z7Pn^|F6d0GN_Jd+ZOJP6M`fp5Zv8@YtUeUjk^T* z;10pvH4xlggG+)0hv4q+7Tn=$a?Y)<>eYQ!@7J#CYTdo&TC>L-a|{&6p8W$x-&i>D zuCAa^Bw$Fzy)yH_5Jf~n*cXX28fe2o`@&6%$7>sn1T-i%TF@EBb&ChL8%-u+;eW6+ z@{T_zNPn;8>E`7#d&qJ;yCspz63qKu(`{@|*C)0(kh}{aECkOz)C9Nq&tX-jf4jb{ zd@Q7j#B(X{2348Twx&%%V|`=ci_l5Zjs&ohEIXl+f-mzof%fht+7$)F+mhF|CTnQV z?(90Y#mDdVE_TF>riATpr*3VnB82%zl@wcNZAzE}K`h{GAGaTl=kMcz5Oi0kx);S} z$5<%P+aHLY=vx1sE~=J;6+bF>Bg=y{{>^)ppKH(Zi<&Dci+)|T)4Tg=@e-dPKtpnJ z@XqLXPj_)c@xv@taBxjhbv{%Q$#l{PD_IL*FhX>|a$Sg5$HC0GnaW=}sx*e?xl0kW zOJWkGvY+rb)^e$$`-xFfyNvCe({#Y%_B+;|M~ASo5~k)}SdS6#c;pmNIMr*G@;&jd zo%zzzpd|=}8(=sruWYQckc?|N z%^>WpY}5q%OX#^PTN+^oCGtMYxmqktfLT@X1D>pl9n$vJs7D|rY78tF#3kDk_8Te0 zd)=i>na9SkFc=Q#idJ(xT#Ac0Ft zZwie~&{+gk^0mx*-=5;Vu2IHy$hg%#O%)>+(rN&wt9#5F$Q0{AfSF3>9ut-utVHgM ztjVcSo5Ylu_cHgt>WAGeOHEv1%4!O z+ovId(zarOM(+}G3#-F0*`VzdxH^3G9E~_s;(bkG#-#oV$bwOMd46%RnQNwIR+5b3 z1GlKM!79r${KD4O);87jZLX-$H2MKZ1~Fu4Sk2!#>eQ(jlFB%BII&GQo-t3H@u7K@ zj)U>E32RmRC;fm8U#zTCV*SYcq9;NMXcC2#mA zg6UyXeY>$ih$gp$Expuxn)B9E>%!~~CuB!UzUp!uY9;A)+y79(zm!{V-FnwV$iTO5 z?tJDCV0r7zx=SheH;;Dt7HoK1I)h(i$Um3<#lsp$l%MF;Ayq9QubP30kA3n$D5{p6 z1VADmG#(+2Hp$Dan?j3*_n|r&gAH0cnO4)lHKn3z_p|FPJ6nfnNY1vj3x1^vpN4y) z4Fe7Xu972Vyo;S+a9Q(9rLCY`yf+X#+&W6q!TVlVh&_$pA-Az{(Qzxhq^#&BxV${z z1(K>8ED(h_(q2=YXvTMX5vMp5_l=_))u!8wx`bP8w}B+bSl-98<#6yD<>CxJoPpeSkmQ#2zhYNuE6r5PL)`AkHDEL;?kG$WSty%^ao4=@3> zAPh~AOJGR1*xDGHbN6!U{OvmckjQg#h-YN7pC`d4iN28f6oLW!SL9Z>-Dgnx_rXlV zBYYk&2jPbIaS6UnM%^%~b=NBLLr~9|g$$cAR!W+Qx2*i5$6Ysk7~f(-t`dC_Gd8xJ z#vw&m@}7XwZaEva(PX0!M!(^xU+2<@E7|LWr|5Q*NR_nyB8M}HPlSZ{uLLLNPkf)f z0BFcR$l zvGodnXjS(w%(FfHNW`{B*wyq`7xDa-U;AEgIy-ppn7^tOK3zn_cTE^t2~6O=6W~^N zv?SyE5wUqA%05v^b0Xw|O8mTXA~b(sP!nzhl>$rRJwJ+Mh`V zK0aT*3E9&KCE*w4ac0Zm?<9K{PuSP%ljla$r1xyh%t8Qw=CQ>Tl#;?=i2)bnWH^QK zsaDn^?XBcPP}1E4FAuA^jNi>&+#ms`{F%dav1cOvpbdIrsM?8LMaMD(}W_v=nNj;6%$fM;=* zpVFJp|NQToemq~VEL7HZ(}c*J%ek2=FI+MNeUH7)CjUMH&%G4m6)B7<0zkashZ$5N z2?X(vcY5n6+3f+Z06M07iseFqQ7&Cw3rjl0N0B%KVH&_|I`U6)h~% zS#NAY1r-r>_C&__fQ)ri#;i{{mpvB1^GI-3X@epDm=!`Z^6dw;(VyN|zZ}rgDdJ0D zOkrI3h~zVA$tA`-!gw>V+&qseS%I%18KCHsgn$>xJIy4gx|~J$HtZK4ATrchfE&6R z8a5zwBL@Kf`hx1NO+EHtw6@&dBUSNnMX8{`wy)6Ys5YG}_p4H{I>0^9$w zLu^|8UnimSl(h)azbX1w=Iz4I5&m8`3r~`yBdP3peMv!Ues)p@pQqBoy8ZN2e}hQ*V`}Tp!*`I^bkhF`R{-uyXghd9jf0&F~=&0mN5UZZ^UYQ z}Wco(IPCk1_$|tW>;j!r?PDoVhIhbV(3J%DKHcb9+WSGmyt<6++sOt zxwttpBqOhVWRsddwm|BE30kV|>4p5r(uV=mq(p^m^ZL30ol>N6%8zvL=|+z5O}N#5 zWTr++!ovQka6piJVnvCWzISXP>3X0=Zf>Kgg>i%*+3zu9N@}JV0*lea1XbKYGz26K zdPUKX;sKvNAX?1*snxeW&3(LYcsd*f{n$m!9n2lfxuW`QbSCdVb1EQh%csPI7BkI4M> z8_>9EO>!4^c%>k6?|v;>QgZQCiRw_YuU3xr?`t-SiXuK<-exTp8jXHjlq$ML60>o3 zg~~k?7JHOV%yD7(snCZ;W6`nBHxzm$f0j}_BzV|`RttNF*vD*h3W7p$M1+iuAzoiY zd93yhCkE{LLW({^ zIN#Yms0cNE@wi3m-DfZnhhEAMV7?(pOebG$CV;wWw=exVC6RaO`uD`TZ9Gg2Co~#1 z5vXi%?PN&5F?%}u3z5`~e#|1IdyAG##M89SaPdnzZkF-Ls-}o0)6gaZavxFUm9cjj zMs0J$UgEO|l2Jeei$joT2bkwcCd#L)NkT?HK_J8t61WWZ@^CZZ1z)OqW3m)pdn<{H zD?R2`I2VgB{W6hql}CNW&i`R-JeVBAzdKJVn4medUu3*%lUFK*tJ36%0ccr zQk<>mJ;?vX`M*o{I%I!Zzs$`8QzDx}dsT{$T7GvyS?No3USY+XANVSW%d+%48j8ZK zV!S9>S;&&wQZ`s3ewsWV;f54d#7gZFOpf2HsR@^chmL=Oyu(I>Yb^;05yx1mZJC42@LyGuVAuwn@-fhe4$%2}koKM*n-z+2^mHvjo$RgZic+7#ix`si2 zBi`2T{r;u#wn~3@iS%qE!t%^{l6f-o9*cc-(aCx^#YGnY;BQNQ6jCB}lh&JXnETUL zd-i;GR_uq9Rv}Ot9>%J=*EQ#VZaSo( zu9d1TE%Ql^`mNIDs6w@H2?iH*^BWZ3dDcDkT_6PFq31;;isG&J&U=XmrZFFv>=g@( zf((o|DUVSNs%gsSWzrC7`7mTa<1InavX)t;=trmHbb~Z}lFVMbzc`1>I*r!W@I8)8 z$cfe|X|wh9Fg(2C`KUh|7!7!M-q<1cZ7;*?plUH%ln~e$%laQJIynCS&nvGdxht=b zO?NL3Hm5?`(wvWZ5%GbigES3)dUJ;=4WP8Ps<4+jctnhb$&@8q1XCZCH`LzZ&FC)^ zC}Df!qV|)$JwArvbQTx1>ELV5apk$c94>&wFC@2TTBh*=sNrbxw0JC{l%vg#%eJ#; zSHs9H`-fj6E*4I7QyR)Np-Fa??8_K-XxrBn2JxauMw4*rvR{aoJ%JIf}<}5 zo!dy^VEDHUXU}r*_6-{>9>Y)1&YdMdA2xg~lh2PKVXz6m${rYt2PF7)_NZ7iHNZ*S zLAI&coZKOf_HzC!dcyaX74(;qH?PAxx_xWt@VLHkU{E(@0-?qUrMEI(>xm-+`Ge^I5y}Mn(zwjDdIbP&+ZB?odB4|I#2azkeo?v?@ zWI=<8BjDlLu@@T|rKc2ZXLeS+Yn9@0kR1zOdb7VZNvPV}=#)#g z=K%%O<2JqJ%$014YksdCXsF~RK-Bu3Er&}TFv$DV=^Vd(k?=pYV^AZG3RSG$1Z&T@ z^k`K34r(v+l9Ila@-Tk#%zIOeq-+;>`iTyuO{3p2&zOn??1mcLUlgSyx#SjBqmihM_&TLy`5y<6 zZFUBV3Fws$W;I4@NgU_?kms>*Ks8e{nt!FPUcav8fR+#g8}gF!@Sy2^yd4|`3isWb zk$oA9-o2@Z+0Ezy0sKpGIsGK_-kmoQ_x)FrG5s?&Bwg@HDN@?t&QOVvH?SY`$s0mH zIe+Qh^kz~K%OfvjoQYP8<4C4vDEqUVWxz#jmPG4zZZkLOugVAJ7!D{dpeEIIvdYfE z&qrQ6=|;TJ!coQAG5013hNiOF@&+7iR5rIeu(H(!fIGuEoH!3kb2mX{UJA78&T&b*c%_XRQ# z;Cd}AhS9!C$j2+pBJ%KB$l#8N=RK@vJh^$aTNw1@8mQ~FHNhB-{XvYgIzgtbSuZfR zUR+wsAByZKc>%t{w;(KU8iekCb;v0mmA2w)H1!9^`d1?oaFoHt&cNW!T6YfrP0*LxJas~o8yjX~NT zf?m)6rm<#Be_YGx?(7PB>_-Ku2w(57NjTT#=J6x*h#2vb_^nn}b|yv*620z2z@|#c zE(O=0<|`|vKlw0(r*rRUs*bk%Zi^-@S{~P|!?2v4$=u#W6zI5|40q^bBBDjMc&$xX zx7?Wnq5$B^6m9S$&6z3YC9e;{Dllwj027OUty z2SVFJv-U)>14aV^TDY(Azh*bNjjq*OSVTOjT|zvAk+SB4vxlHNCml@}&7cg+!2w$e z9w=zCE$S#CkQHW}?~)bOpF?X4eV(m@Pt)=cRcbC`X*i?6LPtm47NB zq1oa254j*is%R5D3A_-!xF`cg#>QljuZ34M|^F1)6;seu&B#%Cza=wbfw=NZbpR~$ldC0I8=&wX>??5 zZk`U_DBal;3~+&p8n)y@*IF5!zq>5(xWg*@0T~c@JU^p)`V96|V7z6&UaVhwiFz0` zjUc>3dx88?>*|5Cz}$jKLfb$rYVYQgcu%7wJ%}r~eDjpH zN1SdrmHX`UUO*NfbRbs3|8P6S>m}e+%0ex1vo~-io|nhyd8a+Kd3(oe4Qcx`i+*{C zcitzE0BOsS1V2{LI(w*G?G)Wf8L&UeLIx&TXjYk;CJlb_;7bQ z`=u^%>tXk!<3+kh(vZ{kJSZ3`N%YV$cOhW)lyrJxRy(Vfpxv-i+c5Jzz2~Rd+0-{3 z56e>a*Grw}MT*NV9_??P-Kt?g`9+^rbmtJjQon-|j zHTz4tL=6suK&Ol1)VaAW|IWuKzU2Ep0cRL*iI29acjIr}A0BqGpV%({uFeG_%!{B$ zaXI}tpH!VCAvqN%l45K?hS1r2OaBV zTYo(}bk3Jaf&(HVz`A6s`*xBb7D5wm7201u6hLX=l+Jccn zvmcvmMiZazj{oY7TD068UC9d6pKV*Z{2=i!{~Ye*67F<8$s~JvGhQHbb9S#vn99n_ z&*%gm8bp}7?`rYTJ&3JpiZfoopjC5SQPFa+xp^^AzPOtFnEd$gbde$Je7JPhQEvgd zYUp4yYTREo5Adsv{R#tJcCkO-pT)I$9n7=qaB7xC@jY%_SxkSp`lDz~?|J8Jzx^kT zwWRdEcOi(7AddgjY{Br&H_OX zXRk@A)PcbxoTWQGEMWC;QXtTJ-k%-dwRkpg$uRHv_4on3J2wi!J9Xiw_4L=Y?-)9A zYUc-MUJI=zCRdl>l#TWCvHNPd6c>xY<3MdQT;0AvCds8M?X<#*FxLW2?e!0)N0x=W zx%n@gUsLv{vBlBQaQPan`#oSKh>lO~)|q(w(_}a(>z1=b3SI_M0=)y1QSY*lQBX{+ zoB%;RJ$8VNlQ%he&X7fiaCl&O*?IWrMdW^Ikr|(cyff?2uf|#0L>;#;(IM+S5z@by zhy|@UIA6fS1m!I5@}+zvx?R))b_!Ik6oXRPQeWSJcoLe&v>1`?)cieK4j%8O5k>~c=855-~~LIwjV}QNPdtmygZCN_jZ1Gd2KTg5oH`{ zm#SYFRTf)=*0csWqFcwyGo}y#Gy?%g%_pM_|LcY-5mCOS0B1Xk+bh}NC|K{BiHVzv z`$^;K^4<uio#GS^G6r50AEC*>|r=!y@^4f3XSuy}$QQ_nurDa`F-Z?P*?zP#0ADtuLfw zmocFEI{uhgT>EHfx}LuwuGMOiy$47RNY} zaW=>aAeSssT61OA%7J({@x&d;^(B;t$nZNYX*=Xz4~a2c|?Q=u(MMwYgRcdNu8;BU35{D73!kC9 z5YW240wa_sZg&#Cf=TVVd$xaJzPWtp4enfp`*dCqy1>K2Ss6pwt5>keAbGLt`lJe- zU+eOu1O;pE%OyA)wEVCU8g}mmGMfX*kqChX-bF{p{Ny;QoZ6H0>0z6NYg+@!SZNvD zn7BAqZADg6l63N$n}7gN3UhbcIsDS0uYU@&^8WrFXbanh2U^$;Z)Okq?@TBv#RKTS zN#No!EJ6n6=iLvRQ1>~lNF`a!ZF0fHL$@he>gb$SK>elK&Mj)>92 z*O0b4qWZ8dQc=M+#a6HT&BVt8_57{eEZNMpiJRd&V*ioN?|68!sfCX&H$k3jC#? z*;}Uj-C>JqOPBMQAU6RaQ9;4;5t4nc>!~vxMUP+JuYtCmnixd8vzG`RK~l@0$S`+w zimJ-z$D4wuMlK^K>+QAvy47s!A?$st{?pV%1=n&}`;PoU&H9HL*A5L?ag(nKdy@yx zF9AOvqTRaw?Sg=y9MOxDl#fr2@(dLn9bdq+_oUwq;Bx52AR;POkc8;22yTXX;nHED zFgC{A-cAJuPT8(!Bl%*#CdK1xI3DDh2=cljj_PsWYQ+BZNeT~-;f|#`{h@=XKsJr# zy}tLLG4@>uO{lp&*W*cF>xX4|@HB0LqF=QR5C;;R9UR`tq}|?)p+5(MvGmhcGZAo@)3}_;>F_Jj$clt&W>Uw7eOaXiJNi%WBty`YaePtXC$# zp4!FD%!&Y;#ut_=ZAeM2Poc5`8O)Z+CSv8|2Aboe%#h|_( zBIvD!2Dsk9yI&eNX)*c|V=-#{JRPXujzm$S{@ErqHu-rnjM+d;byv1@zA|RLVQ()P zTt1wSmJYeYV7VJnQMZC2t7Ky22aAayQ;ZD3U#F5sGPbsR93;w3YtIrg(kz=SOomHwo#p z-%}Nht1jNuizJq z!23IAkWoi#{uj(@D(bHqCEjz{jj+l-cup+@NyNTHMozyF>;{Flfxi`Aj9vyOycwRC z+?ygF-rIM_OJY{I)Yv6`nM}+8GjPP?mU{pEU2ycR93UFIwNw?~UZNt)gZ%?VBEt81 zV^WvsGD&Q!o2uAqni`K6Csko|^I*dD7F~BF(`Vju;qf-R3-n6d|CZq#Ii;6i%*GsU)@ z&Ut;|!g-yU%-?Fo`l=`6zPa#vg*R;Z9jm8;)n!YV_0eOib*pBx=lWE{J|%R}Wv886 z^&ngX`%drh7OGk2`82qv`7~;P@?7R~z>}be{dw=pyiNrXROmOdJ|e{6egouc4=-dk z!~ZJ`?r=QM4qz&f6iFvAB{F{QZG)Qd4xw~_WwUhIWCe+b&qJfeVEGmwbNWo1_KUPw zwpy$E0P{^lU&oNBqrnh*Kxbk2$AGf6Z6c}C|A6vXtimPP5U!4v3vP~!LgbMC>h)kh z<$5C%%|EG1lbdKgder?i%xVPqBr2x*VlNdH01(r;xe1Ek!2a9S?_(PhWA_>a>Ww@f zU&RfI$|-D)G<=MR2Y_y+SZ6uwI$JmfMf9-g;x4GD=A|+(7wMM?*br8af!2a@n0fN z^)MZmXZ8=Mk-Lc#O0dWWzQ6Y-m#|l!AVlxB(qN`R18f7CzZH&&D5;v3*X03e5TZZ* z-nX0nr@av$+H-1eciI`(W6F0W!&`h7IuRGwOr}zSf165LLTY)+#l5W8yPT#-ot9io zS!To?H2YVcl{8nk?9XgmUYrRzEmt+;{<~MKTaeoC)$xW$eKc`ULP{gl0B*76jlQB! zEd#mpY2S3nhzdedIH;8BDZ+kHpMDQ@GM-de?KlcUevMgLmQ|H&xIL6VVQc&8HGaN% zHL>0A2VCaK_zHUjN|R2SYsQqSDDS9N{AVOcd&kM?)oXH5#pxNr4l*QPVo+vExD@|2 zNeR7qr4NzSye-s@?>dE~Ly?MTs`gg)~Mj!wKc zx$3rqjz)b8E9J-6%DMPxP52u&gZxaq5QIV4Epo>-F;c2=bqYVlNqrb^6;bhi4rSaguM%gkxD}wnr?sA9EiL?(oO)UpI)0ZIjn|?r z^_=^5G55{+vfmsVua~Zak%h1F{|8x3Q|5b{z-Js>Q=$_g3jukdfOhqm<0dtlH{X1m zcyCZHRSA5X23^<-iy|Lp5yk_&oDQ*0oH}fRLNxrT{UOV5H$i$cZ1AFh1p5hWN&QZQ z^!HNwie%|DdT@3l#KBbgRo&l76Y^VFYUM$L23e4{wnK>ueP>WZM_f-{^IGZKcL1ZL zR-~Boo3bWZkoIYvUFe1g-Z~6d1!j!xd%=*3k%?~Zv{b<*b_5AU@pF8$KAJ6*E}TEA(;|KT8uj? z$3$%Iz7*!nVp`~;zu9JxQA_8sPbMJI?ngPoM12ETEDBB0L{mPcleBpgi1kCN4wugR9a^z$-fD zrE7x(9}-61kFdQ;FM4U{Sfzq!t~ol|$r#3b$f#j_jied4q}ZeqV`k$r60t5 zJNt@?&)jjjBW>SHtM09z&?MMuPfx_HYhwaq`~m+B?(b1zTRBXKnWVYqfo`GqENh7#qz>cwJb83-v{v@LzwJ+i0XF!(;~LQ8uGUIh8Z5A$=+yiwsqK4ZJuk zOHRWDCRgR!3ZqVR#t+#1;AHlm8S4 zq_#=fHcOe_s2`s%~bka^gtA5{(KA<~f(4LZHXLdpeq2qHO!eWw3%A{D=GSe-N(z iOK|$%w>Hr}p`TiWd0u3{zXIE$07+4qkLAL;zW*PsYX?yP literal 54406 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 + + + + + +Mail Attach Existing Attachment + + + +

+

Mail Attach Existing Attachment

+ + +

Beta License: AGPL-3 OCA/social Translate me on Weblate Try me on Runbot

+

This module was written to add the possibility to add attachments located on +the object by sending it by email with the mail compose message wizard

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  • Adding some attachments on an object by creating a new Log note
  • +
+
+Attachment on purchase order +
+
    +
  • Then, by sending the object via email, you can select the attachment added earlier
  • +
+
+Sends the Purchase Order by email +
+
+
+

Known issues / Roadmap

+
    +
  • The module only allows the addition of attachments linked to the object.
  • +
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
  • Tecnativa
  • +
+
+
+

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.

+

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_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index 073c7da0e..5b4b32e5e 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -41,7 +41,8 @@ class MailComposeMessage(models.TransientModel): object_attachment_ids = fields.Many2many( comodel_name='ir.attachment', relation='mail_compose_message_ir_attachments_object_rel', - column1='wizard_id', column2='attachment_id', string='Attachments') + column1='wizard_id', column2='attachment_id', + string='Object Attachments') @api.multi def get_mail_values(self, res_ids): From 5c9df5c6ec4a8fc83a9686ce4945bcc2f02e94e1 Mon Sep 17 00:00:00 2001 From: Rodrigo Macedo Date: Mon, 26 Aug 2019 13:42:40 +0000 Subject: [PATCH 06/17] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (3 of 3 strings) Translation: social-12.0/social-12.0-mail_attach_existing_attachment Translate-URL: https://translation.odoo-community.org/projects/social-12-0/social-12-0-mail_attach_existing_attachment/pt_BR/ --- mail_attach_existing_attachment/i18n/pt_BR.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index e7e837b89..c3421c6be 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: social (9.0)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-06-13 02:44+0000\n" -"PO-Revision-Date: 2016-06-13 03:11+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-" -"social-9-0/language/pt_BR/)\n" +"PO-Revision-Date: 2019-08-26 16:01+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/" +"OCA-social-9-0/language/pt_BR/)\n" "Language: pt_BR\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" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.8\n" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment @@ -31,6 +32,5 @@ msgstr "Assistente de Composição de Email" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids -#, fuzzy msgid "Object Attachments" -msgstr "Anexos" +msgstr "Anexos de Objeto" From 9f080268cba0aa5dc3d8e2fa9c9215384cc93a11 Mon Sep 17 00:00:00 2001 From: Matjaz Mozetic Date: Thu, 19 Mar 2020 08:15:51 +0000 Subject: [PATCH 07/17] Translated using Weblate (Slovenian) Currently translated at 100.0% (3 of 3 strings) Translation: social-12.0/social-12.0-mail_attach_existing_attachment Translate-URL: https://translation.odoo-community.org/projects/social-12-0/social-12-0-mail_attach_existing_attachment/sl/ --- mail_attach_existing_attachment/i18n/sl.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 3b78e47e1..01d53a25b 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -9,16 +9,17 @@ msgstr "" "Project-Id-Version: social (9.0)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-06-13 02:44+0000\n" -"PO-Revision-Date: 2016-06-13 03:11+0000\n" -"Last-Translator: OCA Transbot \n" +"PO-Revision-Date: 2020-03-19 10:13+0000\n" +"Last-Translator: Matjaz Mozetic \n" "Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-9-0/" "language/sl/)\n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" -"%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 3.10\n" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment @@ -32,6 +33,5 @@ msgstr "Čarovnik za sestavljanje e-pošte" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids -#, fuzzy msgid "Object Attachments" -msgstr "Priponke" +msgstr "Priponke objekta" From a6e003e62f5c96c5acefc6db4d28f3b99ffb70d1 Mon Sep 17 00:00:00 2001 From: David Beal Date: Wed, 22 Apr 2020 09:46:00 +0200 Subject: [PATCH 08/17] FIX image display --- mail_attach_existing_attachment/README.rst | 4 ++-- mail_attach_existing_attachment/i18n/ca.po | 2 ++ mail_attach_existing_attachment/i18n/de.po | 2 ++ mail_attach_existing_attachment/i18n/es.po | 2 ++ mail_attach_existing_attachment/i18n/es_CO.po | 2 ++ mail_attach_existing_attachment/i18n/fr.po | 2 ++ mail_attach_existing_attachment/i18n/hr.po | 2 ++ mail_attach_existing_attachment/i18n/it.po | 2 ++ .../i18n/mail_attach_existing_attachment.pot | 2 ++ mail_attach_existing_attachment/i18n/pt_BR.po | 6 ++++-- mail_attach_existing_attachment/i18n/sl.po | 6 ++++-- mail_attach_existing_attachment/i18n/zh_CN.po | 2 ++ mail_attach_existing_attachment/readme/USAGE.rst | 4 ++-- .../static/description/index.html | 4 ++-- 14 files changed, 32 insertions(+), 10 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index ec8919f49..307c529a1 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -40,12 +40,12 @@ To use this module, you need to: * Adding some attachments on an object by creating a new *Log note* -.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/mail_attach_existing_attachment/static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/static/description/attachment.png :alt: Attachment on purchase order * Then, by sending the object via email, you can select the attachment added earlier -.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png :alt: Sends the Purchase Order by email Known issues / Roadmap diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index cdfb4cacf..7f599ca09 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -19,6 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -29,6 +30,7 @@ msgid "Email composition wizard" msgstr "Assistent per composició de correus electrònics" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 117c19351..46ed67b42 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -20,6 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Kann Anhang anhängen" @@ -30,6 +31,7 @@ msgid "Email composition wizard" msgstr "Assistent zum Email verfassen" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index e948e76d6..e83ec5023 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -20,6 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Puede adjuntar adjuntos" @@ -30,6 +31,7 @@ msgid "Email composition wizard" msgstr "Asistente composición Correo Electrónico" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po index f85607c42..a11b3ba04 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -19,6 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -29,6 +30,7 @@ msgid "Email composition wizard" msgstr "Asistente de redacción de E-mail" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index 24f1e490e..5fad366f2 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -20,6 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Il est possible d'attacher des pièces jointes" @@ -30,6 +31,7 @@ msgid "Email composition wizard" msgstr "Assistant de composition de courriel" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po index cbeebfdd8..907bb5d77 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -21,6 +21,7 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Može pridružiti privitak" @@ -31,6 +32,7 @@ msgid "Email composition wizard" msgstr "Čarobnjak za sastavljanje maila" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index 9b750d0ab..5834c4f45 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -20,6 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Inserimento Allegati Ammesso" @@ -30,6 +31,7 @@ msgid "Email composition wizard" msgstr "Wizard Creazione Email" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot index 329b973c7..c5d795bac 100644 --- a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -14,6 +14,7 @@ msgstr "" "Plural-Forms: \n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -24,6 +25,7 @@ msgid "Email composition wizard" msgstr "" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index c3421c6be..97c40b24a 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -11,8 +11,8 @@ msgstr "" "POT-Creation-Date: 2016-06-13 02:44+0000\n" "PO-Revision-Date: 2019-08-26 16:01+0000\n" "Last-Translator: Rodrigo Macedo \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/" -"OCA-social-9-0/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-" +"social-9-0/language/pt_BR/)\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +21,7 @@ msgstr "" "X-Generator: Weblate 3.8\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Pode Anexar Anexo" @@ -31,6 +32,7 @@ msgid "Email composition wizard" msgstr "Assistente de Composição de Email" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Anexos de Objeto" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 01d53a25b..2794df127 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -17,11 +17,12 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3;\n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3;\n" "X-Generator: Weblate 3.10\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Lahko pripenja priponke" @@ -32,6 +33,7 @@ msgid "Email composition wizard" msgstr "Čarovnik za sestavljanje e-pošte" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Priponke objekta" diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po index a61c0d028..7cff2bcab 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -20,6 +20,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -30,6 +31,7 @@ msgid "Email composition wizard" msgstr "" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/readme/USAGE.rst b/mail_attach_existing_attachment/readme/USAGE.rst index 22a328e9a..cd0abffec 100644 --- a/mail_attach_existing_attachment/readme/USAGE.rst +++ b/mail_attach_existing_attachment/readme/USAGE.rst @@ -2,10 +2,10 @@ To use this module, you need to: * Adding some attachments on an object by creating a new *Log note* -.. figure:: mail_attach_existing_attachment/static/description/attachment.png +.. figure:: ../static/description/attachment.png :alt: Attachment on purchase order * Then, by sending the object via email, you can select the attachment added earlier -.. figure:: mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: ../static/description/ex_mail_compose_message.png :alt: Sends the Purchase Order by email diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 45fa0f4a6..3030895a4 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -391,13 +391,13 @@ the object by sending it by email with the mail compose message wizard

  • Adding some attachments on an object by creating a new Log note
  • -Attachment on purchase order +Attachment on purchase order
    • Then, by sending the object via email, you can select the attachment added earlier
    -Sends the Purchase Order by email +Sends the Purchase Order by email
    From 7b5df9ee2285c7dfdc08b900c4e5492763187387 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 15:42:33 +0200 Subject: [PATCH 09/17] [IMP] mail_attach_existing_attachment: black, isort, prettier --- .../__manifest__.py | 27 ++++------- .../tests/__init__.py | 1 - .../test_mail_attach_existing_attachment.py | 46 +++++++++++-------- .../wizard/mail_compose_message.py | 32 +++++++------ 4 files changed, 55 insertions(+), 51 deletions(-) diff --git a/mail_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index c907555ef..ef3195718 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -22,21 +22,14 @@ # ############################################################################## { - 'name': "Mail Attach Existing Attachment", - 'summary': "Adding attachment on the object by sending this one", - 'author': "ACSONE SA/NV, " - "Tecnativa, " - "Odoo Community Association (OCA)", - 'website': "https://github.com/OCA/social", - 'category': 'Social Network', - 'version': '12.0.1.0.0', - 'license': 'AGPL-3', - 'depends': [ - 'mail', - 'document', - ], - 'data': [ - 'wizard/mail_compose_message_view.xml', - ], - 'installable': True, + "name": "Mail Attach Existing Attachment", + "summary": "Adding attachment on the object by sending this one", + "author": "ACSONE SA/NV, " "Tecnativa, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/social", + "category": "Social Network", + "version": "12.0.1.0.0", + "license": "AGPL-3", + "depends": ["mail", "document"], + "data": ["wizard/mail_compose_message_view.xml"], + "installable": True, } diff --git a/mail_attach_existing_attachment/tests/__init__.py b/mail_attach_existing_attachment/tests/__init__.py index fc1e8e4e2..01f264cc1 100644 --- a/mail_attach_existing_attachment/tests/__init__.py +++ b/mail_attach_existing_attachment/tests/__init__.py @@ -1,2 +1 @@ - from . import test_mail_attach_existing_attachment diff --git a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py index a6730e773..43d59b325 100644 --- a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py +++ b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py @@ -26,28 +26,34 @@ from odoo.tests import common class TestAttachExistingAttachment(common.TransactionCase): - def setUp(self): super(TestAttachExistingAttachment, self).setUp() - self.partner_obj = self.env['res.partner'] - self.partner_01 = self.env['res.partner'].create({ - 'name': 'Partner 1', - 'email': 'partner1@example.org', - 'is_company': True, - 'parent_id': False, - }) + self.partner_obj = self.env["res.partner"] + self.partner_01 = self.env["res.partner"].create( + { + "name": "Partner 1", + "email": "partner1@example.org", + "is_company": True, + "parent_id": False, + } + ) def test_send_email_attachment(self): - attach1 = self.env['ir.attachment'].create({ - 'name': 'Attach1', 'datas_fname': 'Attach1', - 'datas': 'bWlncmF0aW9uIHRlc3Q=', - 'res_model': 'res.partner', 'res_id': self.partner_01.id}) - vals = {'model': 'res.partner', - 'partner_ids': [(6, 0, [self.partner_01.id])], - 'res_id': self.partner_01.id, - 'object_attachment_ids': [(6, 0, [attach1.id])] - } - mail = self.env['mail.compose.message'].create(vals) + attach1 = self.env["ir.attachment"].create( + { + "name": "Attach1", + "datas_fname": "Attach1", + "datas": "bWlncmF0aW9uIHRlc3Q=", + "res_model": "res.partner", + "res_id": self.partner_01.id, + } + ) + vals = { + "model": "res.partner", + "partner_ids": [(6, 0, [self.partner_01.id])], + "res_id": self.partner_01.id, + "object_attachment_ids": [(6, 0, [attach1.id])], + } + mail = self.env["mail.compose.message"].create(vals) values = mail.get_mail_values([self.partner_01.id]) - self.assertTrue(attach1.id in - values[self.partner_01.id]['attachment_ids']) + self.assertTrue(attach1.id in values[self.partner_01.id]["attachment_ids"]) diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index 5b4b32e5e..d42d9d547 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -22,32 +22,38 @@ # ############################################################################## -from odoo import models, fields, api +from odoo import api, fields, models class MailComposeMessage(models.TransientModel): - _inherit = 'mail.compose.message' + _inherit = "mail.compose.message" @api.model def default_get(self, fields_list): res = super(MailComposeMessage, self).default_get(fields_list) - if res.get('res_id') and res.get('model') and \ - res.get('composition_mode', '') != 'mass_mail' and\ - not res.get('can_attach_attachment'): - res['can_attach_attachment'] = True # pragma: no cover + if ( + res.get("res_id") + and res.get("model") + and res.get("composition_mode", "") != "mass_mail" + and not res.get("can_attach_attachment") + ): + res["can_attach_attachment"] = True # pragma: no cover return res - can_attach_attachment = fields.Boolean(string='Can Attach Attachment') + can_attach_attachment = fields.Boolean(string="Can Attach Attachment") object_attachment_ids = fields.Many2many( - comodel_name='ir.attachment', - relation='mail_compose_message_ir_attachments_object_rel', - column1='wizard_id', column2='attachment_id', - string='Object Attachments') + comodel_name="ir.attachment", + relation="mail_compose_message_ir_attachments_object_rel", + column1="wizard_id", + column2="attachment_id", + string="Object Attachments", + ) @api.multi def get_mail_values(self, res_ids): res = super(MailComposeMessage, self).get_mail_values(res_ids) if self.object_attachment_ids.ids and self.model and len(res_ids) == 1: - res[res_ids[0]].setdefault('attachment_ids', []).extend( - self.object_attachment_ids.ids) + res[res_ids[0]].setdefault("attachment_ids", []).extend( + self.object_attachment_ids.ids + ) return res From 9355ef8128cc9a7b28d217fcd112a862ded74e60 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 16:24:53 +0200 Subject: [PATCH 10/17] [MIG] mail_attach_existing_attachment: Migration to 13.0 --- mail_attach_existing_attachment/README.rst | 14 ++++---- .../__manifest__.py | 32 ++++--------------- mail_attach_existing_attachment/i18n/ca.po | 2 -- mail_attach_existing_attachment/i18n/de.po | 2 -- mail_attach_existing_attachment/i18n/es.po | 2 -- mail_attach_existing_attachment/i18n/es_CO.po | 2 -- mail_attach_existing_attachment/i18n/fr.po | 2 -- mail_attach_existing_attachment/i18n/hr.po | 2 -- mail_attach_existing_attachment/i18n/it.po | 2 -- .../i18n/mail_attach_existing_attachment.pot | 9 ++---- mail_attach_existing_attachment/i18n/pt_BR.po | 2 -- mail_attach_existing_attachment/i18n/sl.po | 2 -- mail_attach_existing_attachment/i18n/zh_CN.po | 2 -- .../static/description/index.html | 10 +++--- .../test_mail_attach_existing_attachment.py | 26 ++------------- .../wizard/mail_compose_message.py | 30 +++-------------- 16 files changed, 27 insertions(+), 114 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 307c529a1..9aa0187d1 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -14,13 +14,13 @@ Mail Attach Existing Attachment :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/12.0/mail_attach_existing_attachment + :target: https://github.com/OCA/social/tree/13.0/mail_attach_existing_attachment :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-12-0/social-12-0-mail_attach_existing_attachment + :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_attach_existing_attachment :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/205/12.0 + :target: https://runbot.odoo-community.org/runbot/205/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -40,12 +40,12 @@ To use this module, you need to: * Adding some attachments on an object by creating a new *Log note* -.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/13.0/mail_attach_existing_attachment/static/description/attachment.png :alt: Attachment on purchase order * Then, by sending the object via email, you can select the attachment added earlier -.. figure:: https://raw.githubusercontent.com/OCA/social/12.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/13.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png :alt: Sends the Purchase Order by email Known issues / Roadmap @@ -59,7 +59,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -94,6 +94,6 @@ 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. -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_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index ef3195718..a6df627da 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -1,35 +1,15 @@ -############################################################################## -# -# This file is part of mail_attach_existing_attachment, -# an Odoo module. -# -# Copyright (c) 2015 ACSONE SA/NV () -# -# mail_attach_existing_attachment is free software: -# you can redistribute it and/or modify it under the terms of the GNU -# Affero General Public License as published by the Free Software -# Foundation,either version 3 of the License, or (at your option) any -# later version. -# -# mail_attach_existing_attachment is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with mail_attach_existing_attachment. -# If not, see . -# -############################################################################## +# Copyright 2015 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + { "name": "Mail Attach Existing Attachment", "summary": "Adding attachment on the object by sending this one", - "author": "ACSONE SA/NV, " "Tecnativa, " "Odoo Community Association (OCA)", + "author": "ACSONE SA/NV, Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", "category": "Social Network", - "version": "12.0.1.0.0", + "version": "13.0.1.0.0", "license": "AGPL-3", - "depends": ["mail", "document"], + "depends": ["mail"], "data": ["wizard/mail_compose_message_view.xml"], "installable": True, } diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index 7f599ca09..cdfb4cacf 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -19,7 +19,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -30,7 +29,6 @@ msgid "Email composition wizard" msgstr "Assistent per composició de correus electrònics" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 46ed67b42..117c19351 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -20,7 +20,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Kann Anhang anhängen" @@ -31,7 +30,6 @@ msgid "Email composition wizard" msgstr "Assistent zum Email verfassen" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index e83ec5023..e948e76d6 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -20,7 +20,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Puede adjuntar adjuntos" @@ -31,7 +30,6 @@ msgid "Email composition wizard" msgstr "Asistente composición Correo Electrónico" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po index a11b3ba04..f85607c42 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -19,7 +19,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -30,7 +29,6 @@ msgid "Email composition wizard" msgstr "Asistente de redacción de E-mail" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index 5fad366f2..24f1e490e 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -20,7 +20,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Il est possible d'attacher des pièces jointes" @@ -31,7 +30,6 @@ msgid "Email composition wizard" msgstr "Assistant de composition de courriel" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po index 907bb5d77..cbeebfdd8 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -21,7 +21,6 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Može pridružiti privitak" @@ -32,7 +31,6 @@ msgid "Email composition wizard" msgstr "Čarobnjak za sastavljanje maila" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index 5834c4f45..9b750d0ab 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -20,7 +20,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Inserimento Allegati Ammesso" @@ -31,7 +30,6 @@ msgid "Email composition wizard" msgstr "Wizard Creazione Email" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot index c5d795bac..38b7b38c7 100644 --- a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_attach_existing_attachment +# * mail_attach_existing_attachment # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -14,7 +14,6 @@ msgstr "" "Plural-Forms: \n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -25,8 +24,6 @@ msgid "Email composition wizard" msgstr "" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" - diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index 97c40b24a..268ebacf6 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -21,7 +21,6 @@ msgstr "" "X-Generator: Weblate 3.8\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Pode Anexar Anexo" @@ -32,7 +31,6 @@ msgid "Email composition wizard" msgstr "Assistente de Composição de Email" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Anexos de Objeto" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 2794df127..6a3bb8ab5 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -22,7 +22,6 @@ msgstr "" "X-Generator: Weblate 3.10\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Lahko pripenja priponke" @@ -33,7 +32,6 @@ msgid "Email composition wizard" msgstr "Čarovnik za sestavljanje e-pošte" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Priponke objekta" diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po index 7cff2bcab..a61c0d028 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -20,7 +20,6 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -31,7 +30,6 @@ msgid "Email composition wizard" msgstr "" #. module: mail_attach_existing_attachment -#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 3030895a4..3cbc65fc8 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/social Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/social Translate me on Weblate Try me on Runbot

    This module was written to add the possibility to add attachments located on the object by sending it by email with the mail compose message wizard

    Table of contents

    @@ -391,13 +391,13 @@ the object by sending it by email with the mail compose message wizard

  • Adding some attachments on an object by creating a new Log note
  • -Attachment on purchase order +Attachment on purchase order
    • Then, by sending the object via email, you can select the attachment added earlier
    -Sends the Purchase Order by email +Sends the Purchase Order by email
    @@ -411,7 +411,7 @@ the object by sending it by email with the mail compose message wizard

    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 smashing it by providing a detailed and welcomed -feedback.

    +feedback.

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

    @@ -441,7 +441,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    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.

    -

    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_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py index 43d59b325..56b19aeb0 100644 --- a/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py +++ b/mail_attach_existing_attachment/tests/test_mail_attach_existing_attachment.py @@ -1,26 +1,5 @@ -############################################################################## -# -# This file is part of mail_attach_existing_attachment, -# an Odoo module. -# -# Copyright (c) 2015 ACSONE SA/NV () -# -# mail_attach_existing_attachment is free software: -# you can redistribute it and/or modify it under the terms of the GNU -# Affero General Public License as published by the Free Software -# Foundation,either version 3 of the License, or (at your option) any -# later version. -# -# mail_attach_existing_attachment is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with mail_attach_existing_attachment. -# If not, see . -# -############################################################################## +# Copyright 2015 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo.tests import common @@ -42,7 +21,6 @@ class TestAttachExistingAttachment(common.TransactionCase): attach1 = self.env["ir.attachment"].create( { "name": "Attach1", - "datas_fname": "Attach1", "datas": "bWlncmF0aW9uIHRlc3Q=", "res_model": "res.partner", "res_id": self.partner_01.id, diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index d42d9d547..0f5b52628 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -1,26 +1,5 @@ -############################################################################## -# -# This file is part of mail_attach_existing_attachment, -# an Odoo module. -# -# Copyright (c) 2015 ACSONE SA/NV () -# -# mail_attach_existing_attachment is free software: -# you can redistribute it and/or modify it under the terms of the GNU -# Affero General Public License as published by the Free Software -# Foundation,either version 3 of the License, or (at your option) any -# later version. -# -# mail_attach_existing_attachment is distributed -# in the hope that it will be useful, but WITHOUT ANY WARRANTY; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with mail_attach_existing_attachment. -# If not, see . -# -############################################################################## +# Copyright 2015 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import api, fields, models @@ -30,7 +9,7 @@ class MailComposeMessage(models.TransientModel): @api.model def default_get(self, fields_list): - res = super(MailComposeMessage, self).default_get(fields_list) + res = super().default_get(fields_list) if ( res.get("res_id") and res.get("model") @@ -49,9 +28,8 @@ class MailComposeMessage(models.TransientModel): string="Object Attachments", ) - @api.multi def get_mail_values(self, res_ids): - res = super(MailComposeMessage, self).get_mail_values(res_ids) + res = super().get_mail_values(res_ids) if self.object_attachment_ids.ids and self.model and len(res_ids) == 1: res[res_ids[0]].setdefault("attachment_ids", []).extend( self.object_attachment_ids.ids From c384f69cc1411a7fdda615d02f1b023cf9a32cf5 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 13 Oct 2020 06:13:25 +0000 Subject: [PATCH 11/17] Added translation using Weblate (Hebrew) --- mail_attach_existing_attachment/i18n/he.po | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mail_attach_existing_attachment/i18n/he.po diff --git a/mail_attach_existing_attachment/i18n/he.po b/mail_attach_existing_attachment/i18n/he.po new file mode 100644 index 000000000..8f3672cf2 --- /dev/null +++ b/mail_attach_existing_attachment/i18n/he.po @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_attach_existing_attachment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-10-19 08:08+0000\n" +"Last-Translator: Yves Goldberg \n" +"Language-Team: none\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" +"X-Generator: Weblate 3.10\n" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment +msgid "Can Attach Attachment" +msgstr "ניתן לצרף קובץ מצורף" + +#. module: mail_attach_existing_attachment +#: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message +msgid "Email composition wizard" +msgstr "אשף יצירת דואר אלקטרוני" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids +msgid "Object Attachments" +msgstr "קבצים מצורפים לאובייקט" From 55c317442ae4ee0db156d99d7cee11781a75c718 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 26 Jan 2021 14:06:17 +0000 Subject: [PATCH 12/17] [IMP] pre-commit run -a --- .../wizard/mail_compose_message_view.xml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml index d79a03429..d75bdc9fe 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml +++ b/mail_attach_existing_attachment/wizard/mail_compose_message_view.xml @@ -1,15 +1,21 @@ - + - mail.compose.message.form (mail_attach_existing_attachment) + mail.compose.message.form (mail_attach_existing_attachment) mail.compose.message - + - +

    - +
    From ee61168ef50001d6a079bcfcbf8ed53bdd2e8841 Mon Sep 17 00:00:00 2001 From: Ernesto Tejeda Date: Wed, 21 Jul 2021 16:19:48 -0400 Subject: [PATCH 13/17] [MIG] mail_attach_existing_attachment: Migration to 14.0 --- mail_attach_existing_attachment/README.rst | 14 +++++++------- mail_attach_existing_attachment/__manifest__.py | 2 +- .../static/description/index.html | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 9aa0187d1..13da29600 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -14,13 +14,13 @@ Mail Attach Existing Attachment :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/13.0/mail_attach_existing_attachment + :target: https://github.com/OCA/social/tree/14.0/mail_attach_existing_attachment :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_attach_existing_attachment + :target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_attach_existing_attachment :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/205/13.0 + :target: https://runbot.odoo-community.org/runbot/205/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -40,12 +40,12 @@ To use this module, you need to: * Adding some attachments on an object by creating a new *Log note* -.. figure:: https://raw.githubusercontent.com/OCA/social/13.0/mail_attach_existing_attachment/static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/14.0/mail_attach_existing_attachment/static/description/attachment.png :alt: Attachment on purchase order * Then, by sending the object via email, you can select the attachment added earlier -.. figure:: https://raw.githubusercontent.com/OCA/social/13.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/14.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png :alt: Sends the Purchase Order by email Known issues / Roadmap @@ -59,7 +59,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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -94,6 +94,6 @@ 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. -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_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index a6df627da..9434f6058 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -7,7 +7,7 @@ "author": "ACSONE SA/NV, Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", "category": "Social Network", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "license": "AGPL-3", "depends": ["mail"], "data": ["wizard/mail_compose_message_view.xml"], diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 3cbc65fc8..556d3eeeb 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

    Beta License: AGPL-3 OCA/social Translate me on Weblate Try me on Runbot

    +

    Beta License: AGPL-3 OCA/social Translate me on Weblate Try me on Runbot

    This module was written to add the possibility to add attachments located on the object by sending it by email with the mail compose message wizard

    Table of contents

    @@ -391,13 +391,13 @@ the object by sending it by email with the mail compose message wizard

  • Adding some attachments on an object by creating a new Log note
  • -Attachment on purchase order +Attachment on purchase order
    • Then, by sending the object via email, you can select the attachment added earlier
    -Sends the Purchase Order by email +Sends the Purchase Order by email
    @@ -411,7 +411,7 @@ the object by sending it by email with the mail compose message wizard

    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 smashing it by providing a detailed and welcomed -feedback.

    +feedback.

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

    @@ -441,7 +441,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    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.

    -

    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.

    From 3db3a308f59ac1f38c14c5bf721c78b0235f90a0 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 22 Jul 2021 11:15:51 +0000 Subject: [PATCH 14/17] [UPD] Update mail_attach_existing_attachment.pot --- .../i18n/mail_attach_existing_attachment.pot | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot index 38b7b38c7..bfea22214 100644 --- a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -18,11 +18,26 @@ msgstr "" msgid "Can Attach Attachment" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" From 0967dade2516c9e2e633201886a3e3c1728d88e6 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 11 Nov 2021 12:43:46 +0000 Subject: [PATCH 15/17] [UPD] Update mail_attach_existing_attachment.pot --- .../i18n/mail_attach_existing_attachment.pot | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot index bfea22214..446cd593a 100644 --- a/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot +++ b/mail_attach_existing_attachment/i18n/mail_attach_existing_attachment.pot @@ -14,6 +14,8 @@ msgstr "" "Plural-Forms: \n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" @@ -39,6 +41,8 @@ msgid "Last Modified on" msgstr "" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" From e93a0cb5dd9c204362d0d99c0f09e7d315861230 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Thu, 11 Nov 2021 12:50:10 +0000 Subject: [PATCH 16/17] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: social-14.0/social-14.0-mail_attach_existing_attachment Translate-URL: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mail_attach_existing_attachment/ --- mail_attach_existing_attachment/i18n/ca.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/de.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/es.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/es_CO.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/fr.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/he.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/hr.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/it.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/pt_BR.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/sl.po | 19 +++++++++++++++++++ mail_attach_existing_attachment/i18n/zh_CN.po | 19 +++++++++++++++++++ 11 files changed, 209 insertions(+) diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index cdfb4cacf..27d5dde93 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -19,16 +19,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistent per composició de correus electrònics" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/de.po b/mail_attach_existing_attachment/i18n/de.po index 117c19351..2ac0ff00e 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -20,16 +20,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Kann Anhang anhängen" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistent zum Email verfassen" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es.po b/mail_attach_existing_attachment/i18n/es.po index e948e76d6..412d165f5 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -20,16 +20,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Puede adjuntar adjuntos" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Asistente composición Correo Electrónico" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/es_CO.po b/mail_attach_existing_attachment/i18n/es_CO.po index f85607c42..3682fc5ff 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -19,16 +19,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Asistente de redacción de E-mail" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "" diff --git a/mail_attach_existing_attachment/i18n/fr.po b/mail_attach_existing_attachment/i18n/fr.po index 24f1e490e..b2b4adb9c 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -20,16 +20,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Il est possible d'attacher des pièces jointes" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistant de composition de courriel" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/he.po b/mail_attach_existing_attachment/i18n/he.po index 8f3672cf2..9da5d6496 100644 --- a/mail_attach_existing_attachment/i18n/he.po +++ b/mail_attach_existing_attachment/i18n/he.po @@ -18,16 +18,35 @@ msgstr "" "X-Generator: Weblate 3.10\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "ניתן לצרף קובץ מצורף" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "אשף יצירת דואר אלקטרוני" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "קבצים מצורפים לאובייקט" diff --git a/mail_attach_existing_attachment/i18n/hr.po b/mail_attach_existing_attachment/i18n/hr.po index cbeebfdd8..127ca01cf 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -21,16 +21,35 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Može pridružiti privitak" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Čarobnjak za sastavljanje maila" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index 9b750d0ab..83e95e83c 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -20,16 +20,35 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Inserimento Allegati Ammesso" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Wizard Creazione Email" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" diff --git a/mail_attach_existing_attachment/i18n/pt_BR.po b/mail_attach_existing_attachment/i18n/pt_BR.po index 268ebacf6..ef1cf65a4 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -21,16 +21,35 @@ msgstr "" "X-Generator: Weblate 3.8\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Pode Anexar Anexo" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Assistente de Composição de Email" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Anexos de Objeto" diff --git a/mail_attach_existing_attachment/i18n/sl.po b/mail_attach_existing_attachment/i18n/sl.po index 6a3bb8ab5..7e3e4e4c7 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -22,16 +22,35 @@ msgstr "" "X-Generator: Weblate 3.10\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "Lahko pripenja priponke" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "Čarovnik za sestavljanje e-pošte" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids msgid "Object Attachments" msgstr "Priponke objekta" diff --git a/mail_attach_existing_attachment/i18n/zh_CN.po b/mail_attach_existing_attachment/i18n/zh_CN.po index a61c0d028..81713acbe 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -20,16 +20,35 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__can_attach_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__can_attach_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment msgid "Can Attach Attachment" msgstr "" +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__display_name +msgid "Display Name" +msgstr "" + #. module: mail_attach_existing_attachment #: model:ir.model,name:mail_attach_existing_attachment.model_mail_compose_message msgid "Email composition wizard" msgstr "" #. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__id +msgid "ID" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mail_attach_existing_attachment +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_invoice_send__object_attachment_ids +#: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_account_tour_upload_bill__object_attachment_ids #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids #, fuzzy msgid "Object Attachments" From 5ad6a4962f58b6f3fff278236844955c4d1604b6 Mon Sep 17 00:00:00 2001 From: Alvaro Date: Thu, 9 Dec 2021 14:20:32 +0100 Subject: [PATCH 17/17] [15.0][MIG]mail_attach_existing_attachment: module migration fron 14.0 to 15.0 --- mail_attach_existing_attachment/__manifest__.py | 2 +- .../wizard/mail_compose_message.py | 2 +- .../odoo/addons/mail_attach_existing_attachment | 1 + setup/mail_attach_existing_attachment/setup.py | 6 ++++++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 120000 setup/mail_attach_existing_attachment/odoo/addons/mail_attach_existing_attachment create mode 100644 setup/mail_attach_existing_attachment/setup.py diff --git a/mail_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index 9434f6058..223eaeef8 100644 --- a/mail_attach_existing_attachment/__manifest__.py +++ b/mail_attach_existing_attachment/__manifest__.py @@ -7,7 +7,7 @@ "author": "ACSONE SA/NV, Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", "category": "Social Network", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "license": "AGPL-3", "depends": ["mail"], "data": ["wizard/mail_compose_message_view.xml"], diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index 0f5b52628..671bb987c 100644 --- a/mail_attach_existing_attachment/wizard/mail_compose_message.py +++ b/mail_attach_existing_attachment/wizard/mail_compose_message.py @@ -19,7 +19,7 @@ class MailComposeMessage(models.TransientModel): res["can_attach_attachment"] = True # pragma: no cover return res - can_attach_attachment = fields.Boolean(string="Can Attach Attachment") + can_attach_attachment = fields.Boolean() object_attachment_ids = fields.Many2many( comodel_name="ir.attachment", relation="mail_compose_message_ir_attachments_object_rel", diff --git a/setup/mail_attach_existing_attachment/odoo/addons/mail_attach_existing_attachment b/setup/mail_attach_existing_attachment/odoo/addons/mail_attach_existing_attachment new file mode 120000 index 000000000..d7f3725c9 --- /dev/null +++ b/setup/mail_attach_existing_attachment/odoo/addons/mail_attach_existing_attachment @@ -0,0 +1 @@ +../../../../mail_attach_existing_attachment \ No newline at end of file diff --git a/setup/mail_attach_existing_attachment/setup.py b/setup/mail_attach_existing_attachment/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/mail_attach_existing_attachment/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)