From 47041f2d45915e2ed74c4317f9aafe3dfa840f0a Mon Sep 17 00:00:00 2001 From: Fabio Barbero Date: Tue, 19 Oct 2021 12:52:09 +0000 Subject: [PATCH] [IMP] base: allow user to activate multiple languages at once Purpose ======= Add "Activate" button when selecting multiple languages, select multiple languages when clicking on "Add languages" in settings. Specifications ============= `lang` variable in `base.language.install` changed from Selection to Many2many to allow multiple languages being activated at once. Hide globe icon for language fields from view mode (only visible when editing). Remove state in base.language.install since it's no longer need to keep track of the installation step. Task-2662548 closes odoo/odoo#78287 Related: odoo/upgrade#2921 Signed-off-by: Thibault Delavallee (tde) --- .../views/res_config_settings_views.xml | 2 +- addons/crm/views/crm_lead_views.xml | 8 +-- .../l10n_multilang/models/l10n_multilang.py | 22 ++++--- addons/website/models/res_lang.py | 15 ++++- .../static/tests/tours/automatic_editor.js | 25 ++++++-- addons/website/static/tests/tours/rte.js | 22 +++++-- addons/website/tests/test_configurator.py | 5 +- .../views/res_config_settings_views.xml | 2 +- .../website/wizard/base_language_install.py | 7 +-- .../wizard/base_language_install_views.xml | 2 +- odoo/addons/base/models/res_lang.py | 16 +++++ odoo/addons/base/views/res_lang_views.xml | 3 + odoo/addons/base/views/res_partner_views.xml | 2 +- odoo/addons/base/views/res_users_views.xml | 4 +- .../base/wizard/base_language_install.py | 60 ++++++++++++------- .../wizard/base_language_install_views.xml | 40 +++++++++---- .../tests/test_term_count.py | 6 +- odoo/tools/translate.py | 2 +- 18 files changed, 171 insertions(+), 72 deletions(-) diff --git a/addons/base_setup/views/res_config_settings_views.xml b/addons/base_setup/views/res_config_settings_views.xml index ef7bcbbf595..6e9adb076b9 100644 --- a/addons/base_setup/views/res_config_settings_views.xml +++ b/addons/base_setup/views/res_config_settings_views.xml @@ -51,7 +51,7 @@
-
-
diff --git a/addons/website/wizard/base_language_install.py b/addons/website/wizard/base_language_install.py index b3c6225f951..63669f8c0b1 100644 --- a/addons/website/wizard/base_language_install.py +++ b/addons/website/wizard/base_language_install.py @@ -22,13 +22,12 @@ class BaseLanguageInstall(models.TransientModel): def lang_install(self): action = super(BaseLanguageInstall, self).lang_install() - lang = self.env['res.lang']._lang_get(self.lang) - if self.website_ids and lang: - self.website_ids.write({'language_ids': [(4, lang.id)]}) + if self.website_ids and self.lang_ids: + self.website_ids.language_ids |= self.lang_ids params = self._context.get('params', {}) if 'url_return' in params: return { - 'url': params['url_return'].replace('[lang]', self.lang), + 'url': params['url_return'].replace('[lang]', self.first_lang_id.code), 'type': 'ir.actions.act_url', 'target': 'self' } diff --git a/addons/website/wizard/base_language_install_views.xml b/addons/website/wizard/base_language_install_views.xml index df3062d2f77..3c52b29fd7c 100644 --- a/addons/website/wizard/base_language_install_views.xml +++ b/addons/website/wizard/base_language_install_views.xml @@ -6,7 +6,7 @@ base.language.install - + diff --git a/odoo/addons/base/models/res_lang.py b/odoo/addons/base/models/res_lang.py index ecca41e0bb1..95b21366869 100644 --- a/odoo/addons/base/models/res_lang.py +++ b/odoo/addons/base/models/res_lang.py @@ -334,6 +334,22 @@ class Lang(models.Model): return formatted + def action_activate_langs(self): + """ Activate the selected languages """ + for lang in self.filtered(lambda l: not l.active): + lang.toggle_active() + message = _("The languages that you selected have been successfully installed. Users can choose their favorite language in their preferences.") + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'target': 'new', + 'params': { + 'message': message, + 'type': 'success', + 'sticky': False, + 'next': {'type': 'ir.actions.act_window_close'}, + } + } def split(l, counts): """ diff --git a/odoo/addons/base/views/res_lang_views.xml b/odoo/addons/base/views/res_lang_views.xml index 79bd883ed17..0d962d81abc 100644 --- a/odoo/addons/base/views/res_lang_views.xml +++ b/odoo/addons/base/views/res_lang_views.xml @@ -6,6 +6,9 @@ res.lang +
+
diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index eeb835f3ea5..b69f5776470 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -223,7 +223,7 @@ + + + + + Load a Translation base.language.install
- - - + + - - has been successfully installed. -Users can choose his favorite language in their preferences. - -