From b90ac33787e268600db4744a9b205808f4372c93 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 17 Aug 2015 10:44:04 +0200 Subject: [PATCH 01/20] [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 0000000000..50784be079 --- /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 0000000000..02baef47b9 --- /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 0000000000..7ec7bbb632 --- /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 0000000000..b74de819e6 --- /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 0000000000..2f00e5d214 --- /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 0000000000..12ddb2dc7c --- /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 0000000000..4c7d43f309 --- /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 0000000000..aa10025b9f --- /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 3db0d8a3798a9a0d021ae65610048f7fa87d07c3 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Albert Date: Mon, 13 Jun 2016 01:54:13 +0200 Subject: [PATCH 02/20] [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 50784be079..d81fb58795 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 7ec7bbb632..58f1642ddc 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 0000000000..f5334acade --- /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 0000000000..98e6791e86 --- /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 0000000000..3db638d9cd --- /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 0000000000..0d62d5fcb3 --- /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 0000000000..b846422765 --- /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 0000000000..49b0ed73c2 --- /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 b74de819e6..df34c99ef0 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 2f00e5d214..2899f71dca 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 0000000000..49469d7883 --- /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 eed39bc3fb..af1aaaec9f 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 @@ def test_send_email_attachment(self): '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 4c7d43f309..6e154a14e3 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 @@ def default_get(self, 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 + res['can_attach_attachment'] = True # pragma: no cover return res can_attach_attachment = fields.Boolean(string='Can Attach Attachment') @@ -44,14 +44,10 @@ def default_get(self, fields_list): 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 a1f30a1f693a1141fc8c698012cac3296676e4f9 Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Tue, 11 Oct 2016 20:22:36 +0200 Subject: [PATCH 03/20] [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 d81fb58795..a3eea14753 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 58f1642ddc..fbc2b424ac 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 98e6791e86..0222730158 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 3db638d9cd..015f08a399 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 b846422765..0220407d3d 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 0000000000..ed7ee33a60 --- /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 6e154a14e3..a86e4a8024 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 aa10025b9f..d79a034292 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 1d32187bf94f35a5617ec1edeb3f50c63fd3a6a6 Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 16 Apr 2018 17:16:07 -0400 Subject: [PATCH 04/20] [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 a3eea14753..b51893df8a 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 02baef47b9..40272379f7 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 fbc2b424ac..901835c2db 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 f5334acade..78413f4285 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 0222730158..2c6e263232 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 015f08a399..95e6980ef5 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 0d62d5fcb3..25924b96ea 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 0220407d3d..a420ef1bc8 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 49b0ed73c2..5ceb5fb391 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 ed7ee33a60..6930c7db5e 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 0000000000..266b4463aa --- /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 df34c99ef0..3205cc480c 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 2899f71dca..76343af022 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 49469d7883..2fdf0f0a5a 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 26c2cf0401..fc1e8e4e24 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 af1aaaec9f..a6730e773a 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 12ddb2dc7c..b528d997d1 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 a86e4a8024..073c7da0e3 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 911fcdb1024616b4d1b131d6a570ae62ad97119f Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 5 Nov 2018 10:14:40 -0500 Subject: [PATCH 05/20] [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 b51893df8a..ec8919f49c 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 -the object by sending it by email with the mail compose message wizard +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Installation -============ +.. |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 -To install this module, you need to: +**Table of contents** -* 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 + +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. -To contribute to this module, please visit http://odoo-community.org. +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 901835c2db..c907555ef6 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 78413f4285..cdfb4cacf5 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 2c6e263232..117c193514 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 95e6980ef5..e948e76d64 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 25924b96ea..f85607c42e 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 a420ef1bc8..24f1e490eb 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 5ceb5fb391..cbeebfdd84 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 6930c7db5e..9b750d0abc 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 266b4463aa..329b973c7d 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 3205cc480c..e7e837b89e 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 76343af022..3b78e47e1e 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 2fdf0f0a5a..a61c0d0289 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 0000000000..db6910ff22 --- /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 0000000000..189719c21e --- /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 0000000000..5d24095fd1 --- /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 0000000000..22a328e9ab --- /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 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 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 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 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 073c7da0e3..5b4b32e5e3 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 @@ def default_get(self, fields_list): 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 b44c4e19258a8a72537ffda88afca937ffd3d7fd Mon Sep 17 00:00:00 2001 From: Rodrigo Macedo Date: Mon, 26 Aug 2019 13:42:40 +0000 Subject: [PATCH 06/20] 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 e7e837b89e..c3421c6be2 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 f348dec4aafcd07d6e5a910844b4427bbb37db9c Mon Sep 17 00:00:00 2001 From: Matjaz Mozetic Date: Thu, 19 Mar 2020 08:15:51 +0000 Subject: [PATCH 07/20] 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 3b78e47e1e..01d53a25be 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 c7adfba2c73893f2a73c9077b373861f29cc185b Mon Sep 17 00:00:00 2001 From: David Beal Date: Wed, 22 Apr 2020 09:46:00 +0200 Subject: [PATCH 08/20] 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 ec8919f49c..307c529a1b 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 cdfb4cacf5..7f599ca09d 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 117c193514..46ed67b42d 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 e948e76d64..e83ec5023f 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 f85607c42e..a11b3ba04c 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 24f1e490eb..5fad366f28 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 cbeebfdd84..907bb5d774 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 9b750d0abc..5834c4f459 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 329b973c7d..c5d795bac7 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 c3421c6be2..97c40b24a9 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 01d53a25be..2794df127f 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 a61c0d0289..7cff2bcab5 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 22a328e9ab..cd0abffecf 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 45fa0f4a6b..3030895a46 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -391,13 +391,13 @@

Usage

  • 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 e46a653da244a94d43d3d3004d58c090f74bbb99 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 15:42:33 +0200 Subject: [PATCH 09/20] [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 c907555ef6..ef31957182 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 fc1e8e4e24..01f264cc16 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 a6730e773a..43d59b3251 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 @@ 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 5b4b32e5e3..d42d9d5479 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 ba7301e4cf2c49b82a7c0504668dc8fbf2009773 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 16:24:53 +0200 Subject: [PATCH 10/20] [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 307c529a1b..9aa0187d12 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 ef31957182..a6df627da9 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 7f599ca09d..cdfb4cacf5 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 46ed67b42d..117c193514 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 e83ec5023f..e948e76d64 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 a11b3ba04c..f85607c42e 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 5fad366f28..24f1e490eb 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 907bb5d774..cbeebfdd84 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 5834c4f459..9b750d0abc 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 c5d795bac7..38b7b38c7c 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 97c40b24a9..268ebacf61 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 2794df127f..6a3bb8ab52 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 7cff2bcab5..a61c0d0289 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 3030895a46..3cbc65fc83 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@

    Mail Attach Existing Attachment

    !! 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 @@

    Usage

  • 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 @@

    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.

    @@ -441,7 +441,7 @@

    Maintainers

    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 43d59b3251..56b19aeb08 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 @@ 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, diff --git a/mail_attach_existing_attachment/wizard/mail_compose_message.py b/mail_attach_existing_attachment/wizard/mail_compose_message.py index d42d9d5479..0f5b526289 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 @@ def default_get(self, fields_list): 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 47a63d59b968cb653904612d38f242756d1e9db3 Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 13 Oct 2020 06:13:25 +0000 Subject: [PATCH 11/20] 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 0000000000..8f3672cf26 --- /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 54ba21b5cfc65114faf48ca62b442523251f59de Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 26 Jan 2021 14:06:17 +0000 Subject: [PATCH 12/20] [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 d79a034292..d75bdc9fe8 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 5d0db192da7324c6961399e2d0b2aca267640e34 Mon Sep 17 00:00:00 2001 From: Ernesto Tejeda Date: Wed, 21 Jul 2021 16:19:48 -0400 Subject: [PATCH 13/20] [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 9aa0187d12..13da29600d 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 a6df627da9..9434f60583 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 3cbc65fc83..556d3eeebd 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@

    Mail Attach Existing Attachment

    !! 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 @@

    Usage

  • 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 @@

    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.

    @@ -441,7 +441,7 @@

    Maintainers

    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 0541b9b9ffa55b523a76f34871f5a3a1315b4f47 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 22 Jul 2021 11:15:51 +0000 Subject: [PATCH 14/20] [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 38b7b38c7c..bfea222143 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 4e6ecbfa61b7746ecbc8f0b9eeb9a731bff68801 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 11 Nov 2021 12:43:46 +0000 Subject: [PATCH 15/20] [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 bfea222143..446cd593aa 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 a966c89ef6d9c4ff76a7343dd0d6e2885b9f24c7 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Thu, 11 Nov 2021 12:50:10 +0000 Subject: [PATCH 16/20] 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 cdfb4cacf5..27d5dde930 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 117c193514..2ac0ff00e4 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 e948e76d64..412d165f5a 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 f85607c42e..3682fc5ff9 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 24f1e490eb..b2b4adb9c5 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 8f3672cf26..9da5d64965 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 cbeebfdd84..127ca01cfb 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 9b750d0abc..83e95e83c6 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 268ebacf61..ef1cf65a44 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 6a3bb8ab52..7e3e4e4c70 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 a61c0d0289..81713acbe2 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 f9ad1c0d4df6a5cc4a5f13174d4c2fe5b74a60ff Mon Sep 17 00:00:00 2001 From: Alvaro Date: Thu, 9 Dec 2021 14:20:32 +0100 Subject: [PATCH 17/20] [15.0][MIG]mail_attach_existing_attachment: module migration fron 14.0 to 15.0 --- mail_attach_existing_attachment/__manifest__.py | 2 +- mail_attach_existing_attachment/wizard/mail_compose_message.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index 9434f60583..223eaeef8c 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 0f5b526289..671bb987c7 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 @@ def default_get(self, fields_list): 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", From 1d16d7f4a45ff480385f743583e67cca3c811c0f Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 21 Jan 2022 08:31:55 +0000 Subject: [PATCH 18/20] [UPD] Update mail_attach_existing_attachment.pot --- .../i18n/mail_attach_existing_attachment.pot | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) 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 446cd593aa..f74e248d70 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 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -14,35 +14,16 @@ 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 "" -#. 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 "" From 5658d7c9a6cc58c51dd4a022e015745e24c6fff4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 21 Jan 2022 08:34:33 +0000 Subject: [PATCH 19/20] [UPD] README.rst --- mail_attach_existing_attachment/README.rst | 14 +++++++------- .../static/description/index.html | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 13da29600d..28642dfaae 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/14.0/mail_attach_existing_attachment + :target: https://github.com/OCA/social/tree/15.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-14-0/social-14-0-mail_attach_existing_attachment + :target: https://translation.odoo-community.org/projects/social-15-0/social-15-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/14.0 + :target: https://runbot.odoo-community.org/runbot/205/15.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/14.0/mail_attach_existing_attachment/static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/15.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/14.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/15.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/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 556d3eeebd..63d3c1107c 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@

    Mail Attach Existing Attachment

    !! 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 @@

    Usage

  • 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 @@

    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.

    @@ -441,7 +441,7 @@

    Maintainers

    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 c4bd2b43a70c6c6b9054510494ae5c60a19d4c7c Mon Sep 17 00:00:00 2001 From: Benoit Aimont Date: Mon, 29 Aug 2022 14:15:22 +0200 Subject: [PATCH 20/20] [MIG] mail_attach_existing_attachment: Migration to 16.0 --- mail_attach_existing_attachment/README.rst | 16 ++++++++-------- mail_attach_existing_attachment/__manifest__.py | 2 +- .../i18n/mail_attach_existing_attachment.pot | 2 +- .../readme/CONTRIBUTORS.rst | 1 + mail_attach_existing_attachment/readme/USAGE.rst | 2 +- .../static/description/index.html | 10 +++++----- .../test_mail_attach_existing_attachment.py | 2 +- .../odoo/addons/mail_attach_existing_attachment | 1 + setup/mail_attach_existing_attachment/setup.py | 6 ++++++ 9 files changed, 25 insertions(+), 17 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/README.rst b/mail_attach_existing_attachment/README.rst index 28642dfaae..95e2deaa9b 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -14,16 +14,16 @@ 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/15.0/mail_attach_existing_attachment + :target: https://github.com/OCA/social/tree/16.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-15-0/social-15-0-mail_attach_existing_attachment + :target: https://translation.odoo-community.org/projects/social-16-0/social-16-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/15.0 + :target: https://runbot.odoo-community.org/runbot/205/16.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|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 @@ -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/15.0/mail_attach_existing_attachment/static/description/attachment.png +.. figure:: https://raw.githubusercontent.com/OCA/social/16.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/15.0/mail_attach_existing_attachment/static/description/ex_mail_compose_message.png +.. figure:: https://raw.githubusercontent.com/OCA/social/16.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 223eaeef8c..40f134bc7a 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": "15.0.1.0.0", + "version": "16.0.1.0.0", "license": "AGPL-3", "depends": ["mail"], "data": ["wizard/mail_compose_message_view.xml"], 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 f74e248d70..37e913b7ac 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 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst b/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst index db6910ff22..4113412635 100644 --- a/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst +++ b/mail_attach_existing_attachment/readme/CONTRIBUTORS.rst @@ -1,4 +1,5 @@ * Adrien Peiffer +* Benoit Aimont * `Tecnativa `_: * Sergio Teruel diff --git a/mail_attach_existing_attachment/readme/USAGE.rst b/mail_attach_existing_attachment/readme/USAGE.rst index cd0abffecf..68fac75449 100644 --- a/mail_attach_existing_attachment/readme/USAGE.rst +++ b/mail_attach_existing_attachment/readme/USAGE.rst @@ -1,6 +1,6 @@ To use this module, you need to: -* Adding some attachments on an object by creating a new *Log note* +* Add some attachments on an object by creating a new *Log note* .. figure:: ../static/description/attachment.png :alt: Attachment on purchase order diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 63d3c1107c..db022f9a42 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -367,7 +367,7 @@

    Mail Attach Existing Attachment

    !! 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 @@

    Usage

  • 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 @@

    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.

    @@ -441,7 +441,7 @@

    Maintainers

    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 56b19aeb08..d762a36b7a 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 @@ -6,7 +6,7 @@ class TestAttachExistingAttachment(common.TransactionCase): def setUp(self): - super(TestAttachExistingAttachment, self).setUp() + super().setUp() self.partner_obj = self.env["res.partner"] self.partner_01 = self.env["res.partner"].create( { 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 0000000000..d7f3725c93 --- /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 0000000000..28c57bb640 --- /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, +)