From 293231bec67b995e1f831395e21566c1c43ee03a Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Tue, 12 May 2015 01:03:23 +0200 Subject: [PATCH] deployed services declared in KNOWN_SERVICES setting (#6711) This setting is filled by hobo's setting loader --- combo/apps/wcs/models.py | 23 ++++++++++++----------- combo/settings.py | 3 +++ debian/debian_config.py | 4 ++++ 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/combo/apps/wcs/models.py b/combo/apps/wcs/models.py index a63796d..5eec253 100644 --- a/combo/apps/wcs/models.py +++ b/combo/apps/wcs/models.py @@ -31,9 +31,10 @@ from combo.utils import NothingInCacheException from .utils import get_wcs_json +COMBO_WCS_SITES = settings.KNOWN_SERVICES.get('wcs', {}) def is_wcs_enabled(cls): - return hasattr(settings, 'COMBO_WCS_SITES') and settings.COMBO_WCS_SITES + return 'wcs' in settings.KNOWN_SERVICES @register_cell_class class WcsFormCell(CellBase): @@ -54,7 +55,7 @@ class WcsFormCell(CellBase): def save(self, *args, **kwargs): if self.formdef_reference: wcs_key, form_slug = self.formdef_reference.split(':') - wcs_site = settings.COMBO_WCS_SITES.get(wcs_key) + wcs_site = COMBO_WCS_SITES.get(wcs_key) forms_response_json = get_wcs_json(wcs_site.get('url') + 'json') for form in forms_response_json: slug = form.get('slug') @@ -90,7 +91,7 @@ class WcsCommonCategoryCell(CellBase): def save(self, *args, **kwargs): if self.category_reference: wcs_key, category_slug = self.category_reference.split(':') - wcs_site = settings.COMBO_WCS_SITES.get(wcs_key) + wcs_site = COMBO_WCS_SITES.get(wcs_key) categories_response_json = get_wcs_json(wcs_site.get('url') + 'categories') for category in categories_response_json.get('data'): slug = category.get('slug') @@ -135,7 +136,7 @@ class WcsBlurpMixin(object): def get_blurp_renderer(self, context): if self.wcs_site: try: - wcs_sites = {self.wcs_site: settings.COMBO_WCS_SITES[self.wcs_site]} + wcs_sites = {self.wcs_site: COMBO_WCS_SITES[self.wcs_site]} except KeyError: # in case of the site disappeared from settings return cmsplugin_blurp.utils.create_renderer(self.variable_name, { @@ -144,7 +145,7 @@ class WcsBlurpMixin(object): }) else: - wcs_sites = settings.COMBO_WCS_SITES + wcs_sites = COMBO_WCS_SITES sources = [] for slug, wcs_site in wcs_sites.items(): @@ -196,10 +197,10 @@ class WcsDataBaseCell(CellBase, WcsBlurpMixin): abstract = True def get_default_form_class(self): - if len(settings.COMBO_WCS_SITES) == 1: + if len(COMBO_WCS_SITES) == 1: return None combo_wcs_sites = [('', _('All'))] - combo_wcs_sites.extend([(x, y.get('title')) for x, y in settings.COMBO_WCS_SITES.items()]) + combo_wcs_sites.extend([(x, y.get('title')) for x, y in COMBO_WCS_SITES.items()]) return model_forms.modelform_factory(self.__class__, fields=['wcs_site'], widgets={'wcs_site': Select(choices=combo_wcs_sites)}) @@ -306,9 +307,9 @@ class TrackingCodeInputCell(CellBase): verbose_name = _('Tracking Code Input') def get_default_form_class(self): - if len(settings.COMBO_WCS_SITES) == 1: + if len(COMBO_WCS_SITES) == 1: return None - combo_wcs_sites = [(x, y.get('title')) for x, y in settings.COMBO_WCS_SITES.items()] + combo_wcs_sites = [(x, y.get('title')) for x, y in COMBO_WCS_SITES.items()] return model_forms.modelform_factory(self.__class__, fields=['wcs_site'], widgets={'wcs_site': Select(choices=combo_wcs_sites)}) @@ -316,6 +317,6 @@ class TrackingCodeInputCell(CellBase): def render(self, context): tmpl = template.loader.get_template(self.template_name) if not self.wcs_site: - self.wcs_site = settings.COMBO_WCS_SITES.keys()[0] - context['url'] = settings.COMBO_WCS_SITES.get(self.wcs_site).get('url') + self.wcs_site = COMBO_WCS_SITES.keys()[0] + context['url'] = COMBO_WCS_SITES.get(self.wcs_site).get('url') return tmpl.render(context) diff --git a/combo/settings.py b/combo/settings.py index 25e9bac..2d258df 100644 --- a/combo/settings.py +++ b/combo/settings.py @@ -196,6 +196,9 @@ MELLON_USERNAME_TEMPLATE = '{attributes[name_id_content]}' MELLON_IDENTITY_PROVIDERS = [] +# known deployed services +KNOWN_SERVICES = {} + local_settings_file = os.environ.get('COMBO_SETTINGS_FILE', os.path.join(os.path.dirname(__file__), 'local_settings.py')) if os.path.exists(local_settings_file): diff --git a/debian/debian_config.py b/debian/debian_config.py index 26dea7d..b11c6dd 100644 --- a/debian/debian_config.py +++ b/debian/debian_config.py @@ -12,6 +12,10 @@ INSTALLED_APPS += ('mellon',) # execfile('/usr/lib/hobo/debian_config_common.py') +TENANT_SETTINGS_LOADERS += ( + 'hobo.multitenant.settings_loaders.KnownServices', +) + # # local settings # -- 2.1.4