【发布时间】:2017-07-26 15:31:30
【问题描述】:
我正在尝试通过 Odoo 向多个合作伙伴发送包含多个产品的电子邮件。
#OdepoOffer.py
# -*- coding: utf-8 -*-
from openerp import models, fields, api
"""
Class nomRelation Pour la gestion des noms des relations
"""
class odepoOffer(models.Model):
_name = 'odepo.offer'
name = fields.Char('Nom Offre' ,size=32)
odepoContactId = fields.Many2many('res.partner', ondelete='no action', string="Panier Clients")
odepoProductId = fields.Many2many('product.product', ondelete='no action', string="Panier Produits")
@api.multi
def email_partner(self):
'''
This function opens a window to compose an email, with the edi sale template message loaded by default
'''
self.ensure_one()
ir_model_data = self.env['ir.model.data']
try:
compose_form_id = ir_model_data.get_object_reference('mail', 'email_compose_message_wizard_form')[1]
except ValueError:
compose_form_id = False
# It's worth noting that Odoo 9 uses 'mail.template' whereas Odoo 8 uses 'email.template'
# template_id = self.env['email.template'].search([('name', '=', 'Odepo Offer')], limit=1)
ctx = dict()
ctx.update({
'default_model': 'res.partner',
'default_res_id': False,
'default_use_template': True,
'default_template_id': False,
'default_composition_mode': 'comment',
'email_to':'testmail@gmail.com',
'subject':'mario',
'skip_notification': True,
})
return {
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'mail.compose.message',
'views': [(compose_form_id, 'form')],
'view_id': compose_form_id,
'target': 'new',
'context': ctx,
}
# values['subject'] = val
# values['email_to'] = val1
# values['body_html'] = val2
# values['body'] = val3
# values['res_id'] = False
# values['attachment_ids'] = val4
和视图:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_odepo_offer_tree">
<field name="name">odepo.offer.tree</field>
<field name="model">odepo.offer</field>
<field name="arch" type="xml">
<form string="Odepo Offre">
<group>
<field name="name" string="Name"/>
<field name="odepoContactId" widget="many2many_tags" options="{'no_create_edit': True}"/>
<field name="odepoProductId" widget="many2many_tags" options="{'no_create_edit': True}"/>
<button name="email_partner" type="object" string="Create Email" class="oe_highlight"/>
</group>
</form>
</field>
</record>
<!--<record id="odepo_offer_email_header_form" model="ir.ui.view">
<field name="name">odepo.offer.header</field>
<field name="model">odepo.offer</field>
<field name="inherit_id" ref="view_odepo_offer_tree"/>
<field name="arch" type="xml">
<xpath expr="//form/sheet" position="before">
<button name="email_partner" type="object" string="Create Email" class="oe_highlight"/>
</xpath>
</field>
</record>-->
<act_window id="action_view_wizard" name="Mr" res_model="odepo.offer" view_mode="tree,form"/>
<menuitem name="Gestion Des Offres" id="gestion_offer_id" parent="odepo_contact.odepo_config_id" sequence="10" />
<menuitem name="Noms Des Offres" id="sub_gestion_offer_id" parent="gestion_offer_id" sequence="11" action="action_view_wizard"/>
</data>
</openerp>
现在,我可以创建报价并为其命名,并在 odepoContactId 中填写我的联系人,并在 odepoProductId 中填写我的产品。
然后,我单击发送电子邮件按钮,我会弹出一个向导,其中包含邮件撰写。问题是我无法将我的 odepoContactId 字段中的联系人添加到向导中弹出的邮件撰写中的收件人。我试图通过电子邮件地址抛出上下文但没有运气
【问题讨论】:
标签: python-2.7 email odoo-8