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.
[12.0] Aggiornamento moduli l10n-italy-12.0
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?
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.
> 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.
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?
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).
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.
> 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.
Resta informato
Informazioni sulla comunità
Strumenti di richiesta
Statistiche
Richiesta del: 20/12/20, 23:26 |
Vista: 987 volte |
Ultimo aggiornamento: 21/12/20, 15:29 |