wcs: rely on global render method (#20374)
This commit is contained in:
parent
a129bda7c9
commit
921ab9f484
|
@ -202,9 +202,7 @@ class WcsBlurpMixin(object):
|
|||
return wcs_sites
|
||||
|
||||
def get_cell_extra_context(self, context):
|
||||
extra_context = super(WcsBlurpMixin, self).get_cell_extra_context(context)
|
||||
extra_context[self.variable_name] = self.get_data()
|
||||
return extra_context
|
||||
return {self.variable_name: self.get_data(context)}
|
||||
|
||||
|
||||
class WcsDataBaseCell(CellBase, WcsBlurpMixin):
|
||||
|
@ -241,10 +239,10 @@ class WcsDataBaseCell(CellBase, WcsBlurpMixin):
|
|||
fields=self.get_form_fields(),
|
||||
widgets=self.get_form_widgets())
|
||||
|
||||
def render(self, context):
|
||||
if not self.variable_name in context:
|
||||
context[self.variable_name] = self.get_data(context)
|
||||
return super(WcsDataBaseCell, self).render(context)
|
||||
def get_cell_extra_context(self, context):
|
||||
extra_context = super(WcsDataBaseCell, self).get_cell_extra_context(context)
|
||||
extra_context.update(WcsBlurpMixin.get_cell_extra_context(self, context))
|
||||
return extra_context
|
||||
|
||||
|
||||
class WcsUserDataBaseCell(WcsDataBaseCell):
|
||||
|
@ -293,8 +291,8 @@ class WcsCurrentFormsCell(WcsUserDataBaseCell):
|
|||
return '%s - %s' % (initial_label, label)
|
||||
return label
|
||||
|
||||
def render(self, context):
|
||||
context[self.variable_name] = self.get_data(context)
|
||||
def get_cell_extra_context(self, context):
|
||||
context = super(WcsCurrentFormsCell, self).get_cell_extra_context(context)
|
||||
if not (self.current_forms and self.done_forms):
|
||||
for wcs_site in context['user_forms']:
|
||||
if not context['user_forms'].get(wcs_site):
|
||||
|
@ -308,8 +306,7 @@ class WcsCurrentFormsCell(WcsUserDataBaseCell):
|
|||
context['user_forms'][wcs_site]['data'] = [x for x in
|
||||
context['user_forms'][wcs_site]['data'] if x.get('form_status_is_endpoint')]
|
||||
context['current_forms'] = context['user_forms'] # legacy
|
||||
return super(WcsCurrentFormsCell, self).render(context)
|
||||
|
||||
return context
|
||||
|
||||
@register_cell_class
|
||||
class WcsCurrentDraftsCell(WcsUserDataBaseCell):
|
||||
|
@ -356,43 +353,44 @@ class WcsFormsOfCategoryCell(WcsCommonCategoryCell, WcsBlurpMixin):
|
|||
def is_relevant(self, context):
|
||||
return bool(self.category_reference)
|
||||
|
||||
def render(self, context):
|
||||
def get_cell_extra_context(self, context):
|
||||
extra_context = super(WcsFormsOfCategoryCell, self).get_cell_extra_context(context)
|
||||
extra_context.update(WcsBlurpMixin.get_cell_extra_context(self, context))
|
||||
if not self.category_reference:
|
||||
return ''
|
||||
context[self.variable_name] = self.get_data(context)
|
||||
context['slug'] = self.category_reference.split(':')[-1]
|
||||
context['title'] = self.cached_title
|
||||
context['description'] = self.cached_description
|
||||
return extra_context
|
||||
extra_context['slug'] = self.category_reference.split(':')[-1]
|
||||
extra_context['title'] = self.cached_title
|
||||
extra_context['description'] = self.cached_description
|
||||
try:
|
||||
context['forms'] = list(context['forms'][self.wcs_site]['data'])
|
||||
extra_context['forms'] = list(extra_context['forms'][self.wcs_site]['data'])
|
||||
except (KeyError, TypeError) as e:
|
||||
# an error occured when getting the data
|
||||
context['forms'] = []
|
||||
extra_context['forms'] = []
|
||||
|
||||
# default sort is alphabetical, it's always done as this will serve as
|
||||
# secondary sort key (thanks to Python stable sort)
|
||||
context['forms'] = sorted(context['forms'], key=lambda x: x.get('title'))
|
||||
context['more_forms'] = []
|
||||
extra_context['forms'] = sorted(extra_context['forms'], key=lambda x: x.get('title'))
|
||||
extra_context['more_forms'] = []
|
||||
|
||||
if self.ordering == 'popularity':
|
||||
context['forms'] = sorted(context['forms'], key=lambda x: x.get('count'), reverse=True)
|
||||
extra_context['forms'] = sorted(extra_context['forms'], key=lambda x: x.get('count'), reverse=True)
|
||||
elif self.ordering == 'manual':
|
||||
if self.manual_order:
|
||||
manual_order = self.manual_order.get('data')
|
||||
for form in context['forms']:
|
||||
for form in extra_context['forms']:
|
||||
form_reference = '%s:%s' % (self.category_reference, form['slug'])
|
||||
try:
|
||||
form['order'] = manual_order.index(form_reference)
|
||||
except ValueError:
|
||||
form['order'] = 9999
|
||||
context['forms'] = sorted(context['forms'], key=lambda x: x.get('order'))
|
||||
extra_context['forms'] = sorted(extra_context['forms'], key=lambda x: x.get('order'))
|
||||
|
||||
if self.limit:
|
||||
if len(context['forms']) > self.limit:
|
||||
context['more_forms'] = context['forms'][self.limit:]
|
||||
context['forms'] = context['forms'][:self.limit]
|
||||
if len(extra_context['forms']) > self.limit:
|
||||
extra_context['more_forms'] = extra_context['forms'][self.limit:]
|
||||
extra_context['forms'] = extra_context['forms'][:self.limit]
|
||||
|
||||
return super(WcsFormsOfCategoryCell, self).render(context)
|
||||
return extra_context
|
||||
|
||||
def render_for_search(self):
|
||||
return ''
|
||||
|
@ -437,9 +435,9 @@ class TrackingCodeInputCell(CellBase):
|
|||
fields=['wcs_site'],
|
||||
widgets={'wcs_site': Select(choices=combo_wcs_sites)})
|
||||
|
||||
def render(self, context):
|
||||
tmpl = template.loader.get_template(self.template_name)
|
||||
def get_cell_extra_context(self, context):
|
||||
extra_context = super(TrackingCodeInputCell, self).get_cell_extra_context(context)
|
||||
if not self.wcs_site:
|
||||
self.wcs_site = get_wcs_services().keys()[0]
|
||||
context['url'] = get_wcs_services().get(self.wcs_site).get('url')
|
||||
return tmpl.render(context, context.get('request'))
|
||||
extra_context['url'] = get_wcs_services().get(self.wcs_site).get('url')
|
||||
return extra_context
|
||||
|
|
Loading…
Reference in New Issue