wcs: don't lose settings fields when there are multiple sites (#12339)
This commit is contained in:
parent
a01b9829ac
commit
68386f7e27
|
@ -180,16 +180,24 @@ class WcsDataBaseCell(CellBase, WcsBlurpMixin):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def get_default_form_class(self):
|
||||
def get_form_fields(self):
|
||||
if len(get_wcs_services()) == 1:
|
||||
return None
|
||||
return []
|
||||
return ['wcs_site']
|
||||
|
||||
def get_form_widgets(self):
|
||||
if len(get_wcs_services()) == 1:
|
||||
return {}
|
||||
combo_wcs_sites = [('', _('All'))]
|
||||
wcs_sites = [(x, y.get('title')) for x, y in get_wcs_services().items()]
|
||||
wcs_sites.sort(key=lambda x: x[1])
|
||||
combo_wcs_sites.extend(wcs_sites)
|
||||
return {'wcs_site': Select(choices=combo_wcs_sites)}
|
||||
|
||||
def get_default_form_class(self):
|
||||
return model_forms.modelform_factory(self.__class__,
|
||||
fields=['wcs_site'],
|
||||
widgets={'wcs_site': Select(choices=combo_wcs_sites)})
|
||||
fields=self.get_form_fields(),
|
||||
widgets=self.get_form_widgets())
|
||||
|
||||
def render(self, context):
|
||||
context[self.variable_name] = self.get_data(context)
|
||||
|
@ -217,12 +225,10 @@ class WcsCurrentFormsCell(WcsUserDataBaseCell):
|
|||
class Meta:
|
||||
verbose_name = _('User Forms')
|
||||
|
||||
def get_default_form_class(self):
|
||||
form_class = super(WcsCurrentFormsCell, self).get_default_form_class()
|
||||
if not form_class:
|
||||
return model_forms.modelform_factory(self.__class__,
|
||||
fields=['current_forms', 'done_forms'])
|
||||
return form_class
|
||||
def get_form_fields(self):
|
||||
fields = super(WcsCurrentFormsCell, self).get_form_fields()
|
||||
fields.extend(['current_forms', 'done_forms'])
|
||||
return fields
|
||||
|
||||
@property
|
||||
def template_name(self):
|
||||
|
|
|
@ -254,6 +254,8 @@ def test_current_forms_cell_setup():
|
|||
form = form_class()
|
||||
assert form.fields['wcs_site'].widget.choices == [
|
||||
('', 'All'), (u'default', u'test'), (u'other', u'test2')]
|
||||
assert 'current_forms' in form.fields
|
||||
|
||||
try:
|
||||
# check there is not wcs_site field if there's a single one defined in
|
||||
# the configuration
|
||||
|
|
Loading…
Reference in New Issue