mollie / mollie-odoo

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

Update howto v14.0.0.5 -> v14.0.0.7 on odoo docker? #116

Closed sutidor closed 2 years ago

sutidor commented 2 years ago

Hello,

how to update from v14.0.0.5 to v14.0.0.7? Thanks

I use odoo docker with volume mounted to extra_addons folder. When I install v14.0.0.7 on fresh odoo, it works. When I hit upgrade button in mollie payments v14.0.0.5, nothing happens. If I use commandline I get error

912 WARNING erpdemo.domain.tld odoo.addons.base.models.ir_ui_view: An alert (class alert-*) must have an alert, alertdialog or status role or an alert-link class. Please use alert and alertdialog only for what expects to stop any activity to be read immediately.

View name: account.payment.register.form.view.mollie
Error context:
 view: ir.ui.view(2708,)
 xmlid: account_payment_register_form_view_mollie
 view.model: account.payment.register
 view.parent: ir.ui.view(1002,)
 file: /mnt/extra-addons/payment_mollie_official/views/account_payment_register.xml

if I uninstall old v14.0.0.5 and install new v14.0.0.7 I get error

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 677, in _tag_root
    f(rec)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 580, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4207, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 4136, in _load_records_create
    return self.create(values)
  File "<decorator-gen-43>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 482, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-65>", line 2, in create
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/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 "/usr/lib/python3/dist-packages/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3897, in create
    fields[0].determine_inverse(batch_recs)
  File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1185, in determine_inverse
    getattr(records, self.inverse)()
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 300, in _inverse_arch
    view.write(data)
  File "/usr/lib/python3/dist-packages/odoo/addons/website/models/theme_models.py", line 267, in write
    res = super(IrUiView, other_views).write(vals)
  File "/usr/lib/python3/dist-packages/odoo/addons/website/models/ir_ui_view.py", line 68, in write
    return super(View, self).write(vals)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 3681, in write
    real_recs._validate_fields(vals, inverse_fields)
  File "/usr/lib/python3/dist-packages/odoo/models.py", line 1260, in _validate_fields
    check(self)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 411, in _check_xml
    )).with_traceback(e.__traceback__) from None
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 391, in _check_xml
    view.postprocess_and_fields(view_doc, validate=True)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 851, in postprocess_and_fields
    arch, name_manager = self._postprocess_view(node, model, validate=validate)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 863, in _postprocess_view
    self.postprocess(node, [], editable, name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  [Previous line repeated 1 more time]
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 942, in postprocess
    postprocessor(node, name_manager, node_info)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 1003, in _postprocess_tag_field
    editable=node_info['editable'],
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 863, in _postprocess_view
    self.postprocess(node, [], editable, name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  [Previous line repeated 2 more times]
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 954, in postprocess
    validator(node, name_manager, node_info)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 1090, in _validate_tag_field
    self.handle_view_error(msg)
  File "/usr/lib/python3/dist-packages/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 "fees_active" does not exist in model "mollie.payment.method"

View name: payment.acquirer.form.inherit
Error context:
 view: ir.ui.view(1213,)
 xmlid: acquirer_form_view_mollie
 view.model: payment.acquirer
 view.parent: ir.ui.view(1071,)
 file: /mnt/extra-addons/payment_mollie_official/views/payment_views.xml

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

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 684, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 360, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 348, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 913, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 532, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1393, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1381, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-72>", line 2, in button_immediate_install
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 475, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 593, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 460, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 348, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 221, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 69, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 733, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 799, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 719, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/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 "/usr/lib/python3/dist-packages/odoo/http.py", line 640, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 316, in _handle_exception
    raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /mnt/extra-addons/payment_mollie_official/views/payment_views.xml:3, near
<record id="acquirer_form_view_mollie" model="ir.ui.view">
        <field name="name">payment.acquirer.form.inherit</field>
        <field name="model">payment.acquirer</field>
        <field name="inherit_id" ref="payment.acquirer_form"/>
        <field name="priority">20</field>
        <field name="arch" type="xml">
            <data><xpath expr="//group[@name=&quot;acquirer&quot;]" position="inside">
                <group attrs="{'invisible': [('provider', '!=', 'mollie')]}">
                    <field name="mollie_api_key_test" attrs="{'required':[ ('provider', '=', 'mollie'), ('state', '=', 'test')]}" password="True"/>
                    <field name="mollie_api_key_prod" attrs="{'required':[ ('provider', '=', 'mollie'), ('state', '=', 'enabled')]}" password="True"/>
                    <field name="mollie_profile_id" attrs="{'required':[ ('provider', '=', 'mollie'), ('state', '=', 'enabled')]}" password="True"/>
                    <field name="mollie_voucher_enabled" invisible="1"/>
                    <label string=" " for="mollie_profile_id"> </label>
                    <small class="text-muted"> Credit card option will not be displayed without profile ID.
                        <br/>
                        <b><a href="https://www.mollie.com/dashboard/developers/api-keys" target="_new"> Get your API keys <i class="fa fa-arrow-right"> </i> </a></b>
                        <br/>
                        <br/>
                    </small>
                </group>
            </xpath>
            <page name="acquirer_credentials" position="after">
                <page string="Mollie Payment Methods" attrs="{'invisible': [('provider', '!=', 'mollie')]}">
                    <field name="mollie_methods_ids">
                        <tree create="0">
                            <field name="sequence" widget="handle"/>
                            <field name="name"/>
                            <field name="method_id_code" optional="hide"/>
                            <field name="payment_icon_ids" widget="many2many_tags"/>
                            <field name="active" invisible="1"/>
                            <field name="journal_id"/>
                            <field name="active_on_shop" widget="boolean_toggle"/>
                            <field name="country_ids" widget="many2many_tags" optional="hide"/>
                            <field name="min_amount" invisible="1"/>
                            <field name="min_amount" invisible="1"/>
                            <field name="supports_order_api" invisible="1"/>
                            <field name="supports_payment_api" invisible="1"/>
                            <field name="payment_issuer_ids" widget="many2many_tags" invisible="1"/>
                        </tree>
                        <form>
                            <div class="oe_title">
                                <h1>
                                    <field name="name" placeholder="Name"/>
                                </h1>
                                <group>
                                    <field name="method_id_code" readonly="1"/>
                                </group>
                            </div>
                            <notebook>
                                <page name="config" string="Configuration">
                                    <group>
                                        <group>
                                            <field name="active" invisible="1"/>
                                            <field name="active_on_shop" widget="boolean_toggle"/>
                                            <field name="journal_id"/>
                                        </group>
                                        <group>
                                            <field name="payment_icon_ids" widget="many2many_tags"/>
                                            <field name="country_ids" widget="many2many_tags"/>
                                        </group>
                                    </group>
                                </page>
                                <page string="Fees" name="method_fees" attrs="{'invisible': [('parent.fees_active', '=', False)]}">
                                    <group>
                                        <group name="method_payment_fees">
                                            <field name="fees_active"/>
                                            <field name="fees_dom_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
                                            <field name="fees_dom_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
                                            <field name="fees_int_fixed" attrs="{'invisible': [('fees_active', '=', False)]}"/>
                                            <field name="fees_int_var" attrs="{'invisible': [('fees_active', '=', False)]}"/>
                                        </group>
                                    </group>
                                </page>
                                <page string="Voucher Configuration" name="voucher_config" attrs="{'invisible': [('method_id_code', '!=', 'voucher')]}">
                                    <field name="mollie_voucher_ids">
                                        <tree editable="bottom">
                                            <field name="category_id"/>
                                            <field name="mollie_voucher_category"/>
                                        </tree>
                                    </field>
                                </page>
                            </notebook>
                        </form>
                    </field>
                    <button type="object" name="action_mollie_sync_methods" class="btn btn-link">
                        <span><i class="fa fa-refresh"/> Sync payment methods </span>
                    </button>
                </page>
            </page>
        </data></field>
    </record>
sutidor commented 2 years ago

my mistake.

  1. Put new module in addon folder
  2. restart odoo
  3. put odoo in debug mode
  4. refresh app list
  5. klick "update"