From 3c9b1e7fe3e6e6d382bcd9eba5524c07c3391d6f Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 17 Aug 2015 10:44:04 +0200 Subject: [PATCH] [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 +++++++++++ .../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 +++++ 10 files changed, 241 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/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/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