[6.1/7.0/trunk] Menu translations doesn't work after module installation because they have ID referenced as "base.xxx"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenERP Community Backports (Server) |
New
|
Undecided
|
Unassigned |
Bug Description
As seen on bug #1294887, some menus doesn't appear translated because their definitions on XML have an ID with reference to the base module, so that translation export tool include them on base translation file, not on each module. In this serie of consequences, only loading base module loads these translations, but on the base loading, translations are not loaded because the elements don't exist. The only way to handle this is to install module (for example purchase), and then update base module again.
An easy solution to this is to rename these IDs to another ones, and it's very interesting that this lands on trunk before the v8 debuts, because this change is not easy to be done on an stable branch.
This is the complete list of menus with this problem that I have detected:
account:
· base.menu_
association:
· base.menu_
· base.menu_
· base.menu_
base_action_rule:
· base.menu_
base_calendar:
· base.menu_
crm:
· base.menu_sales
· base.menu_
· base.menu_
· base.menu_
· base.menu_
· base.menu_
· base.menu_
· base.next_id_64
crm_claim:
· base.menu_
· base.menu_aftersale
crm_helpdesk:
· base.menu_
· base.menu_
· base.menu_aftersale
event:
· base.menu_
· base.menu_
· base.menu_
hr:
· base.menu_
hr_recruitment:
· base.menu_
idea:
· base.menu_tools
· base.menu_
marketing:
· base.marketing_menu
marketing_campaign:
· base.menu_
membership:
· base.menu_
· base.menu_
· base.menu_
mrp:
· base.menu_mrp_root
· base.menu_
multicompany:
· base.menu_
plugin_outlook:
· base.menu_
plugin_thunderbird:
· base.menu_
product:
· base.menu_
· base.menu_product
product_margin:
· base.next_id_73
project:
· base.menu_main_pm
· base.menu_
· base.menu_
· base.menu_
· base.menu_
· base.menu_
project_long_term:
· "base.menu_
purchase:
· base.menu_
· base.menu_
· base.next_id_73
sale:
· base.menu_
· base.menu_product
· base.menu_invoiced
· base.next_id_64
· base.menu_
· base.menu_
· base.menu_
subscription:
· base.menu_tools
· base.menu_
survey:
· base.menu_tools
· base.menu_
· base.next_id_10
I know that there are some modules that redefine menus because you wanted in the past reduce the coupling between modules, but these are the only solutions I see:
1. Set again some dependencies. Not desirable.
2. Create glue modules with the shared menus that are installed as dependencies of the others. Not the best, but it works.
3. Put that menus definitions on base, and add an active field on menus that allows to hide some menus. On modules that need this menu, you would define the menu again with active flag set to True, and translations will be already correct.
4. A variation of the last one, as all these cases are shared root menus, is that on web client, if there is a root menu that doesn't have any children, you can hide it. Less elegant.
5. At last, develop a method, as commented on the other bug report, to handle translation with foreign modules IDs. The costliest (on development and processing time), but the best to avoid any problem.
Let me know if you want me to help you on the MP.
Regards.
summary: |
- [6.1/7.0/trunk] Menu translations doesn't work after installation module - installation because they have ID referenced as "base.xxx" + [6.1/7.0/trunk] Menu translations doesn't work after module installation + because they have ID referenced as "base.xxx" |