From 1cce4dffe1a3f5f0ca11f023c0acdfaf82de42f3 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 17 Aug 2015 10:44:04 +0200 Subject: [PATCH 01/39] [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 00000000..50784be0 --- /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 00000000..02baef47 --- /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 00000000..7ec7bbb6 --- /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 00000000..b74de819 --- /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 00000000..2f00e5d2 --- /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 00000000..12ddb2dc --- /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 00000000..4c7d43f3 --- /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 00000000..aa10025b --- /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 3e32225cb1ce356c0e4378cc07e5581bf45e46be Mon Sep 17 00:00:00 2001 From: Sergio Teruel Albert Date: Mon, 13 Jun 2016 01:54:13 +0200 Subject: [PATCH 02/39] [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 50784be0..d81fb587 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 7ec7bbb6..58f1642d 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 00000000..f5334aca --- /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 00000000..98e6791e --- /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 00000000..3db638d9 --- /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 00000000..0d62d5fc --- /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 00000000..b8464227 --- /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 00000000..49b0ed73 --- /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 b74de819..df34c99e 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 2f00e5d2..2899f71d 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 00000000..49469d78 --- /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 eed39bc3..af1aaaec 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 4c7d43f3..6e154a14 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 b6968618ee462668139f9ed5b466cc427a22e9ad Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Tue, 11 Oct 2016 20:22:36 +0200 Subject: [PATCH 03/39] [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 d81fb587..a3eea147 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 58f1642d..fbc2b424 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 98e6791e..02227301 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 3db638d9..015f08a3 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 b8464227..0220407d 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 00000000..ed7ee33a --- /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 6e154a14..a86e4a80 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 aa10025b..d79a0342 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 755565b7786201a03418b511fcfbfbba8e940a41 Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 16 Apr 2018 17:16:07 -0400 Subject: [PATCH 04/39] [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 a3eea147..b51893df 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 02baef47..40272379 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 fbc2b424..901835c2 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 f5334aca..78413f42 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 02227301..2c6e2632 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 015f08a3..95e6980e 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 0d62d5fc..25924b96 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 0220407d..a420ef1b 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 49b0ed73..5ceb5fb3 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 ed7ee33a..6930c7db 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 00000000..266b4463 --- /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 df34c99e..3205cc48 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 2899f71d..76343af0 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 49469d78..2fdf0f0a 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 26c2cf04..fc1e8e4e 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 af1aaaec..a6730e77 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 12ddb2dc..b528d997 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 a86e4a80..073c7da0 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 0bf110583f5c239fe56c5787a939afdba1658ab0 Mon Sep 17 00:00:00 2001 From: ernesto Date: Mon, 5 Nov 2018 10:14:40 -0500 Subject: [PATCH 05/39] [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 b51893df..ec8919f4 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 901835c2..c907555e 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 78413f42..cdfb4cac 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 2c6e2632..117c1935 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 95e6980e..e948e76d 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 25924b96..f85607c4 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 a420ef1b..24f1e490 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 5ceb5fb3..cbeebfdd 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 6930c7db..9b750d0a 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 266b4463..329b973c 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 3205cc48..e7e837b8 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 76343af0..3b78e47e 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 2fdf0f0a..a61c0d02 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 00000000..db6910ff --- /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 00000000..189719c2 --- /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 00000000..5d24095f --- /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 00000000..22a328e9 --- /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 073c7da0..5b4b32e5 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 e94915c1b9172400d06f7371d41f38477e660a3a Mon Sep 17 00:00:00 2001 From: Rodrigo Macedo Date: Mon, 26 Aug 2019 13:42:40 +0000 Subject: [PATCH 06/39] 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 e7e837b8..c3421c6b 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 66de94d25b253dc223a48fe19b167635fe444e00 Mon Sep 17 00:00:00 2001 From: Matjaz Mozetic Date: Thu, 19 Mar 2020 08:15:51 +0000 Subject: [PATCH 07/39] 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 3b78e47e..01d53a25 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 c10314c3aba5ddd4174e8e07f29d744c4ccc2f1a Mon Sep 17 00:00:00 2001 From: David Beal Date: Wed, 22 Apr 2020 09:46:00 +0200 Subject: [PATCH 08/39] 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 ec8919f4..307c529a 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 cdfb4cac..7f599ca0 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 117c1935..46ed67b4 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 e948e76d..e83ec502 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 f85607c4..a11b3ba0 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 24f1e490..5fad366f 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 cbeebfdd..907bb5d7 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 9b750d0a..5834c4f4 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 329b973c..c5d795ba 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 c3421c6b..97c40b24 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 01d53a25..2794df12 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 a61c0d02..7cff2bca 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 22a328e9..cd0abffe 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 45fa0f4a..3030895a 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 725152d9fb3eb36a818c213e148ac8bdc89e09bd Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 15:42:33 +0200 Subject: [PATCH 09/39] [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 c907555e..ef319571 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 fc1e8e4e..01f264cc 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 a6730e77..43d59b32 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 5b4b32e5..d42d9d54 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 252f945ecddba193005d9f58ab3be9959e340f17 Mon Sep 17 00:00:00 2001 From: Radovan Skolnik Date: Mon, 24 Aug 2020 16:24:53 +0200 Subject: [PATCH 10/39] [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 307c529a..9aa0187d 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 ef319571..a6df627d 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 7f599ca0..cdfb4cac 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 46ed67b4..117c1935 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 e83ec502..e948e76d 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 a11b3ba0..f85607c4 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 5fad366f..24f1e490 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 907bb5d7..cbeebfdd 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 5834c4f4..9b750d0a 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 c5d795ba..38b7b38c 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 97c40b24..268ebacf 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 2794df12..6a3bb8ab 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 7cff2bca..a61c0d02 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 3030895a..3cbc65fc 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 43d59b32..56b19aeb 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 d42d9d54..0f5b5262 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 c02e1e3479a5c5ea2233122b8e18216801884cac Mon Sep 17 00:00:00 2001 From: Yves Goldberg Date: Tue, 13 Oct 2020 06:13:25 +0000 Subject: [PATCH 11/39] 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 00000000..8f3672cf --- /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 281bebb05935dc809ae0f840fae3f1cb5f63f2e1 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 26 Jan 2021 14:06:17 +0000 Subject: [PATCH 12/39] [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 d79a0342..d75bdc9f 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 8eadd0045e3dc73eb0601705ac2f19fd12804b36 Mon Sep 17 00:00:00 2001 From: Ernesto Tejeda Date: Wed, 21 Jul 2021 16:19:48 -0400 Subject: [PATCH 13/39] [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 9aa0187d..13da2960 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 a6df627d..9434f605 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 3cbc65fc..556d3eee 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 5744207d69511d0e1e60cfec1d48f5bf367f07e7 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 22 Jul 2021 11:15:51 +0000 Subject: [PATCH 14/39] [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 38b7b38c..bfea2221 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 a79ebd53cfe32c3603a0c269b1b3730201e03c1d Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 11 Nov 2021 12:43:46 +0000 Subject: [PATCH 15/39] [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 bfea2221..446cd593 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 6d48a9d042bfd7a0d77cc8307ee0d6cf967e9786 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Thu, 11 Nov 2021 12:50:10 +0000 Subject: [PATCH 16/39] 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 cdfb4cac..27d5dde9 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 117c1935..2ac0ff00 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 e948e76d..412d165f 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 f85607c4..3682fc5f 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 24f1e490..b2b4adb9 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 8f3672cf..9da5d649 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 cbeebfdd..127ca01c 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 9b750d0a..83e95e83 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 268ebacf..ef1cf65a 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 6a3bb8ab..7e3e4e4c 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 a61c0d02..81713acb 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 6096532b4cea830c7d9bbac68ad8207beee5bd1b Mon Sep 17 00:00:00 2001 From: Alvaro Date: Thu, 9 Dec 2021 14:20:32 +0100 Subject: [PATCH 17/39] [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 9434f605..223eaeef 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 0f5b5262..671bb987 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 74adbc17abea95a998382b99dd79cf86e19a0e21 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 21 Jan 2022 08:31:55 +0000 Subject: [PATCH 18/39] [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 446cd593..f74e248d 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 e2f8e7ce3876792db19edbaecfed265d50164de2 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 21 Jan 2022 08:34:33 +0000 Subject: [PATCH 19/39] [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 13da2960..28642dfa 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 556d3eee..63d3c110 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 50ebda73950773e66fb16728fda4587f6f62ab5d Mon Sep 17 00:00:00 2001 From: Benoit Aimont Date: Mon, 29 Aug 2022 14:15:22 +0200 Subject: [PATCH 20/39] [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 +- 7 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 28642dfa..95e2deaa 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 223eaeef..40f134bc 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 f74e248d..37e913b7 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 db6910ff..41134126 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 cd0abffe..68fac754 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 63d3c110..db022f9a 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 56b19aeb..d762a36b 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( { From b2961e31a16d99b324c2bf488426464932548c48 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 19 Jan 2023 15:34:14 +0000 Subject: [PATCH 21/39] [UPD] README.rst --- mail_attach_existing_attachment/README.rst | 5 +++-- .../static/description/index.html | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 95e2deaa..7720d0b9 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -23,7 +23,7 @@ Mail Attach Existing Attachment :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 @@ -38,7 +38,7 @@ Usage 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:: https://raw.githubusercontent.com/OCA/social/16.0/mail_attach_existing_attachment/static/description/attachment.png :alt: Attachment on purchase order @@ -76,6 +76,7 @@ Contributors ~~~~~~~~~~~~ * Adrien Peiffer +* Benoit Aimont * `Tecnativa `_: * Sergio Teruel diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index db022f9a..51612eb4 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -388,7 +388,7 @@

    Mail Attach Existing Attachment

    Usage

    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
    Attachment on purchase order @@ -427,6 +427,7 @@

    Authors

    Contributors

    • Adrien Peiffer <adrien.peiffer@acsone.eu>
    • +
    • Benoit Aimont <benoit.aimont@acsone.eu>
    • Tecnativa:
      • Sergio Teruel
      • Ernesto Tejeda
      • From 348c3d9ab465ab035cb306a76c94fa7a9f8ca3d3 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 19 Jan 2023 15:34:15 +0000 Subject: [PATCH 22/39] mail_attach_existing_attachment 16.0.1.0.1 --- mail_attach_existing_attachment/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_attach_existing_attachment/__manifest__.py b/mail_attach_existing_attachment/__manifest__.py index 40f134bc..682801a5 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": "16.0.1.0.0", + "version": "16.0.1.0.1", "license": "AGPL-3", "depends": ["mail"], "data": ["wizard/mail_compose_message_view.xml"], From 48789743d930d25060e0cd76745476582e9ae9f8 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 19 Jan 2023 20:08:36 +0000 Subject: [PATCH 23/39] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: social-16.0/social-16.0-mail_attach_existing_attachment Translate-URL: https://translation.odoo-community.org/projects/social-16-0/social-16-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 deletions(-) diff --git a/mail_attach_existing_attachment/i18n/ca.po b/mail_attach_existing_attachment/i18n/ca.po index 27d5dde9..cdfb4cac 100644 --- a/mail_attach_existing_attachment/i18n/ca.po +++ b/mail_attach_existing_attachment/i18n/ca.po @@ -19,35 +19,16 @@ 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 2ac0ff00..117c1935 100644 --- a/mail_attach_existing_attachment/i18n/de.po +++ b/mail_attach_existing_attachment/i18n/de.po @@ -20,35 +20,16 @@ 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 412d165f..e948e76d 100644 --- a/mail_attach_existing_attachment/i18n/es.po +++ b/mail_attach_existing_attachment/i18n/es.po @@ -20,35 +20,16 @@ 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 3682fc5f..f85607c4 100644 --- a/mail_attach_existing_attachment/i18n/es_CO.po +++ b/mail_attach_existing_attachment/i18n/es_CO.po @@ -19,35 +19,16 @@ 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 b2b4adb9..24f1e490 100644 --- a/mail_attach_existing_attachment/i18n/fr.po +++ b/mail_attach_existing_attachment/i18n/fr.po @@ -20,35 +20,16 @@ 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 9da5d649..8f3672cf 100644 --- a/mail_attach_existing_attachment/i18n/he.po +++ b/mail_attach_existing_attachment/i18n/he.po @@ -18,35 +18,16 @@ 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 127ca01c..cbeebfdd 100644 --- a/mail_attach_existing_attachment/i18n/hr.po +++ b/mail_attach_existing_attachment/i18n/hr.po @@ -21,35 +21,16 @@ 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 83e95e83..9b750d0a 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -20,35 +20,16 @@ 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 ef1cf65a..268ebacf 100644 --- a/mail_attach_existing_attachment/i18n/pt_BR.po +++ b/mail_attach_existing_attachment/i18n/pt_BR.po @@ -21,35 +21,16 @@ 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 7e3e4e4c..6a3bb8ab 100644 --- a/mail_attach_existing_attachment/i18n/sl.po +++ b/mail_attach_existing_attachment/i18n/sl.po @@ -22,35 +22,16 @@ 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 81713acb..a61c0d02 100644 --- a/mail_attach_existing_attachment/i18n/zh_CN.po +++ b/mail_attach_existing_attachment/i18n/zh_CN.po @@ -20,35 +20,16 @@ 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 be22fb41464ac2f3bd668cbaebe8a6e880cb0fd8 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 24 Jul 2023 07:57:28 +0000 Subject: [PATCH 24/39] Translated using Weblate (Italian) Currently translated at 66.6% (2 of 3 strings) Translation: social-16.0/social-16.0-mail_attach_existing_attachment Translate-URL: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_attach_existing_attachment/it/ --- mail_attach_existing_attachment/i18n/it.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mail_attach_existing_attachment/i18n/it.po b/mail_attach_existing_attachment/i18n/it.po index 9b750d0a..757b65fc 100644 --- a/mail_attach_existing_attachment/i18n/it.po +++ b/mail_attach_existing_attachment/i18n/it.po @@ -10,14 +10,15 @@ 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" +"PO-Revision-Date: 2023-07-24 10:10+0000\n" +"Last-Translator: mymage \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__can_attach_attachment @@ -27,7 +28,7 @@ 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" +msgstr "Procedura guidata creazione e-mail" #. module: mail_attach_existing_attachment #: model:ir.model.fields,field_description:mail_attach_existing_attachment.field_mail_compose_message__object_attachment_ids From c9563a74de420da1ee0b1d7c19247b9f32a30441 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 17:03:29 +0000 Subject: [PATCH 25/39] [UPD] README.rst --- mail_attach_existing_attachment/README.rst | 15 ++++--- .../static/description/index.html | 42 ++++++++++--------- 2 files changed, 31 insertions(+), 26 deletions(-) diff --git a/mail_attach_existing_attachment/README.rst b/mail_attach_existing_attachment/README.rst index 7720d0b9..d30858c4 100644 --- a/mail_attach_existing_attachment/README.rst +++ b/mail_attach_existing_attachment/README.rst @@ -2,10 +2,13 @@ Mail Attach Existing Attachment =============================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:abc6af897ab2e0f7898e5b9fc07671e0bb96c1fb8ffcee09980a3173537b6318 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Mail Attach Existing Attachment .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :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/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=16.0 + :alt: Try me on Runboat -|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 @@ -58,7 +61,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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/mail_attach_existing_attachment/static/description/index.html b/mail_attach_existing_attachment/static/description/index.html index 51612eb4..78206f9b 100644 --- a/mail_attach_existing_attachment/static/description/index.html +++ b/mail_attach_existing_attachment/static/description/index.html @@ -1,20 +1,20 @@ - + - + Mail Attach Existing Attachment