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)
|