Source code for gsi.gsi_forms

# -*- coding: utf-8 -*-
from django import forms

from core.validator_gsi import validate_order
from cards.models import CardItem
from gsi.models import (RunBase, Resolution, CardSequence, VariablesGroup,
                        HomeVariables, Tile, YearGroup, Year, Satellite,
                        InputDataDirectory, ConfigFile)


[docs]class RunForm(forms.ModelForm): """**Form for editing RunBase.**""" def __init__(self, *args, **kwargs): super(RunForm, self).__init__(*args, **kwargs) self.fields['card_sequence'].widget.attrs['disabled'] = 'disabled' self.fields['card_sequence'].initial = self.instance.card_sequence name = forms.CharField( widget=forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Name', }), label=u'Name', ) description = forms.CharField( widget=forms.Textarea(attrs={ 'rows': '5', 'class': 'form-control border-bottom', 'placeholder': 'Description', }), required=False, label=u'Description') purpose = forms.CharField( widget=forms.Textarea(attrs={ 'rows': '5', 'class': 'form-control border-bottom', 'placeholder': 'Purpose of Run', }), required=False, label=u'Purpose of Run') directory_path = forms.CharField( widget=forms.TextInput(attrs={ 'class': 'form-control border-bottom form-control input-form', 'placeholder': 'Directory path', }), label=u'Directory path', help_text=u'Directory path is the name of the directory \ that result will be stored') resolution = forms.ModelChoiceField( widget=forms.Select(attrs={ 'class': 'form-control disabled', }), queryset=Resolution.objects.all(), empty_label='Select', label=u'Resolution', ) card_sequence = forms.CharField( widget=forms.TextInput(attrs={ 'class': 'form-control', 'placeholder': 'Card sequence', }), required=False, label=u'Card sequence', ) class Meta: model = RunBase fields = [ 'name', 'author', 'description', 'purpose', 'directory_path', 'resolution', ]
[docs]class CardSequenceForm(forms.ModelForm): """**Form for editing CardSecuence.**""" def __init__(self, *args, **kwargs): super(CardSequenceForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) environment_override = forms.CharField( required=False, widget=forms.Textarea(attrs={'rows': '5', 'class': 'form-control'}), label=u'Environment override', ) environment_base = forms.ModelChoiceField( widget=forms.Select(attrs={'class': 'form-control'}), queryset=VariablesGroup.objects.all(), required=False, label=u'Environment base', ) class Meta: model = CardSequence fields = [ 'name', 'environment_base', 'environment_override', ]
[docs]class CardSequenceCardForm(forms.ModelForm): """**Form for editing CardSecuence.**""" def __init__(self, *args, **kwargs): super(CardSequenceCardForm, self).__init__(*args, **kwargs) card_item = forms.ModelChoiceField( widget=forms.Select( attrs={'class': 'form-control disabled', 'type': "hidden"}), queryset=CardItem.objects.all(), label=u'Environment base', ) order = forms.CharField( widget=forms.TextInput(attrs={ 'class': 'form-control', 'type': 'number', }), validators=[validate_order], label=u'Order', ) class Meta: model = CardSequence.cards.through fields = [ 'card_item', 'order', ]
[docs]class CardSequenceCreateForm(forms.ModelForm): """**Form for editing CardSecuence.**""" def __init__(self, *args, **kwargs): super(CardSequenceCreateForm, self).__init__(*args, **kwargs) if 'instance' in kwargs: self.fields['card_item'].queryset = CardItem.objects.filter( id__in=kwargs['instance'].cards.values_list( 'id', flat=True)) environment_override = forms.CharField( widget=forms.Textarea(attrs={'rows': '5', 'class': 'form-control'}), required=False, label=u'Environment override', ) environment_base = forms.ModelChoiceField( widget=forms.Select(attrs={'class': 'form-control'}), queryset=VariablesGroup.objects.all(), required=False, empty_label='Select', label=u'Environment base', ) card_item = forms.ModelChoiceField( widget=forms.Select(attrs={'class': 'form-control'}), queryset=None, empty_label='Select', required=False, label=u'Card items', ) order = forms.IntegerField( widget=forms.NumberInput(attrs={'class': 'form-control'}), initial=0, validators=[validate_order], error_messages={'required': 'Order must be a positive number'}, required=False, label=u'Ordered card items', ) class Meta: model = CardSequence.cards.through fields = [ 'environment_base', 'environment_override', 'card_item', 'order', ]
[docs]class HomeVariablesForm(forms.ModelForm): """**Form for editing Home Variables.**""" SAT_TIF_DIR_ROOT = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='SAT_TIF_DIR_ROOT', label=u'Satelite Data Top Level', ) RF_DIR_ROOT = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='RF_DIR_ROOT', label=u'Top directory for Random Forest Files', ) USER_DATA_DIR_ROOT = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='USER_DATA_DIR_ROOT', label=u'Top Level for user data dir', ) MODIS_DIR_ROOT = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='MODIS_DIR_ROOT', label=u'Top Level for raw Modis data', ) RF_AUXDATA_DIR = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='RF_AUXDATA_DIR', label=u'Top Level for Auxilliary data (SOIL, DEM etc.)', ) SAT_DIF_DIR_ROOT = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), help_text='SAT_DIF_DIR_ROOT', label=u'Top Level for Satelite TF files', ) def __init__(self, *args, **kwargs): super(HomeVariablesForm, self).__init__(*args, **kwargs) class Meta: model = HomeVariables fields = [ 'SAT_TIF_DIR_ROOT', 'RF_DIR_ROOT', 'USER_DATA_DIR_ROOT', 'MODIS_DIR_ROOT', 'RF_AUXDATA_DIR', 'SAT_DIF_DIR_ROOT', ]
[docs]class EnvironmentGroupsForm(forms.ModelForm): """**Form for editing Environment Groups.**""" def __init__(self, *args, **kwargs): super(EnvironmentGroupsForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) environment_variables = forms.CharField( widget=forms.Textarea(attrs={'rows': '5', 'class': 'form-control'}), label=u'Environment variables') class Meta: model = VariablesGroup fields = [ 'name', 'environment_variables', ]
[docs]class AreasForm(forms.ModelForm): """**Form for editing Areas.**""" def __init__(self, *args, **kwargs): super(AreasForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) tiles = forms.ModelMultipleChoiceField( widget=forms.SelectMultiple( attrs={'size': '10', 'class': 'form-control'}), queryset=Tile.objects.all(), required=False, label=u'Tiles', ) class Meta: model = VariablesGroup fields = [ 'name', 'tiles', ]
[docs]class YearGroupForm(forms.ModelForm): """**Form for editing YearGroup.**""" def __init__(self, *args, **kwargs): super(YearGroupForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) years = forms.ModelMultipleChoiceField( widget=forms.SelectMultiple( attrs={'size': '10', 'class': 'form-control'}), queryset=Year.objects.all(), required=False, label=u'Years', ) class Meta: model = YearGroup fields = [ 'name', 'years', ]
[docs]class SatelliteForm(forms.ModelForm): """**Form for editing Satellite.**""" def __init__(self, *args, **kwargs): super(SatelliteForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) class Meta: model = Satellite fields = ['name', ]
class UploadFileForm(forms.Form): test_data = forms.FileField(label='Load Test Data') def __init__(self, *args, **kwargs): super(UploadFileForm, self).__init__(*args, **kwargs) self.fields['test_data'].widget.attrs.update({ 'class': 'form-control upload-file' })
[docs]class InputDataDirectoryForm(forms.ModelForm): """**Form for editing InputDataDirectory.**""" def __init__(self, *args, **kwargs): super(InputDataDirectoryForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) class Meta: model = InputDataDirectory fields = ['name', ]
[docs]class ConfigFileForm(forms.ModelForm): """**Form for editing ConfigFile.**""" def __init__(self, *args, **kwargs): super(ConfigFileForm, self).__init__(*args, **kwargs)
[docs]class ResolutionForm(forms.ModelForm): """**Form for editing Resolution.**""" def __init__(self, *args, **kwargs): super(ResolutionForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', help_text='This will be a short display of the value, i.e. 1KM, 250M',) value = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Value', help_text='Value in meters, e.g 1000 for 1KM display name',) class Meta: model = Resolution fields = ['name', 'value',]
[docs]class TileForm(forms.ModelForm): """**Form for editing Tile.**""" def __init__(self, *args, **kwargs): super(TileForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) class Meta: model = Tile fields = ['name', ]
[docs]class YearForm(forms.ModelForm): """**Form for editing Year.**""" def __init__(self, *args, **kwargs): super(YearForm, self).__init__(*args, **kwargs) name = forms.CharField( widget=forms.TextInput(attrs={'class': 'form-control'}), label=u'Name', ) class Meta: model = Year fields = ['name', ]