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

Merged
merged 2 commits into from
Jan 8, 2025

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.

@OCA-git-bot OCA-git-bot force-pushed the 16.0-fix-accounting-menu branch from bb16b31 to a33f203 Compare July 30, 2024 15:22
@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
.

l10n_it_account/views/account_menuitem.xml Outdated Show resolved Hide resolved
@kamzata
Copy link

kamzata commented Oct 20, 2024

Please, can anyone merge this? LGTM?

@TheMule71 TheMule71 mentioned this pull request Nov 8, 2024
33 tasks
@primes2h primes2h force-pushed the 16.0-fix-accounting-menu branch from a33f203 to 79bc62d Compare November 12, 2024 17:42
@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?

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.

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?

Molto meglio grazie, e ho anche imparato qualche trucchetto su come funzionano le traduzioni, tipo _get_stored_translations e update_raw 😉.

Più in generale, dici che è fattibile aggiungere un test?

l10n_it_account/models/ir_ui_menu.py Outdated Show resolved Hide resolved
l10n_it_account/models/base_language_install.py Outdated Show resolved Hide resolved
l10n_it_account/models/ir_ui_menu.py Outdated Show resolved Hide resolved
l10n_it_account/models/base_language_install.py Outdated Show resolved Hide resolved
@primes2h primes2h force-pushed the 16.0-fix-accounting-menu branch 2 times, most recently from 1a7078f to cdb446f Compare November 25, 2024 16:34
@primes2h
Copy link
Contributor Author

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?

Molto meglio grazie, e ho anche imparato qualche trucchetto su come funzionano le traduzioni, tipo _get_stored_translations e update_raw 😉.

Più in generale, dici che è fattibile aggiungere un test?

Adesso non riesco, se possibile sarebbe meglio procedere senza. Si può sempre aggiungere successivamente con un'altra PR.

@primes2h primes2h force-pushed the 16.0-fix-accounting-menu branch from cdb446f to 0f30c33 Compare November 26, 2024 08:23
@primes2h primes2h requested a review from SirAionTech November 26, 2024 08:44
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.

Test funzionale: OK

Copy link
Member

@mymage mymage left a comment

Choose a reason for hiding this comment

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

LGTM
Nel runboat ho provato a mettere Francese e ovviamente mostra la stringa errata.
Penso sarebbe carino in termini community segnalare, non so dove e come, ai cugini transalpini e agli amici iberici questa modifica.

@SirAionTech
Copy link
Contributor

/ocabot rebase

@OCA-git-bot
Copy link
Contributor

Congratulations, PR rebased to 16.0.

@OCA-git-bot OCA-git-bot force-pushed the 16.0-fix-accounting-menu branch from d542384 to 4643cbf Compare December 13, 2024 17:00
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.

Ho fatto qualche prova e ora funziona come dovrebbero fare le traduzioni, grazie!
Ho anche fatto revisione del codice e per me è ok.
Oltre ai commenti qui sotto, rimane solo l'onnipresente

è fattibile aggiungere un test?

Ma secondo me non c'è più nulla di bloccante per il merge.

Sono poi d'accordo con #4298 (review):

sarebbe carino in termini community segnalare, non so dove e come, ai cugini transalpini e agli amici iberici questa modifica.

l10n_it_account/views/account_menuitem.xml Outdated Show resolved Hide resolved
l10n_it_account/models/res_lang.py Outdated Show resolved Hide resolved
@primes2h primes2h force-pushed the 16.0-fix-accounting-menu branch from 4643cbf to df4b2c6 Compare January 5, 2025 11:03
@primes2h primes2h requested a review from SirAionTech January 5, 2025 11:15
@SirAionTech
Copy link
Contributor

Forse non deve essere in una discussione?

@SirAionTech
Copy link
Contributor

/ocabot merge patch

cc @primes2h

@OCA-git-bot
Copy link
Contributor

Hey, thanks for contributing! Proceeding to merge this for you.
Prepared branch 16.0-ocabot-merge-pr-4298-by-SirAionTech-bump-patch, awaiting test results.

OCA-git-bot added a commit that referenced this pull request Jan 7, 2025
Signed-off-by SirAionTech
@OCA-git-bot
Copy link
Contributor

@SirAionTech your merge command was aborted due to failed check(s), which you can inspect on this commit of 16.0-ocabot-merge-pr-4298-by-SirAionTech-bump-patch.

After fixing the problem, you can re-issue a merge command. Please refrain from merging manually as it will most probably make the target branch red.

@SirAionTech
Copy link
Contributor

@SirAionTech your merge command was aborted due to failed check(s), which you can inspect on this commit of 16.0-ocabot-merge-pr-4298-by-SirAionTech-bump-patch.

After fixing the problem, you can re-issue a merge command. Please refrain from merging manually as it will most probably make the target branch red.

I test falliscono per #3801.

@SirAionTech
Copy link
Contributor

Riproviamo
/ocabot merge patch

@OCA-git-bot
Copy link
Contributor

This PR looks fantastic, let's merge it!
Prepared branch 16.0-ocabot-merge-pr-4298-by-SirAionTech-bump-patch, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit d28bb47 into OCA:16.0 Jan 8, 2025
5 of 7 checks passed
@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at aa55a1c. Thanks a lot for contributing to OCA. ❤️

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

Successfully merging this pull request may close these issues.

Menù "Accounting" non traducibile.
8 participants