Projet

Général

Profil

0001-deployed-services-declared-in-KNOWN_SERVICES-setting.patch

Voir les différences:

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(-)
combo/apps/wcs/models.py
31 31

  
32 32
from .utils import get_wcs_json
33 33

  
34
COMBO_WCS_SITES = settings.KNOWN_SERVICES.get('wcs', {})
34 35

  
35 36
def is_wcs_enabled(cls):
36
    return hasattr(settings, 'COMBO_WCS_SITES') and settings.COMBO_WCS_SITES
37
    return 'wcs' in settings.KNOWN_SERVICES
37 38

  
38 39
@register_cell_class
39 40
class WcsFormCell(CellBase):
......
54 55
    def save(self, *args, **kwargs):
55 56
        if self.formdef_reference:
56 57
            wcs_key, form_slug = self.formdef_reference.split(':')
57
            wcs_site = settings.COMBO_WCS_SITES.get(wcs_key)
58
            wcs_site = COMBO_WCS_SITES.get(wcs_key)
58 59
            forms_response_json = get_wcs_json(wcs_site.get('url') + 'json')
59 60
            for form in forms_response_json:
60 61
                slug = form.get('slug')
......
90 91
    def save(self, *args, **kwargs):
91 92
        if self.category_reference:
92 93
            wcs_key, category_slug = self.category_reference.split(':')
93
            wcs_site = settings.COMBO_WCS_SITES.get(wcs_key)
94
            wcs_site = COMBO_WCS_SITES.get(wcs_key)
94 95
            categories_response_json = get_wcs_json(wcs_site.get('url') + 'categories')
95 96
            for category in categories_response_json.get('data'):
96 97
                slug = category.get('slug')
......
135 136
    def get_blurp_renderer(self, context):
136 137
        if self.wcs_site:
137 138
            try:
138
                wcs_sites = {self.wcs_site: settings.COMBO_WCS_SITES[self.wcs_site]}
139
                wcs_sites = {self.wcs_site: COMBO_WCS_SITES[self.wcs_site]}
139 140
            except KeyError:
140 141
                # in case of the site disappeared from settings
141 142
                return cmsplugin_blurp.utils.create_renderer(self.variable_name, {
......
144 145
                })
145 146

  
146 147
        else:
147
            wcs_sites = settings.COMBO_WCS_SITES
148
            wcs_sites = COMBO_WCS_SITES
148 149

  
149 150
        sources = []
150 151
        for slug, wcs_site in wcs_sites.items():
......
196 197
        abstract = True
197 198

  
198 199
    def get_default_form_class(self):
199
        if len(settings.COMBO_WCS_SITES) == 1:
200
        if len(COMBO_WCS_SITES) == 1:
200 201
            return None
201 202
        combo_wcs_sites = [('', _('All'))]
202
        combo_wcs_sites.extend([(x, y.get('title')) for x, y in settings.COMBO_WCS_SITES.items()])
203
        combo_wcs_sites.extend([(x, y.get('title')) for x, y in COMBO_WCS_SITES.items()])
203 204
        return model_forms.modelform_factory(self.__class__,
204 205
                fields=['wcs_site'],
205 206
                widgets={'wcs_site': Select(choices=combo_wcs_sites)})
......
306 307
        verbose_name = _('Tracking Code Input')
307 308

  
308 309
    def get_default_form_class(self):
309
        if len(settings.COMBO_WCS_SITES) == 1:
310
        if len(COMBO_WCS_SITES) == 1:
310 311
            return None
311
        combo_wcs_sites = [(x, y.get('title')) for x, y in settings.COMBO_WCS_SITES.items()]
312
        combo_wcs_sites = [(x, y.get('title')) for x, y in COMBO_WCS_SITES.items()]
312 313
        return model_forms.modelform_factory(self.__class__,
313 314
                fields=['wcs_site'],
314 315
                widgets={'wcs_site': Select(choices=combo_wcs_sites)})
......
316 317
    def render(self, context):
317 318
        tmpl = template.loader.get_template(self.template_name)
318 319
        if not self.wcs_site:
319
            self.wcs_site = settings.COMBO_WCS_SITES.keys()[0]
320
        context['url'] = settings.COMBO_WCS_SITES.get(self.wcs_site).get('url')
320
            self.wcs_site = COMBO_WCS_SITES.keys()[0]
321
        context['url'] = COMBO_WCS_SITES.get(self.wcs_site).get('url')
321 322
        return tmpl.render(context)
combo/settings.py
196 196

  
197 197
MELLON_IDENTITY_PROVIDERS = []
198 198

  
199
# known deployed services
200
KNOWN_SERVICES = {}
201

  
199 202
local_settings_file = os.environ.get('COMBO_SETTINGS_FILE',
200 203
        os.path.join(os.path.dirname(__file__), 'local_settings.py'))
201 204
if os.path.exists(local_settings_file):
debian/debian_config.py
12 12
#
13 13
execfile('/usr/lib/hobo/debian_config_common.py')
14 14

  
15
TENANT_SETTINGS_LOADERS += (
16
    'hobo.multitenant.settings_loaders.KnownServices',
17
)
18

  
15 19
#
16 20
# local settings
17 21
#
18
-