예제 #1
0
    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'
예제 #2
0
    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 }'