mollie / mollie-odoo

Mollie Payments plugin for Odoo - an open source CRM and ERP
29 stars 49 forks source link

Field available_partner_bank_ids used in field partner_bank_id default domain ([('id', 'in', available_partner_bank_ids)]) must be present in view but is missing. #125

Closed th3penguinwhisperer closed 2 years ago

th3penguinwhisperer commented 2 years ago

Hi,

Installed the payment_mollie_official module (14.0.0.10) on Odoo v14.0. I have both python dependencies installed.

When installing the mollie module I get this error:

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/root/odoo/odoo/tools/convert.py", line 677, in _tag_root
    f(rec)
  File "/root/odoo/odoo/tools/convert.py", line 580, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/root/odoo/odoo/models.py", line 4231, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/root/odoo/odoo/models.py", line 4152, in _load_records_create
    return self.create(values)
  File "<decorator-gen-42>", line 2, in create
  File "/root/odoo/odoo/api.py", line 348, in _model_create_multi
    return create(self, arg)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 482, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-64>", line 2, in create
  File "/root/odoo/odoo/api.py", line 348, in _model_create_multi
    return create(self, arg)
  File "/root/odoo/odoo/addons/base/models/ir_fields.py", line 534, in create
    recs = super().create(vals_list)
  File "<decorator-gen-13>", line 2, in create
  File "/root/odoo/odoo/api.py", line 348, in _model_create_multi
    return create(self, arg)
  File "/root/odoo/odoo/models.py", line 3909, in create
    fields[0].determine_inverse(batch_recs)
  File "/root/odoo/odoo/fields.py", line 1187, in determine_inverse
    getattr(records, self.inverse)()
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 300, in _inverse_arch
    view.write(data)
  File "/root/odoo/addons/website/models/theme_models.py", line 293, in write
    res = super(IrUiView, other_views).write(vals)
  File "/root/odoo/addons/website/models/ir_ui_view.py", line 68, in write
    return super(View, self).write(vals)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/root/odoo/odoo/models.py", line 3693, in write
    real_recs._validate_fields(vals, inverse_fields)
  File "/root/odoo/odoo/models.py", line 1266, in _validate_fields
    check(self)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 411, in _check_xml
    )).with_traceback(e.__traceback__) from None
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 391, in _check_xml
    view.postprocess_and_fields(view_doc, validate=True)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 850, in postprocess_and_fields
    arch, name_manager = self._postprocess_view(node, model, validate=validate)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 864, in _postprocess_view
    name_manager.check_view_fields(self)
  File "/root/odoo/odoo/addons/base/models/ir_ui_view.py", line 2018, in check_view_fields
    view.handle_view_error(msg)
  File "/root/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: Error while validating view:

Field available_partner_bank_ids used in field partner_bank_id default domain ([('id', 'in', available_partner_bank_ids)]) must be present in view but is missing.

View name: account.payment.form.view.mollie
Error context:
 view: ir.ui.view(2251,)
 xmlid: account_payment_form_view_mollie
 view.model: account.payment
 view.parent: ir.ui.view(852,)
 file: /var/lib/odoo/addons/14.0/payment_mollie_official/views/account_payment_register.xml

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

Traceback (most recent call last):
  File "/root/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/root/odoo/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/root/odoo/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/root/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/root/odoo/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/root/odoo/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/root/odoo/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/root/odoo/addons/web/controllers/main.py", line 1398, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/root/odoo/addons/web/controllers/main.py", line 1386, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/root/odoo/odoo/api.py", line 399, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/root/odoo/odoo/api.py", line 386, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-71>", line 2, in button_immediate_install
  File "/root/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/root/odoo/odoo/addons/base/models/ir_module.py", line 475, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/root/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 "/root/odoo/odoo/modules/registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/root/odoo/odoo/modules/loading.py", line 461, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/root/odoo/odoo/modules/loading.py", line 349, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/root/odoo/odoo/modules/loading.py", line 222, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/root/odoo/odoo/modules/loading.py", line 69, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/root/odoo/odoo/tools/convert.py", line 733, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/root/odoo/odoo/tools/convert.py", line 799, in convert_xml_import
    obj.parse(doc.getroot())
  File "/root/odoo/odoo/tools/convert.py", line 719, in parse
    self._tag_root(de)
  File "/root/odoo/odoo/tools/convert.py", line 685, in _tag_root
    )) from e
Exception

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

Traceback (most recent call last):
  File "/root/odoo/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/root/odoo/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /var/lib/odoo/addons/14.0/payment_mollie_official/views/account_payment_register.xml:22, near
<record id="account_payment_form_view_mollie" model="ir.ui.view">
        <field name="name">account.payment.form.view.mollie</field>
        <field name="model">account.payment</field>
        <field name="inherit_id" ref="account.view_account_payment_form"/>
        <field name="arch" type="xml">
            <field name="partner_bank_id" position="after">
                <field name="mollie_refund_reference" attrs="{'invisible': [('mollie_refund_reference', '=', False)]}"/>
            </field>
        </field>
    </record>

Anyone else had this error? I don't see references to available_partner_bank_ids in the code. So perhaps something is not initialized yet that should be?

Thanks in advance.

th3penguinwhisperer commented 2 years ago

Apparently I needed this commit: https://github.com/odoo/odoo/commit/5b2eb004c92dc80e540373680d0ab6ab2f0af0f4 So I updated my git checkout but also still needed to update the database (go to base module, press the 3 dots and click "upgrade"). Make sure you have a backup.