From a34b0434a96f3f23ccec4d6fcde7d3d6fb90128c Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Wed, 13 Dec 2017 14:24:47 +0100 Subject: [PATCH] Do not store enabled, code improvements --- .../models/auth_oauth_provider.py | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/auth_oauth_environment/models/auth_oauth_provider.py b/auth_oauth_environment/models/auth_oauth_provider.py index 392f74b..0292477 100644 --- a/auth_oauth_environment/models/auth_oauth_provider.py +++ b/auth_oauth_environment/models/auth_oauth_provider.py @@ -13,33 +13,42 @@ class AuthOAuthProvider(models.Model): _inherit = 'auth.oauth.provider' managed_by_env = fields.Boolean(compute='_compute_server_env') + provider_simple_name = fields.Char(compute='_compute_simple_name') client_id = fields.Char(string='Client ID', compute='_compute_server_env') enabled = fields.Boolean(string='Allowed', compute='_compute_server_env', - store=True) + search='_search_enabled') - @api.depends('name') def _compute_server_env(self): - - base_section = 'auth_oauth' - for provider in self: - - provider_simple_name = provider.name.split(' ')[0].lower() - provider_section_name = '.'.join( - [base_section, provider_simple_name]) - + provider_section_name = provider._get_provider_section_name() vals = {} if serv_config.has_section(provider_section_name): vals.update({'managed_by_env': True}) - vals.update(serv_config.items(provider_section_name)) else: vals.update({'managed_by_env': False, 'enabled': False}) - provider.update(vals) + def _search_enabled(self, operator, value): + enabled_provider_ids = [] + for provider in self.search([]): + provider_section_name = provider._get_provider_section_name() + if serv_config.has_option(provider_section_name, 'enabled') \ + and serv_config.get(provider_section_name, 'enabled'): + enabled_provider_ids.append(provider.id) + return [('id', 'in', enabled_provider_ids)] + + @api.multi + def _compute_simple_name(self): + for provider in self: + provider.provider_simple_name = provider.name.split(' ')[0].lower() + + @api.one + def _get_provider_section_name(self): + return '.'.join(['auth_oauth', self.provider_simple_name]) + @api.model def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):