2016-04-21 4 views
0

Я хочу получить электронное письмо, когда ther является ошибкой, и вызвать ошибку мессажа.отправить сообщение электронной почты и повысить сообщение об ошибке при возникновении ошибки в odoo v8

from openerp import models, fields, api, _ 
    from openerp.exceptions import ValidationError 
    from datetime import datetime 

Таким образом, чтобы отправить и по электронной почте, я создал шаблон в этой функции:

@api.model 
    def email_template(self): 
     template_obj = self.env['email.template'] 
     model = self.env['ir.model'].search([('model', '=', 'sync.synchro.partner')])[0] 
     company= self.env['res.company'].search([])[0] 
     body_html = '''Synchronization Error''' 
     synchronise_erreur_template = { 
           'model_id': model.id, 
           'name': 'Erreur Technique', 
           'subject' : 'Erreur produite lors de Synchronisation des contacts', 
           'body_html': body_html, 
           'email_from' : company.email or '${object.employee_id.work_email}', 
           'email_to' : '[email protected]', 
           } 

И я это называю, когда возникает ошибка

@api.multi 
    def schedule_synchro(self): 
     remote_partners = self.env['res.partner'] 
     template_obj = self.pool['email.template'] 
     records = self.env['sync.synchro.partner'].search([]) 
     for record in records : 
      if record.model_name == 'partners': 
       try: 
        remote_partners.export2remote([record.local_id]) 
        record.unlink() 
       except (Warning) as exc: 
        template_obj.send_mail(self.env.cr, self.env.uid, 
         synchro_partner.synchronise_erreur_template.id, 
         synchro_partner.id, force_send=True,context=self.env.context) 
        raise except_orm('Couldn t Transfer partner to remote database') 

Но даже при возникновении ошибки , Я не получаю сообщение по E-mail или сообщение об ошибке

ответ

0

Я нашел решение

@api.model 
    def email_template(self): 
      template_obj = self.env['email.template'] 
      model = self.env['ir.model'].search([('model', '=', 'sync.synchro.partner')])[0] 
      company= self.env['res.company'].search([])[0] 
      body_html = u""" <html><h1>Erreur de Synchronisation</h1> 
      <p>This error was raised ...</p></html> """ 
      synchronise_catogory_erreur_template = { 
       'model_id': model.id, 
       'name': 'Erreur Technique', 
       'subject' : 'Erreur produite lors de Synchronisation', 
       'body_html': body_html, 
       'email_from' : company.email or '${object.employee_id.work_email}', 
       'email_to' : '[email protected]', 
       } 
      template_exists = template_obj.search([('subject','=',"Erreur produite lors de Synchronisation")]) 
      if not template_exists : 
       template_record = template_obj.create(synchronise_erreur_template) 
      else : 
       template_record = template_exists[0] 
      return template_record 

и я его называю здесь:

@api.multi 
    def schedule_synchro(self): 
      template_record = self.email_template() 
      template_obj = self.pool['email.template'] 
      ...... 
      for record in records: 
       if record.model_name == 'partners': 
        try: 
         ..... 
        except Exception as exc: 
         template_obj.send_mail(self.env.cr, self.env.uid, 
          template_record.id, 
          record.id, force_send=True,context=self.env.context) 
         raise Warning("Couldn t Transfer partner category to remote database \n") 
Смежные вопросы