Не получить полный URL в собственном шаблоне в odoo? - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в odoo и пытаюсь получить полный URL в своем собственном шаблоне.Пожалуйста, проверьте мой код и помогите разобраться, что я делаю неправильно.

mail_template_view.xml

<?xml version="1.0" encoding="utf-8"?>

<data noupdate = "0">
    <record id="example_email_template" model="mail.template">
      <field name="name">Example e-mail template</field>
      <field name="email_from">bhuwankhadka2052@greenit.com.np</field>
      <field name="subject">Congratz khadka</field>
      <field name="email_to">benkhadka143@gmail.com</field>
      <field name="model_id" ref="model_tender_manage"/>
      <field name="auto_delete" eval="True"/>
      <field name="body_html">
          <![CDATA[
            <p>Dear ,<br/><br/>

            Good job, you've just created your first e-mail template!<br/></p>
                My name is Bhuwan Khadka. What about you man?
               A new tender record has been created

                <div>
                <p>Please check the link below for more details:</p>  

                    % set website_url = object.env['ir.config_parameter'].sudo().get_param('web.base.url')
                    Your Odoo domain is: <b><a href="${website_url}">${website_url}</a></b><br>

                </div>

                Regards,<br/>
                Bhuwan Khadka
          ]]>
      </field>
   </record> 
</data>

tendermanage.py

@api.model
def create(self,vals):
    res = super(TenderManage,self).create(vals)
    self.task_send_mail()
    return res

Выше кода создайте новую запись и активируйте функцию автоматизации электронной почты

@api.multi
def task_send_mail(self):
    template_email = self.env["mail.template"].search([('name','=','Example e-mail template')]).id
    self.env["mail.template"].browse(template_email).sudo().send_mail(self.id, force_send=True)

Выше кода отправьте электронное письмо

Если я удаляю код URL из файла XML, электронная почта отправляется автоматическибез каких-либо ошибок, но когда URL-код написан в шаблоне электронной почты, я получаю следующую ошибку.

Сообщение об ошибке:

enter image description here

Пожалуйста, помогитемне с вашим предложением и как получить полный URL в шаблоне электронной почты.В XML элемент odoo удален, поскольку он не показан в приведенном выше коде.

1 Ответ

0 голосов
/ 01 марта 2019

mail_template_view.xml

<div>
   <p>Please check the link below for more details:
      Your Odoo domain is: <b><a href="${object.get_full_url()}">Click Here</a></p>
</div>

tendermanage.py

@api.multi
def get_full_url(self):
    self.ensure_one()
    base_url = self.env["ir.config_parameter"].get_param("web.base.url")
    url_params = {
        'id': self.id,
        'view_type': 'form',
        'model': 'your_model',
        'menu_id': self.env.ref('module_name.menu_record_id').id,
        'action': self.env.ref('module_name.action_record_id').id,
    }
    params = '/web?#%s' % url_encode(url_params)
    return base_url + params

Измените шаблон почтового шаблона и создайте метод, подобный этому, в вашей модели ... надеюсь, это поможет ..

...