跳至内容
菜单
此问题已终结
1635 查看

hi hi I am trying to migrate my module from odoo 12 version to odoo 14 but I have encountered errors below. i need help please


Erreur:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo/odoo/tools/convert.py", line 677, in _tag_root
    f(rec)
  File "/opt/odoo/odoo/tools/convert.py", line 580, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/opt/odoo/odoo/models.py", line 4211, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo/odoo/models.py", line 4140, in _load_records_create
    return self.create(values)
  File "<decorator-gen-43>", line 2, in create
  File "/opt/odoo/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/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 "/opt/odoo/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo/addons/base/models/ir_fields.py", line 533, in create
    recs = super().create(vals_list)
  File "<decorator-gen-13>", line 2, in create
  File "/opt/odoo/odoo/api.py", line 345, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo/models.py", line 3901, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo/odoo/fields.py", line 1185, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 300, in _inverse_arch
    view.write(data)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 500, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo/odoo/models.py", line 3685, in write
    real_recs._validate_fields(vals, inverse_fields)
  File "/opt/odoo/odoo/models.py", line 1260, in _validate_fields
    check(self)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 408, in _check_xml
    raise ValidationError(_(
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 391, in _check_xml
    view.postprocess_and_fields(view_doc, validate=True)
  File "/opt/odoo/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 "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 863, in _postprocess_view
    self.postprocess(node, [], editable, name_manager)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 963, in postprocess
    self.postprocess(child, current_node_path, node_info['editable'], name_manager)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 954, in postprocess
    validator(node, name_manager, node_info)
  File "/opt/odoo/odoo/addons/base/models/ir_ui_view.py", line 1128, in _validate_tag_button
    self.handle_view_error(msg)
  File "/opt/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:

action_annuler n'est pas une action valide sur fdct_credit

View name: view.fdct_credit.form
Error context:
 view: ir.ui.view(1572,)
 xmlid: view_id_fdct_credit_form
 view.model: fdct_credit
 file: /opt/odoo/addons/fdct/views/fdct.xml


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

Traceback (most recent call last):
  File "/opt/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/opt/odoo/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/addons/web/controllers/main.py", line 1393, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/opt/odoo/addons/web/controllers/main.py", line 1381, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo/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 "/opt/odoo/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
    return method(self, *args, **kwargs)
  File "/opt/odoo/odoo/addons/base/models/ir_module.py", line 474, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/opt/odoo/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/opt/odoo/odoo/modules/registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/odoo/modules/loading.py", line 453, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/opt/odoo/odoo/modules/loading.py", line 346, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/opt/odoo/odoo/modules/loading.py", line 221, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/opt/odoo/odoo/modules/loading.py", line 69, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/opt/odoo/odoo/tools/convert.py", line 733, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/opt/odoo/odoo/tools/convert.py", line 799, in convert_xml_import
    obj.parse(doc.getroot())
  File "/opt/odoo/odoo/tools/convert.py", line 719, in parse
    self._tag_root(de)
  File "/opt/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 "/opt/odoo/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /opt/odoo/addons/fdct/views/fdct.xml:1270, near
<record model="ir.ui.view" id="view_id_fdct_credit_form">
    <field name="name">view.fdct_credit.form</field>
    <field name="model">fdct_credit</field>
    <field name="priority" eval="16"/>
    <field name="arch" type="xml">
        <form string="Decaissement Crédit">
            <header>
                    <button string="Valider" name="action_valider" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'not in', ['draft'])]}"/>
                    
                     <button string="Confirmer" name="action_confirmer" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'not in', ['Validé'])]}"/>
                    
                    <button string="Approuver" name="action_approuver" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'not in', ['Confirmé'])]}"/>
                    
                     <button string="Annuler" name="action_annuler" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'not in', ['Validé'])]}"/>
                    
                    <button string="Lancer le processus de déblocage" name="action_decaissement_en_cours" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'not in', ['Approuvé'])]}"/>
                    
                    <field name="state" widget="statusbar"/>           
            </header>
            <sheet>
                <label for="name" class="oe_edit_only"/>
                    <h1>
                        <field name="name" style="width:50%" options="{'no_create':True}"/>
                    </h1>
                              <field name="reste_a_decaisse" force_save="1" style="width:100%" invisible="1"/>
                              <field name="mnt_a_decaisse" force_save="1" invisible="1" style="width:20%"/>
                              <field name="reste_ap" force_save="1" invisible="1" style="width:20%"/>
                              <button string="Remplir le tableau de financement" name="action_remplir" type="object" class="oe_highlight" attrs="{'invisible' : [('state', 'in', ['Approuvé','Decaissement en cours','Decaissement terminé'])]}"/>
                        <group>
                            <group>
                              <field name="mnt_dde" force_save="1" style="width:100%"/>
                              <field name="date_demande_credit" force_save="1" style="width:50%"/>
                              <field name="taux_interet_annuel" force_save="1" style="width:20%"/>
                              <field name="nbre_tranche" force_save="1" style="width:20%"/>
                            </group>
                            <group>     
                              <field name="duree_en_annee" force_save="1" style="width:20%"/>
                              <field name="type_tranche" force_save="1" style="width:50%" options="{'no_create':True}"/>
                              <field name="differe_paiement" force_save="1" style="width:20%"/>
                              <field name="nbre_tranche_restant" force_save="1" style="width:20%"/>
                            </group>
                        </group>
            <notebook>
                <page string="Tableau d'amortissement">
                    <group><button string="Actualiser le tableau d'amortissement" name="action_valider_bis" type="object" class="oe_highlight"/></group>
                       <field name="x_line_ids" nolabel="1">             
                      <tree string="Ligne Tableau" editable="bottom">
                          <field name="x_tranche" force_save="1" invisible="0"/>
                          <field name="x_principal" force_save="1" invisible="0"/>
                          <field name="x_interet" force_save="1"/>
                          <field name="x_capital_amorti" force_save="1"/>
                          <field name="x_annuite" force_save="1"/>
                          <field name="x_annuite_bis" force_save="1" invisible="1"/>
                          <field name="x_annuite_sans_interet" force_save="1" invisible="1"/>
                          <field name="x_total" force_save="1" invisible="1"/>
                          <field name="x_etat" force_save="1"/>
                          <field name="x_date_remboursement" force_save="1"/>
                       </tree>
                     </field>
                     <group col="3">
                             <group><field name="x_total_interet" force_save="1"/></group>
                             <group><field name="x_total_remboursement" force_save="1"/></group>
                             <group><field name="x_total_annuite" force_save="1"/></group>
                     </group>
                 </page>
                 <page string="Tableau d'amortissement initial">
                       <field name="x_line_t_ids" nolabel="1">             
                      <tree string="Ligne Tableau Non Modifiable" editable="bottom">
                          <field name="x_tranche" force_save="1" invisible="0"/>
                          <field name="x_principal" force_save="1" invisible="0"/>
                          <field name="x_interet" force_save="1"/>
                          <field name="x_capital_amorti" force_save="1"/>
                          <field name="x_annuite" force_save="1"/>
                          <field name="x_total" force_save="1" invisible="1"/>
                          <field name="toute_info_utile" force_save="1" invisible="1"/>
                          <field name="x_etat" force_save="1" invisible="1"/>
                          <field name="x_date_remboursement" force_save="1" invisible="1"/>
                       </tree>
                     </field>
                     <group col="3">
                             <group><field name="x_total_interet_t" force_save="1"/></group>
                             <group><field name="x_total_remboursement_t" force_save="1"/></group>
                             <group><field name="x_total_annuite_t" force_save="1"/></group>
                     </group>
                 </page>
                 <group col="3">
                        <group><field name="date_op" style="width:30%" invisible="0"/></group>
                        <group><field name="currents_users" style="width:50%" force_save="1" invisible="0"/></group>
                </group>
            </notebook>
            </sheet>
        </form>
    </field>
</record>

形象
丢弃

will be nice if you post the errors in english