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

[16.0][FIX] accounting menu not translatable #4298

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from

Conversation

primes2h
Copy link
Contributor

Risolve #2885 per la v.16.0

Copy link
Contributor

@andreampiovesana andreampiovesana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link

@MaurizioPellegrinet MaurizioPellegrinet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@francesco-ooops
Copy link
Contributor

/ocabot rebase

@OCA-git-bot
Copy link
Contributor

Congratulations, PR rebased to 16.0.

@francesco-ooops francesco-ooops linked an issue Jul 30, 2024 that may be closed by this pull request
3 tasks
@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

Copy link
Contributor

@andreampiovesana andreampiovesana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Merge?

Copy link
Contributor

@SirAionTech SirAionTech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grazie della PR!
Come scrissi in #2675 (review):

Secondo me il problema è più generico di account vs l10n_it_account vs account_accountant quindi si potrebbe aprire una issue.

e andrebbe quindi risolto direttamente in Odoo.

Rispetto ad allora però ho trovato dei possibili problemi con questo approccio, vedi il commento qui sotto.

Se vogliamo continuare ad usare dei work-around, si potrebbe usare un approccio più dinamico, tipo

# Move the RiBa menu if any of
# its siblings (menu having same parent before write)
# is moved (parent changes).
# This happens when account_accountant (enterprise)
# is installed or uninstalled.
root_riba_menu = self.env.ref("l10n_it_riba.menu_riba")
parent_riba_menu = root_riba_menu.parent_id
if old_parent == parent_riba_menu and new_parent_id != old_parent.id:
root_riba_menu.parent_id = new_parent_id
.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Con queste modifiche viene in pratica creato un nuovo menu, e vengono spostati tutti i menu conosciuti lì sotto.
Vedo diversi problemi con questo approccio:

  1. Se altri moduli aggiungono un sottomenu a account.menu_finance (tipo https://github.com/OCA/credit-control/blob/0d1e8c4dc5d0804501f3340246b97e14e8278017/account_credit_control/views/credit_control_line.xml#L256), viene riesumato il vecchio menu e vengono quindi visualizzati entrambi (sia Accounting che Fatturazione):
    image.
  2. Quando viene disinstallato il modulo l10n_it_account, i menu diventano principali perché non hanno un parent:
    image.
  3. Le modifiche di altri moduli a account.menu_finance (tipo https://github.com/OCA/account-financial-tools/blob/a1cac726b5862d2936d9c1814ae7ad6dfcfc0c5c/account_usability/views/menu.xml#L11) vengono perse.

@kamzata
Copy link

kamzata commented Oct 20, 2024

Please, can anyone merge this? LGTM?

@primes2h
Copy link
Contributor Author

primes2h commented Nov 12, 2024

Grazie della PR! Come scrissi in #2675 (review):

Secondo me il problema è più generico di account vs l10n_it_account vs account_accountant quindi si potrebbe aprire una issue.

e andrebbe quindi risolto direttamente in Odoo.

Ho approfondito la questione e ho scoperto che tecnicamente questo problema non è un vero e proprio bug.
Da quello che ho capito, il problema di fondo è che in Odoo non è ancora stato implementato un meccanismo di inherit per i menu e finché non verrà fatto non sarà possibile risolvere correttamente la cosa.

Questo comporta che quando ad esempio vado a modificare una voce di menù in questo modo, quello che succede è che per assurdo viene modificata la stringa sorgente del modulo account.
Infatti esportando il file it.po di account dentro troviamo

msgid "Accounting"
msgstr "Fatturazione"

Questo spiega perfettamente il comportamento attuale di Odoo quando viene installato il modulo l10n_it_account. In inglese compare il menù Accounting e in italiano compare Fatturazione.

Rispetto ad allora però ho trovato dei possibili problemi con questo approccio, vedi il commento qui sotto.

Concordo con te che questo approccio apre le porte a diversi potenziali (e reali) problemi.

Se vogliamo continuare ad usare dei work-around, si potrebbe usare un approccio più dinamico, tipo

# Move the RiBa menu if any of
# its siblings (menu having same parent before write)
# is moved (parent changes).
# This happens when account_accountant (enterprise)
# is installed or uninstalled.
root_riba_menu = self.env.ref("l10n_it_riba.menu_riba")
parent_riba_menu = root_riba_menu.parent_id
if old_parent == parent_riba_menu and new_parent_id != old_parent.id:
root_riba_menu.parent_id = new_parent_id

.

Un approccio del genere applicato a questo caso porterebbe a mio parere a complicare ancora di più le cose con il forte rischio di effetti collaterali futuri non prevedibili (es. interazioni con metodi per far funzionare correttamente i menù con il modulo account_accountant, come ad es. il modulo riba o altri in OCA).

Per risolvere alla radice la problematica propongo un nuovo approccio, è un workaround che va a modificare direttamente la stringa tradotta in account.
Agli effetti pratici il risultato che si ottiene equivale a quello che fa il sistema con la stringa sorgente.
In questo modo il menù resta quello originale e funziona correttamente con qualsiasi modulo extra che va ad aggiungere sottomenù.

Cosa ne pensi?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Menù "Accounting" non traducibile.
8 participants