Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
3456 Lượt xem

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>


Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

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.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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


Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
9
thg 7 25
117253
1
thg 3 24
1387
2
thg 7 20
4146
1
thg 1 20
2659
1
thg 12 19
3126