Forum

Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

[12.0] Aggiornamento moduli l10n-italy-12.0

Avatar
ToBeSmart

Ciao a tutti.

Ho un problema con l'aggiornamento dei moduli di fatturazione elettronica. Ho visto che erano disponibili degli aggiornamenti per i moduli:

l10n_it_fatturapa
  • l10n_it_fatturapa_out
  • l10n_it_fatturapa_sale
  • l10n_it_fatturapa_in 
  • l10n_it_fatturapa_pec 

Ho scaricato tutto il pacchetto da Github, ma quando eseguo l'aggiornamento di ciascun modulo ottengo questo errore:

Errore:
Odoo Server Error
Traceback (most recent call last):
  File "/opt/odoo/odoo12/odoo/models.py", line 1128, in _validate_fields
    check(self)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 351, in _check_xml
    self.postprocess_and_fields(view.model, view_doc, view.id)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 1131, in postprocess_and_fields
    self.raise_view_error(message, view_id)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 568, in raise_view_error
    raise ValueError(message)
ValueError: Il campo `max_invoice_in_xml` non esiste
Contesto errore:
Vista `partner.form.fatturapa`
[view_id: 2650, xml_id: n/d, model: res.partner, parent_id: 2572]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 758, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 663, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/opt/odoo/odoo12/odoo/models.py", line 3893, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo/odoo12/odoo/models.py", line 3807, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo/odoo12/odoo/api.py", line 462, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 428, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo/odoo12/odoo/api.py", line 462, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo12/odoo/models.py", line 3624, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo/odoo12/odoo/fields.py", line 1148, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 275, in _inverse_arch
    view.write(data)
  File "/opt/odoo/odoo12/addons/website/models/ir_ui_view.py", line 41, in write
    return super(View, self).write(vals)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 445, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo/odoo12/odoo/models.py", line 3349, in write
    self._write(store_vals)
  File "/opt/odoo/odoo12/odoo/models.py", line 3485, in _write
    self._validate_fields(vals)
  File "/opt/odoo/odoo12/odoo/models.py", line 1132, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Errore nella validazione del vincolo\n\nIl campo `max_invoice_in_xml` non esiste\n\nContesto errore:\nVista `partner.form.fatturapa`\n[view_id: 2650, xml_id: n/d, model: res.partner, parent_id: 2572]', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/opt/odoo/odoo12/odoo/http.py", line 656, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo12/odoo/http.py", line 314, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo/odoo12/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo/odoo12/odoo/http.py", line 698, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo12/odoo/http.py", line 346, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo12/odoo/service/model.py", line 98, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo12/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo12/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo12/odoo/http.py", line 519, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/odoo12/addons/web/controllers/main.py", line 966, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo/odoo12/addons/web/controllers/main.py", line 954, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo/odoo12/odoo/api.py", line 759, in call_kw
    return _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo/odoo12/odoo/api.py", line 746, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-61>", line 2, in button_immediate_install
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_module.py", line 445, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_module.py", line 561, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/opt/odoo/odoo12/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/odoo12/odoo/modules/loading.py", line 421, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/opt/odoo/odoo12/odoo/modules/loading.py", line 313, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/opt/odoo/odoo12/odoo/modules/loading.py", line 222, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package, report=report)
  File "/opt/odoo/odoo12/odoo/modules/loading.py", line 68, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 802, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 865, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 764, in parse
    exc_info[2]
  File "/opt/odoo/odoo12/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 758, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/opt/odoo/odoo12/odoo/tools/convert.py", line 663, in _tag_record
    record = model.with_context(rec_context)._load_records([data], self.mode == 'update')
  File "/opt/odoo/odoo12/odoo/models.py", line 3893, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo/odoo12/odoo/models.py", line 3807, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo/odoo12/odoo/api.py", line 462, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 428, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo/odoo12/odoo/api.py", line 462, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo12/odoo/models.py", line 3624, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo/odoo12/odoo/fields.py", line 1148, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 275, in _inverse_arch
    view.write(data)
  File "/opt/odoo/odoo12/addons/website/models/ir_ui_view.py", line 41, in write
    return super(View, self).write(vals)
  File "/opt/odoo/odoo12/odoo/addons/base/models/ir_ui_view.py", line 445, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo/odoo12/odoo/models.py", line 3349, in write
    self._write(store_vals)
  File "/opt/odoo/odoo12/odoo/models.py", line 3485, in _write
    self._validate_fields(vals)
  File "/opt/odoo/odoo12/odoo/models.py", line 1132, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Errore nella validazione del vincolo
