X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=dashboard%2Fsrc%2Fworkflow%2Fforms.py;h=03940d8d08448cfda4986eb6c9c673f1f4c8135a;hb=879ebf85275e5f8942eb1a1e30d76cbee2a70715;hp=feb32f22de148f179bd9583e2f55cb72383485c6;hpb=f2bbdbbf7e03be031723a9680aa9deaf80e4a99c;p=pharos-tools.git diff --git a/dashboard/src/workflow/forms.py b/dashboard/src/workflow/forms.py index feb32f2..03940d8 100644 --- a/dashboard/src/workflow/forms.py +++ b/dashboard/src/workflow/forms.py @@ -41,6 +41,7 @@ class SearchableSelectMultipleWidget(widgets.SelectMultiple): self.default_entry = attrs.get("default_entry", "") self.edit = attrs.get("edit", False) self.wf_type = attrs.get("wf_type") + self.incompatible = attrs.get("incompatible", "false") super(SearchableSelectMultipleWidget, self).__init__(attrs) @@ -61,7 +62,8 @@ class SearchableSelectMultipleWidget(widgets.SelectMultiple): 'initial': self.initial, 'default_entry': self.default_entry, 'edit': self.edit, - 'wf_type': self.wf_type + 'wf_type': self.wf_type, + 'incompatible': self.incompatible } @@ -101,13 +103,6 @@ class ResourceSelectorForm(forms.Form): displayable['id'] = res.id resources[res.id] = displayable - if bundle: - displayable = {} - displayable['small_name'] = bundle.name - displayable['expanded_name'] = "Current bundle" - displayable['string'] = bundle.description - displayable['id'] = "repo bundle" - resources["repo bundle"] = displayable attrs = { 'set': resources, 'show_from_noentry': "true", @@ -159,13 +154,15 @@ class SWConfigSelectorForm(forms.Form): displayable['id'] = config.id configs[config.id] = displayable - if bundle: + incompatible_choice = "false" + if bundle and bundle.id not in configs: displayable = {} displayable['small_name'] = bundle.name - displayable['expanded_name'] = "Current configuration" + displayable['expanded_name'] = bundle.owner.username displayable['string'] = bundle.description - displayable['id'] = "repo bundle" - configs['repo bundle'] = displayable + displayable['id'] = bundle.id + configs[bundle.id] = displayable + incompatible_choice = "true" attrs = { 'set': configs, @@ -177,7 +174,8 @@ class SWConfigSelectorForm(forms.Form): 'placeholder': "config", 'initial': chosen, 'edit': edit, - 'wf_type': 2 + 'wf_type': 2, + 'incompatible': incompatible_choice } return attrs @@ -332,7 +330,7 @@ class MultipleSelectFilterField(forms.Field): class FormUtils: @staticmethod - def getLabData(): + def getLabData(multiple_selectable_hosts): """ Gets all labs and thier host profiles and returns a serialized version the form can understand. Should be rewritten with a related query to make it faster @@ -350,6 +348,8 @@ class FormUtils: slab['selected'] = 0 slab['selectable'] = 1 slab['follow'] = 1 + if not multiple_selectable_hosts: + slab['follow'] = 0 slab['multiple'] = 0 items[slab['id']] = slab mapping[slab['id']] = [] @@ -363,7 +363,7 @@ class FormUtils: shost['selected'] = 0 shost['selectable'] = 1 shost['follow'] = 0 - shost['multiple'] = 1 + shost['multiple'] = multiple_selectable_hosts items[shost['id']] = shost mapping[slab['id']].append(shost['id']) if shost['id'] not in mapping: @@ -376,7 +376,7 @@ class FormUtils: context = { 'filter_objects': filter_objects, 'mapping': mapping, - 'items': items + 'filter_items': items } return context @@ -386,7 +386,7 @@ class HardwareDefinitionForm(forms.Form): def __init__(self, *args, **kwargs): selection_data = kwargs.pop("selection_data", False) super(HardwareDefinitionForm, self).__init__(*args, **kwargs) - attrs = FormUtils.getLabData() + attrs = FormUtils.getLabData(1) attrs['selection_data'] = selection_data self.fields['filter_field'] = MultipleSelectFilterField( widget=MultipleSelectFilterWidget( @@ -463,7 +463,7 @@ class SnapshotHostSelectForm(forms.Form): class SnapshotMetaForm(forms.Form): name = forms.CharField() - description = forms.CharField() + description = forms.CharField(widget=forms.Textarea) class ConfirmationForm(forms.Form):