Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyError: 'x_odoo_message_id' in l10n_it_fatturapa_pec #4521

Closed
2 tasks done
sherpya opened this issue Jan 3, 2025 · 6 comments · Fixed by #4523 or #4525
Closed
2 tasks done

KeyError: 'x_odoo_message_id' in l10n_it_fatturapa_pec #4521

sherpya opened this issue Jan 3, 2025 · 6 comments · Fixed by #4523 or #4525
Labels
14.0 bug hotfix needs porting This issue has already been resolved for some version no stale Use this label to prevent the automated stale action from closing this PR/Issue.

Comments

@sherpya
Copy link
Member

sherpya commented Jan 3, 2025

Ho notato che in questa pr https://github.com/OCA/l10n-italy/pull/4446/files

nella clean_message_dict in l10n_it_fatturapa_pec/models/mail_thread.py è stato aggiunto:

del message_dict["x_odoo_message_id"]

Sembra unrelated e genera eccezione, non trovo da nessun'altra parte un riferimento a tale chiave

Module

l10n_it_fatturapa_pec

To Reproduce

Affected versions:

@sherpya sherpya added the bug label Jan 3, 2025
@SirAionTech
Copy link
Contributor

Grazie della segnalazione!
Quella riga è stata aggiunta con il commit 4fb4219 e nel messaggio del commit trovi il motivo:

[FIX] l10n_it_fatturapa_pec: Remove extra fields from message
message_dict contains values used to track the message, but we use it to create a mail.message so the extra values have to be removed because they are not fields of mail.message.

Nella descrizione della PR #4446 trovi altre info che riporto qui sotto:

Ho aggiunto un commit per correggere l'errore nei test https://github.com/OCA/l10n-italy/actions/runs/12313495777/job/34367636978#step:8:1717:

Stack
2024-12-13 10:22:13,191 528 ERROR odoo odoo.addons.l10n_it_fatturapa_pec.tests.test_e_invoice_response: ERROR: TestEInvoiceResponse.test_process_response_RC
Traceback (most recent call last):
  File "/__w/l10n-italy/l10n-italy/l10n_it_fatturapa_pec/tests/test_e_invoice_response.py", line 41, in test_process_response_RC
    ).message_process(False, incoming_mail)
  File "/opt/odoo/addons/mail/models/mail_thread.py", line 1298, in message_process
    routes = self.message_route(message, msg_dict, model, thread_id, custom_values)
  File "/__w/l10n-italy/l10n-italy/l10n_it_fatturapa_pec/models/mail_thread.py", line 77, in message_route
    return self.manage_pec_sdi_notification(message, message_dict)
  File "/__w/l10n-italy/l10n-italy/l10n_it_fatturapa_pec/models/mail_thread.py", line 138, in manage_pec_sdi_notification
    ).create(message_dict)
  File "", line 2, in create
  File "/opt/odoo/odoo/api.py", line 414, in _model_create_multi
    return create(self, [arg])
  File "/opt/odoo/addons/mail/models/mail_message.py", line 606, in create
    messages = super(Message, self).create(values_list)
  File "", line 2, in create
  File "/opt/odoo/odoo/api.py", line 415, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo/addons/base/models/ir_fields.py", line 670, in create
    recs = super().create(vals_list)
  File "", line 2, in create
  File "/opt/odoo/odoo/api.py", line 415, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo/odoo/models.py", line 3958, in create
    raise ValueError("Invalid field %r on model %r" % (key, self._name))
ValueError: Invalid field 'x_odoo_message_id' on model 'mail.message'

Dovuto al commit odoo/odoo@43041df che è solo in 16.0.

Se è tutto chiaro chiudi pure, altrimenti fammi sapere se hai altre domande.

@sherpya
Copy link
Member Author

sherpya commented Jan 3, 2025

ma ho segnalato l'issue perché mi da eccezione (KeyError) e mi disattiva il server pec (il mio odoo non ha quel commit), potresti usare un pop con None, usare del in questo caso non è backward compatibile

@SirAionTech
Copy link
Contributor

ma ho segnalato l'issue perché mi da eccezione (KeyError) e mi disattiva il server pec (il mio odoo non ha quel commit), potresti usare un pop con None, usare del in questo caso non è backward compatibile

Capito grazie, quindi ottieni errore perché stai usando una versione vecchia di Odoo.

Se vuoi un'implementazione diversa puoi proporre una PR, io al momento non posso; all'epoca non l'ho fatto retrocompatibile perché non credo che i moduli debbano essere compatibili con vecchie versioni di Odoo, e per essere omogeneo al codice circostante:

del message_dict["attachments"]
del message_dict["cc"]
del message_dict["from"]
del message_dict["to"]
del message_dict["recipients"]
del message_dict["references"]
del message_dict["in_reply_to"]
del message_dict["bounced_email"]
del message_dict["bounced_partner"]
del message_dict["bounced_msg_id"]
del message_dict["bounced_message"]
del message_dict["x_odoo_message_id"]

@sherpya
Copy link
Member Author

sherpya commented Jan 7, 2025

ma ho segnalato l'issue perché mi da eccezione (KeyError) e mi disattiva il server pec (il mio odoo non ha quel commit), potresti usare un pop con None, usare del in questo caso non è backward compatibile

Capito grazie, quindi ottieni errore perché stai usando una versione vecchia di Odoo.

Se vuoi un'implementazione diversa puoi proporre una PR, io al momento non posso; all'epoca non l'ho fatto retrocompatibile perché non credo che i moduli debbano essere compatibili con vecchie versioni di Odoo, e per essere omogeneo al codice circostante:

Il fatto è che 3 settimane di screw tra odoo e il modulo di l10n-italy non è poi così rara come condizione,
appena posso apro una PR

@SirAionTech
Copy link
Contributor

SirAionTech commented Jan 10, 2025

Il problema esiste solo in una versione vecchia di 16.0 quindi non è da portare a 14.0 e questa issue si può chiudere al merge della fix #4523.

La fix #4523 che si sta mergiando però include anche un refactoring che sarebbe da portare a 14.0 altrimenti il codice delle due versioni risulta diverso e sarebbe difficile portare ulteriori modifiche da una versione all'altra.

@tafaRU
Copy link
Member

tafaRU commented Jan 10, 2025

La fix #4523 che si sta mergiando però include anche un refactoring che sarebbe da portare a 14.0 altrimenti il codice delle due versioni risulta diverso e sarebbe difficile portare ulteriori modifiche da una versione all'altra.

@SirAionTech #4525

@SirAionTech SirAionTech added 14.0 needs porting This issue has already been resolved for some version hotfix no stale Use this label to prevent the automated stale action from closing this PR/Issue. and removed 16.0 labels Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
14.0 bug hotfix needs porting This issue has already been resolved for some version no stale Use this label to prevent the automated stale action from closing this PR/Issue.
Projects
None yet
4 participants