hilarak / odoo_community_addons

Odoo Community Addons (My works) Hilar AK
https://www.odoo.com/apps/modules/browse?author=Hilar%20AK
GNU Affero General Public License v3.0
23 stars 24 forks source link

11.0 [odoo-debrand-11] - Error to render compiling AST in cron mail template #28

Closed dennybiasiolli closed 4 years ago

dennybiasiolli commented 4 years ago

Describe the bug When a mailer cron run, trying to send emails, appears the following error:

RuntimeError: object unbound
Error to render compiling AST
RuntimeError: object unbound
Template: 2536
Path: /templates/t/t
Node: <t t-set="website_id" t-value="request.env['website'].sudo().search([])"/>

To Reproduce Steps to reproduce the behavior:

  1. Create a cron that sends an email
  2. Activate the cron
  3. Wait cron to execute
  4. See error

Additional context Here's a complete log of the error

2020-01-14 09:28:01,558 10 INFO odoo odoo.addons.fetchmail.models.fetchmail: Failed to process mail from imap server Mail
Traceback (most recent call last):
  File "/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 345, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_2536_149
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 343, in _getattr_
    return getattr(self._get_current_object(), name)
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 302, in _get_current_object
    return self.__local()
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 135, in _lookup
    raise RuntimeError('object unbound')
RuntimeError: object unbound
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "/odoo/odoo/addons/fetchmail/models/fetchmail.py", line 179, in fetch_mail
    res_id = MailThread.with_context(**additionnal_context).message_process(server.object_id.model, data[0][1], save_original=server.original, strip_attachments=(not server.attach))
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 1307, in message_process
    thread_id = self.message_route_process(msg_txt, msg, routes)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 1215, in message_route_process
    thread = MessageModel.message_new(message_dict, custom_values)
  File "/odoo/odoo/addons/project/models/project.py", line 801, in message_new
    task = super(Task, self.with_context(create_context)).message_new(msg, custom_values=defaults)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 1343, in message_new
    return RecordModel.create(data)
  File "/mnt/extra-addons/odoo/custom_addons/custom_project/models/project_task.py", line 163, in create
    task = super().create(vals)
  File "/odoo/odoo/addons/hr_timesheet/models/project.py", line 60, in create
    task = super(Task, self.with_context(context)).create(vals)
  File "/odoo/odoo/addons/project/models/project.py", line 658, in create
    task = super(Task, self.with_context(context)).create(vals)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 250, in create
    thread.message_auto_subscribe(list(create_values), values=create_values)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 2186, in message_auto_subscribe
   self._message_auto_subscribe_notify(user_pids)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 2114, in _message_auto_subscribe_notify
    subtype_id=self.env.ref('mail.mt_note').id)
  File "/odoo/odoo/addons/mail/models/mail_thread.py", line 1958, in message_post_with_view
    rendered_template = views.render(values, engine='ir.qweb')
  File "/odoo/odoo/addons/website/models/ir_ui_view.py", line 113, in render
    return super(View, self).render(values, engine=engine)
  File "/odoo/odoo/addons/web_editor/models/ir_ui_view.py", line 27, in render
    return super(IrUiView, self).render(values=values, engine=engine)
  File "/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1225, in render
    return self.env[engine].render(self.id, qcontext)
  File "/odoo/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 57, in render
    return super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 274, in render
    self.compile(template, options)(self, body.append, values or {})
  File "/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 352, in _compiled_fn
    raise QWebException("Error to render compiling AST", e, path, node and etree.tostring(node[0], encoding='unicode'), name)
odoo.addons.base.ir.ir_qweb.qweb.QWebException: object unbound
Traceback (most recent call last):
  File "/odoo/odoo/addons/base/ir/ir_qweb/qweb.py", line 345, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_2536_149
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 343, in _getattr_
    return getattr(self._get_current_object(), name)
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 302, in _get_current_object
    return self.__local()
  File "/usr/local/lib/python3.7/site-packages/werkzeug/local.py", line 135, in _lookup
    raise RuntimeError('object unbound')
RuntimeError: object unbound
Error to render compiling AST
RuntimeError: object unbound
Template: 2536
Path: /templates/t/t
Node: <t t-set="website_id" t-value="request.env['website'].sudo().search([])"/>
dennybiasiolli commented 4 years ago

I'm happy to fix this error with a PR, give me a few minutes :)

dennybiasiolli commented 4 years ago

The problem was in view.xml line 131: <t t-set="website_id" t-value="request.env['website'].sudo().search([])"/>

When executing a cron, the request does not exists, giving the error described above.

Changing the line in <t t-set="website_id" t-value="env['website'].sudo().search([])"/> fixes the error 🎉

dennybiasiolli commented 4 years ago

Closed by #29