bonjour j'ai un probleme à envoyer un email odoo qq'un peut m'aider svp voila code python
@api.multi
def action_diffusion_send(self):
context=None
ir_model_data = self.env('ir.model.data')
try:
template_id = ir_model_data.get_object_reference('sale', 'email_template_edi_sale')[1]
except ValueError:
template_id = False
try:
compose_form_id = ir_model_data.get_object_reference('mail', 'email_compose_message_wizard_form')[1]
except ValueError:
compose_form_id = False
ctx = dict()
ctx.update({
'default_model': 'appelsoffres.diffusion',
'default_res_id': ids[0],
'default_use_template': bool(template_id),
'default_template_id': template_id,
'default_composition_mode': 'comment',
'mark_so_as_sent': 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,
}
@api.multi
def force_diffusion_send(self, cr, uid, ids, context=None):
for order_id in ids:
email_act = self.action_quotation_send(cr, uid, [order_id], context=context)
if email_act and email_act.get('context'):
composer_obj = self.pool['mail.compose.message']
composer_values = {}
email_ctx = email_act['context']
template_values = [
email_ctx.get('default_template_id'),
email_ctx.get('default_composition_mode'),
email_ctx.get('default_model'),
email_ctx.get('default_res_id'),
]
composer_values.update(composer_obj.onchange_template_id(cr, uid, None, *template_values, context=context).get('value', {}))
if not composer_values.get('email_from'):
composer_values['email_from'] = self.browse(cr, uid, order_id, context=context).company_id.email
for key in ['attachment_ids', 'partner_ids']:
if composer_values.get(key):
composer_values[key] = [(6, 0, composer_values[key])]
composer_id = composer_obj.create(cr, uid, composer_values, context=email_ctx)
composer_obj.send_mail(cr, uid, [composer_id], context=email_ctx)
return True
diffusion()
class mail_compose_message(models.Model):
_inherit = 'mail.compose.message'
@api.multi
def send_mail(self, cr, uid, ids, context=None):
context = context or {}
if context.get('default_model') == 'appelsoffres.diffusion' and context.get('default_res_id') and context.get('mark_so_as_sent'):
context = dict(context, mail_post_autofollow=True)
self.env('appelsoffres.diffusion').signal_workflow(cr, uid, [context['default_res_id']], 'action_send')
return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context)
et l'erreur c'est
File "C:\Program Files (x86)\Odoo 8.0-20160222\server\.\openerp\api.py", line 266, in wrapper
File "C:\Program Files (x86)\Odoo 8.0-20160222\server\openerp\addons\Appelsdoffres\AppelsOffres.py", line 67, in action_diffusion_send
File "C:\Program Files (x86)\Odoo 8.0-20160222\server\.\openerp\api.py", line 793, in __call__
File "C:\Program Files (x86)\Odoo 8.0-20160222\server\.\openerp\api.py", line 770, in __new__
ValueError: "'str' object has no attribute 'dbname'" while evaluating
u'action_diffusion_send()'
Partager