def __init__(self, *args, **kwargs): super(SingleForm, self).__init__(*args, **kwargs) self.fields['sub_cone'] = forms.ChoiceField(label=_('Sub-cone index:'), choices=self.SUB_CONE_CHOICES, required=True) self.fields['format'] = forms.ChoiceField(label=_('Output format:'), choices=self.FORMAT_CHOICES, required=True) self.fields['mag_field'] = forms.ChoiceField(label=_('Magnitude field:'), choices=datasets.band_pass_filters_enriched(), required=True) self.fields['min_mag'] = forms.DecimalField(label=_('Minimum magnitude:'), required=False) self.fields['max_mag'] = forms.DecimalField(label=_('Maximum magnitude:'), required=False) self.fields['z_min'] = forms.DecimalField(label=_('Minimum redshift:'), required=True) self.fields['z_max'] = forms.DecimalField(label=_('Maximum redshift:'), required=True) self.fields['origin_ra'] = forms.DecimalField(label=_('Center on RA:'), required=True) self.fields['origin_dec'] = forms.DecimalField(label=_('Center on DEC:'), required=True) self.fields['fov_ra'] = forms.DecimalField(label=_('FOV range RA:'), required=True) self.fields['fov_dec'] = forms.DecimalField(label=_('FOV range DEC:'), required=True) self.fields['width'] = forms.IntegerField(label=_('Image width in pixels:'), required=True) self.fields['height'] = forms.IntegerField(label=_('Image height in pixels:'), required=True) self.fields['sub_cone'].widget.attrs['data-bind'] = "value: sub_cone, options: $parent.sub_cone_options, optionsText: 'text'" self.fields['format'].widget.attrs['data-bind'] = "value: format, options: $parent.format_options, optionsText: 'text'" self.fields['mag_field'].widget.attrs['data-bind'] = "value: mag_field, options: mag_field_options, optionsText: function(obj) {return obj.fields.label}" self.fields['min_mag'].widget.attrs['data-bind'] = 'value: min_mag' self.fields['max_mag'].widget.attrs['data-bind'] = 'value: max_mag' self.fields['z_min'].widget.attrs['data-bind'] = 'value: z_min' self.fields['z_max'].widget.attrs['data-bind'] = 'value: z_max' self.fields['origin_ra'].widget.attrs['data-bind'] = 'value: origin_ra' self.fields['origin_dec'].widget.attrs['data-bind'] = 'value: origin_dec' self.fields['fov_ra'].widget.attrs['data-bind'] = 'value: fov_ra' self.fields['fov_dec'].widget.attrs['data-bind'] = 'value: fov_dec' self.fields['width'].widget.attrs['data-bind'] = 'value: width' self.fields['height'].widget.attrs['data-bind'] = 'value: height'
def __init__(self, *args, **kwargs): self.ui_holder = args[0] super(Form, self).__init__(*args[1:], **kwargs) default_required = False if self.is_bound: sspm_choices = datasets.stellar_model_choices() dust_models = [(x.id, x.label) for x in datasets.dust_models_objects()] else: sspm_choices = [] dust_models = [] self.fields['apply_sed'] = forms.BooleanField(required=False, widget=forms.CheckboxInput(), label='Apply Spectral Energy Distribution') self.fields['single_stellar_population_model'] = ChoiceFieldWithOtherAttrs(choices=sspm_choices, required=default_required) self.fields['band_pass_filters'] = bf_fields.forms.MultipleChoiceField(required=default_required, choices=datasets.band_pass_filters_enriched(), widget=TwoSidedSelectWidget) self.fields['apply_dust'] = forms.BooleanField(required=default_required, widget=forms.CheckboxInput(attrs={'class': 'checkbox'}), label='Apply Dust') self.fields['select_dust_model'] = forms.ChoiceField(choices=dust_models, required=default_required, widget=forms.Select()) for field_name in Form.SED_REQUIRED_FIELDS: self.fields[field_name].semirequired = True self.fields['apply_sed'].widget.attrs['data-bind'] = 'checked: apply_sed' self.fields['single_stellar_population_model'].widget.attrs['data-bind'] = 'options: stellar_models, value: stellar_model, optionsText: function(i) { return i.fields.label }' self.fields['band_pass_filters'].widget.attrs['ko_data'] = {'widget':'bandpass_filters_widget','value':'bandpass_filters'} self.fields['apply_dust'].widget.attrs['data-bind'] = 'checked: apply_dust' self.fields['select_dust_model'].widget.attrs['data-bind'] = 'enable: apply_dust, options: dust_models, value: dust_model, optionsText: function(i) { return i.fields.label }'