Skip to Content
Menu
This question has been flagged
2 Replies
2691 Views

I'm trying to install the module account_payment_partner and I receive the error:

ValueError: Element '<xpath expr="//p[@t-if='o.payment_term_id']">' cannot be located in parent view

What can I do to get rid of the error and be able to install the module?

This is the complete error output:

Fehler:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo/odoo11/odoo/models.py", line 982, in _validate_fields
    check(self)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 330, in _check_xml
    view_def = view.read_combined(['arch'])
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 714, in read_combined
    arch = self.apply_view_inheritance(arch_tree, root.id, self.model)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 663, in apply_view_inheritance
    source = self.apply_inheritance_specs(source, specs_tree, view_id)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 641, in apply_inheritance_specs
    self.raise_view_error(_("Element '%s' cannot be located in parent view") % tag, inherit_id)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 503, in raise_view_error
    raise ValueError(message)
ValueError: Element '<xpath expr="//p[@t-if='o.payment_term_id']">' cannot be located in parent view

Error context:
View `report_invoice_payment_mode`
[view_id: 1088, xml_id: n/a, model: n/a, parent_id: 617]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 719, in _tag_template
    return self._tag_record(record, data_node)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 651, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_model.py", line 1469, in _update
    record = record.create(values)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 398, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/opt/odoo/odoo11/odoo/models.py", line 3315, in create
    self._fields[key].determine_inverse(record)
  File "/opt/odoo/odoo11/odoo/fields.py", line 1070, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 266, in _inverse_arch
    view.write(data)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 414, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo/odoo11/odoo/models.py", line 3024, in write
    self._write(old_vals)
  File "/opt/odoo/odoo11/odoo/models.py", line 3190, in _write
    self._validate_fields(vals)
  File "/opt/odoo/odoo11/odoo/models.py", line 986, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating constraint\n\nElement \'<xpath expr="//p[@t-if=\'o.payment_term_id\']">\' cannot be located in parent view\n\nError context:\nView `report_invoice_payment_mode`\n[view_id: 1088, xml_id: n/a, model: n/a, parent_id: 617]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo/odoo11/odoo/http.py", line 647, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo11/odoo/http.py", line 307, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo/odoo11/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo/odoo11/odoo/http.py", line 689, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo11/odoo/http.py", line 339, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo11/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo11/odoo/http.py", line 332, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo11/odoo/http.py", line 933, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo11/odoo/http.py", line 512, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/odoo11/addons/web/controllers/main.py", line 934, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo/odoo11/addons/web/controllers/main.py", line 922, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo/odoo11/odoo/api.py", line 689, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo/odoo11/odoo/api.py", line 680, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-44>", line 2, in button_immediate_install
  File "/opt/odoo/odoo11/odoo/addons/base/module/module.py", line 71, in check_and_log
    return method(self, *args, **kwargs)
  File "/opt/odoo/odoo11/odoo/addons/base/module/module.py", line 448, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/opt/odoo/odoo11/odoo/addons/base/module/module.py", line 541, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/opt/odoo/odoo11/odoo/modules/registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/odoo11/odoo/modules/loading.py", line 343, in load_modules
    loaded_modules, update_module)
  File "/opt/odoo/odoo11/odoo/modules/loading.py", line 242, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/opt/odoo/odoo11/odoo/modules/loading.py", line 156, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/opt/odoo/odoo11/odoo/modules/loading.py", line 94, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 788, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 849, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 748, in parse
    exc_info[2]
  File "/opt/odoo/odoo11/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 741, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 719, in _tag_template
    return self._tag_record(record, data_node)
  File "/opt/odoo/odoo11/odoo/tools/convert.py", line 651, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_model.py", line 1469, in _update
    record = record.create(values)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 398, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/opt/odoo/odoo11/odoo/models.py", line 3315, in create
    self._fields[key].determine_inverse(record)
  File "/opt/odoo/odoo11/odoo/fields.py", line 1070, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 266, in _inverse_arch
    view.write(data)
  File "/opt/odoo/odoo11/odoo/addons/base/ir/ir_ui_view.py", line 414, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo/odoo11/odoo/models.py", line 3024, in write
    self._write(old_vals)
  File "/opt/odoo/odoo11/odoo/models.py", line 3190, in _write
    self._validate_fields(vals)
  File "/opt/odoo/odoo11/odoo/models.py", line 986, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Element '<xpath expr="//p[@t-if='o.payment_term_id']">' cannot be located in parent view

Error context:
View `report_invoice_payment_mode`
[view_id: 1088, xml_id: n/a, model: n/a, parent_id: 617]
None" while parsing None:4, near
<data inherit_id="account.report_invoice_document">
        <xpath expr="//p[@t-if='o.payment_term_id']" position="after">
            <p t-if="o.payment_mode_id.note">
                <strong>Payment Mode:</strong>
                <span t-field="o.payment_mode_id.note"/>
            </p>
            <t t-if="o.payment_mode_id and o.payment_mode_id.show_bank_account != 'no'">
                <p t-foreach="o.partner_banks_to_show()" t-as="partner_bank">
                    <strong>Bank Account:</strong>
                    <t t-if="partner_bank.bank_id">
                        <t t-esc="partner_bank.bank_id.name + ('' if not partner_bank.bank_id.bic else ' (' + partner_bank.bank_id.bic + ')')"/>
                    </t>
                    <t t-if="o.payment_mode_id.show_bank_account == 'full'">
                        <span t-field="partner_bank.acc_number"/>
                    </t>
                    <t t-elif="o.payment_mode_id.show_bank_account == 'first'">
                        <span t-esc="partner_bank.acc_number[:o.payment_mode_id.show_bank_account_chars] + '*' * (len(partner_bank.acc_number) - o.payment_mode_id.show_bank_account_chars)"/>
                    </t>
                    <t t-elif="o.payment_mode_id.show_bank_account == 'last'">
                        <span t-esc="'*' * (len(partner_bank.acc_number) - o.payment_mode_id.show_bank_account_chars) + partner_bank.acc_number[-o.payment_mode_id.show_bank_account_chars:]"/>
                    </t>
                </p>
            </t>
        </xpath>
    </data>


Avatar
Discard
Author Best Answer

Thanks for the answer.

I tried to change the code line you mentioned, but it does not change anything. Still get the error and cannot install the module.

Avatar
Discard
Best Answer

Hi,

I don't know whether this is still maintained, but I would suggest you raise an issue in https://github.com/OCA/bank-payment/.

The inheritance :

 <xpath expr="//p[@t-if='o.payment_term_id']" position="after">

Should rather be

 <xpath expr="//p[@t-if='o.invoice_payment_term_id']" position="after">

Unfortunately I cannot work on this right now, or I would have proposed a fix.


Regards


Avatar
Discard
Related Posts Replies Views Activity
9
May 24
111771
1
Mar 24
271
2
Jul 20
3011
1
Jan 20
1552
1
Dec 19
3126