Hello,
I'm busy defining an email template for which the message text is expected to be dynamically composed on the base of each opportunity tags.
Because tags are a few, my approach is to scroll all the tags in the opportunity and set variables, so that my body_html starts like this:
but I receive the following error
Failed to render QWeb template : This loop code style is not implemented. Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/api.py", line 886, in get return field_cache[record._ids[0]] KeyError: During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/fields.py", line 1082, in __get__ value = env.cache.get(record, self) File "/home/odoo/src/odoo/15.0/odoo/api.py", line 889, in get raise CacheMiss(record, field) odoo.exceptions.CacheMiss: 'mail.template.preview(,).subject' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/tools/cache.py", line 85, in lookup r = d[key] File "/home/odoo/src/odoo/15.0/odoo/tools/func.py", line 71, in wrapper return func(self, *args, **kwargs) File "/home/odoo/src/odoo/15.0/odoo/tools/lru.py", line 34, in __getitem__ a = self.d[obj] KeyError: ('ir.qweb', , , (False, None, None, None, None, None, None, False, None)) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 180, in _compile self._compile_node(element, _options, 1) + File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 72, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 171, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 346, in _compile_node return self._compile_static_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 689, in _compile_static_node body = self._compile_directive_content(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 946, in _compile_directive_content body.extend(self._compile_node(item, options, indent)) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 72, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 171, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 365, in _compile_node return body + self._compile_directives(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 1037, in _compile_directive_foreach content_foreach = self._compile_directives(el, options, indent + 1) + self._flushText(options, indent + 1) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 122, in _compile_directive_tag return super(QWeb, self)._compile_directive_tag(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 885, in _compile_directive_tag code.extend(self._compile_directives(el, options, indent)) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 946, in _compile_directive_content body.extend(self._compile_node(item, options, indent)) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 72, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 171, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 365, in _compile_node return body + self._compile_directives(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 996, in _compile_directive_if content_if = self._compile_directives(el, options, indent + 1) + self._flushText(options, indent + 1) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 122, in _compile_directive_tag return super(QWeb, self)._compile_directive_tag(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 885, in _compile_directive_tag code.extend(self._compile_directives(el, options, indent)) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 946, in _compile_directive_content body.extend(self._compile_node(item, options, indent)) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 72, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 171, in _compile_node return super()._compile_node(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 365, in _compile_node return body + self._compile_directives(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/addons/web_editor/models/ir_qweb.py", line 122, in _compile_directive_tag return super(QWeb, self)._compile_directive_tag(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 885, in _compile_directive_tag code.extend(self._compile_directives(el, options, indent)) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 383, in _compile_directives return self._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/tools/profiler.py", line 320, in _tracked_compile_directive return method_compile_directive(self, el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 177, in _compile_directive return super()._compile_directive(el, options, directive, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 827, in _compile_directive return compile_handler(el, options, indent) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 909, in _compile_directive_set expr = self._compile_expr(expr) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/ir_qweb.py", line 387, in _compile_expr namespace_expr = self._compile_expr_tokens(tokens, self._allowed_keyword + list(self._available_objects.keys()), raise_on_missing=raise_on_missing) File "/home/odoo/src/odoo/15.0/odoo/addons/base/models/qweb.py", line 476, in _compile_expr_tokens raise NotImplementedError('This loop code style is not implemented.') NotImplementedError: This loop code style is not implemented. Error when compiling xml template NotImplementedError: This loop code style is not implemented. Template: Path: /div/t/t[1]/t Node: )
Is there someone who can help me on this matter?
thank you very much in advance.
Massimiliano