Skip to Content
Menu
This question has been flagged
1 Reply
5128 Views
Hello,

I have 2 website, but actually i want to display some content in the footer of only one website, they both have different footer so the xpath i'm trying don't work on the other website.
So i found the solution to use .

My problem is that i have an error when i'm trying to use is like this : 
xpath expr="//footer[@id='bottom']/div[@id='footer']/section/div/div/div[1]/div[@class='s_share']/img" position="after"
        t t-if="website.id == 4"
            test
       /t

/xpath


Can someone help me ?

Avatar
Discard

Please post the error you are getting with this code.

Author

Here is my error, it don't find the xpath because my other website don't have the same code structure.

Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 677, in _tag_root
f(rec)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 655, in _tag_template
return self._tag_record(record)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 580, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/home/odoo/src/odoo/odoo/models.py", line 4196, in _load_records
data['record']._load_records_write(data['values'])
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1842, in _load_records_write
super(View, self)._load_records_write(values)
File "/home/odoo/src/odoo/odoo/models.py", line 4133, in _load_records_write
self.write(values)
File "/home/odoo/src/odoo/addons/website/models/theme_models.py", line 267, in write
res = super(IrUiView, other_views).write(vals)
File "/home/odoo/src/odoo/addons/website/models/ir_ui_view.py", line 68, in write
return super(View, self).write(vals)
File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 28, in write
res = super(StudioMixin, self).write(vals)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 500, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/home/odoo/src/odoo/odoo/models.py", line 3691, in write
fields[0].determine_inverse(real_recs)
File "/home/odoo/src/odoo/odoo/fields.py", line 1185, in determine_inverse
getattr(records, self.inverse)()
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 300, in _inverse_arch
view.write(data)
File "/home/odoo/src/odoo/addons/website/models/theme_models.py", line 267, in write
res = super(IrUiView, other_views).write(vals)
File "/home/odoo/src/odoo/addons/website/models/ir_ui_view.py", line 68, in write
return super(View, self).write(vals)
File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 28, in write
res = super(StudioMixin, self).write(vals)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 500, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/home/odoo/src/odoo/odoo/models.py", line 3681, in write
real_recs._validate_fields(vals, inverse_fields)
File "/home/odoo/src/odoo/odoo/models.py", line 1260, in _validate_fields
check(self)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 408, in _check_xml
raise ValidationError(_(
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 385, in _check_xml
view_def = view.read_combined(['arch'])
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 809, in read_combined
arch = root.apply_view_inheritance(arch_tree, self.model)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 750, in apply_view_inheritance
return self._apply_view_inheritance(source, inherit_tree)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 759, in _apply_view_inheritance
source = view._apply_view_inheritance(source, inherit_tree)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 759, in _apply_view_inheritance
source = view._apply_view_inheritance(source, inherit_tree)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 758, in _apply_view_inheritance
source = view.apply_inheritance_specs(source, arch_tree)
File "/home/odoo/src/enterprise/web_studio/models/ir_ui_view.py", line 460, in apply_inheritance_specs
return super(View, self).apply_inheritance_specs(source, specs_tree,
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 735, in apply_inheritance_specs
self.handle_view_error(str(e))
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 673, in handle_view_error
raise ValueError(formatted_message).with_traceback(from_traceback) from from_exception
odoo.exceptions.ValidationError: Erreur lors de la validation de la vue:

L'élément '<xpath expr="//footer[@id='bottom']/div[@id='footer']/section/div/div/div[1]/div[@class='s_share']/img">' ne peut être localisé dans la vue parente

View name: Vichysport Layout
Error context:
view: ir.ui.view(4281,)
xmlid: layout_vichysport
view.parent: ir.ui.view(1185,)
file: /home/odoo/src/user/vichysport/views/layout.xml

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/home/odoo/src/odoo/odoo/http.py", line 684, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/src/odoo/odoo/http.py", line 360, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/http.py", line 348, in checked_call
result = self.endpoint(*a, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 913, in __call__
return self.method(*args, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 532, in response_wrap
response = f(*args, **kw)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1393, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1381, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 396, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 383, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-77>", line 2, in button_immediate_upgrade
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
return method(self, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 654, in button_immediate_upgrade
return self._button_immediate_function(type(self).button_upgrade)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 593, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/odoo/src/odoo/odoo/modules/registry.py", line 89, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 454, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 346, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 221, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 69, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 733, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 799, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 719, in parse
self._tag_root(de)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 677, in _tag_root
f(rec)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 681, in _tag_root
raise ParseError('while parsing %s:%s, near\n%s' % (
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 640, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/src/odoo/odoo/http.py", line 316, in _handle_exception
raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing None:6, near
<data inherit_id="website.layout" name="Vichysport Layout">
<xpath expr="//footer[@id='bottom']/div[@id='footer']/section/div/div/div[1]/div[@class='s_share']/img" position="after">
<t t-if="website.id == 4">
<p> test </p>
</t>
</xpath>
</data>

Best Answer

The issue in you xpath expression , Make sure the path ( expr="//footer[@id='bottom']/div[@id='footer']/section/div/div/div[1]/div[@class='s_share']/img") is  located in parent view.

Avatar
Discard
Author

Hello, thanks for your answer, the xpath is located but only for one of the 2 website. So i got an error because of the second website. That's why i want to add a <t> conditionnal before the xpath

Related Posts Replies Views Activity
0
Mar 23
866
0
Oct 22
7
2
Jun 22
1702
1
Apr 22
933
0
Feb 22
3226