Il campo `max_invoice_in_xml` non esiste
Contesto errore:
Vista `partner.form.fatturapa`
[view_id: 2650, xml_id: n/d, model: res.partner, parent_id: 2572]
None" while parsing /opt/odoo/odoo12-custom-addons/l10n_it_fatturapa_out/views/partner_view.xml:4, near
<record model="ir.ui.view" id="view_partner_form_fatturapa">
        <field name="name">partner.form.fatturapa</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="l10n_it_fatturapa.view_partner_form_fatturapa"/>
        <field name="arch" type="xml">
            <field name="ipa_code" position="before">
                <field name="max_invoice_in_xml"/>
            </field>
        </field>
    </record>


Non capisco dove inserire il campo "max_invoice_in_xml"

Sapete indicarmi la soluzione?


Avatar
Abbandona
9 Risposte
2
Avatar
Davide Corio
Migliore risposta

Oltre a quanto suggerito da Alex, prova ad installare l'ultima versione di openupgradelib:

pip install git+https://github.com/OCA/openupgradelib.git@master

Avatar
Abbandona
0
Avatar
ToBeSmart
Migliore risposta

Ok provo ad installare il pacchetto e ti faccio sapere... Grazie

Avatar
Abbandona
1
Avatar
Daniele Allegretti
Migliore risposta

Il c ampo "max_invoice_in_xml" è usato da l10n_it_fatturapa_out
E' capitato anche a noi, quando si aggiorna il modulo con aziende già esistenti, poi se si avvia una azienda compare (purtroppo) l'errore.
Al momento la soluzione che ho trovato è quella, piuttosto laboriosa, di:
- spostare la cartella del modulo fuori della cartella Addons
- avviare l'azidenda
- posizionarsi sulla pagina Moduli di Odoo
- ripristinare la cartella
- installare il modulo
In questo modo il campo viene creato.
Non mi assumo responsabilità :-) Fare una copia del database prima di provarci.





Avatar
Abbandona
1
Avatar
Alex Comba
Migliore risposta

E' capitato anche a noi, quando si aggiorna il modulo con aziende già esistenti, poi se si avvia una azienda compare (purtroppo) l'errore.

Se l'errore è riproducibile suggerisco di creare una nuova issue su OCA/l10n-italy. Grazie.

Avatar
Abbandona
0
Avatar
ToBeSmart
Migliore risposta

Ciao. Intanto grazie per la risposta.

Una domanda, cosa intendi per "avviare l'azienda"? 

Io ho eseguito il modulo dall'interfaccia di odoo, accedendo quindi al db e cliccando sulla pagina moduli di odoo. Facendo questo avvio l'azienda? 

 

Tranquillo per la perdita di dati, perchè ancora ci sono dati che possono essere cancellati, più che altro sono dei test. 

Quindi caso limite eventualmente disinstallo tutti i moduli legati alla fattura elettronica (l10n), cancello le folder e reinstallo? 

Avatar
Abbandona
0
Avatar
ToBeSmart
Migliore risposta

Ok ragazzi. Ho risolto il problema seguendo le vostre indicazioni:

  1. Ho aggiornato la libreria openupgradelib

  2. Ho aggiornato tutti i moduli da linea di comando

  3. Ho riavviato Odoo


Problema risolto.


Avatar
Abbandona
0
Avatar
Alex Comba
Migliore risposta

Ciao,

cosa intendi con "l'aggiornamento di ciascun modulo"?

Il campo su cui ottieni l'errore è aggiunto dal modulo l10n_it_fatturapa_out: prova ad aggiornare il modulo l10n_it_fatturapa (dal quale tutti i moduli della fattura elettronica dipendono) o ancora meglio tutti i moduli installati nel tuo database, con l'opzione -u all (da linea di comando) o aggiornando il modulo base (da interfaccia).

Avatar
Abbandona
0
Avatar
ToBeSmart
Migliore risposta

Ciao Alex. 

Per "aggiornare ciascun modulo" intendo che ho eseguito il download del pacchetto di installazione, sovrascritto la cartella del vecchio modulo e dall'interfaccia di odoo, nella pagina di aggiornamento moduli, ho cliccato il tasto update singolarmente di ciascun modulo.

Purtroppo anche l'aggiornamento del modulo l10n_it_fatturapa mi da lo stesso errore. Clicco update e dopo qualche secondo appare l'errore ed il modulo non viene aggiornato.

Avatar
Abbandona
1
Avatar
Alex Comba
Migliore risposta

> e dall'interfaccia di odoo, nella pagina di aggiornamento moduli, ho cliccato il tasto update singolarmente di ciascun modulo.

Se aggiorni più moduli e non sai di preciso quali effettivamente sono stati modificati, devi aggiornarli tutti come ti ho suggerito più sopra.
Altro suggerimento: dopo aver aggiornato il codice, prima di eseguire l'aggiornamento, è necessario riavviare Odoo.

Avatar
Abbandona