from django import forms from .models import ABSConfiguration, ABSBeam from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget from apps.main.models import Configuration class ABSConfigurationForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(ABSConfigurationForm, self).__init__(*args, **kwargs) #instance = getattr(self, 'instance', None) #if instance and instance.pk: # devices = Device.objects.filter(device_type__name='abs') #if instance.experiment: # experiments = Experiment.objects.filter(pk=instance.experiment.id) # self.fields['experiment'].widget.choices = [(experiment.id, experiment) for experiment in experiments] class Meta: model = ABSConfiguration exclude = ('type', 'status', 'parameters', 'beams', 'module_status') class ABSBeamAddForm(forms.Form): #abs_conf = forms.CharField(widget=forms.HiddenInput) #name = forms.CharField(max_length=60) up_data = forms.CharField(widget=UpDataWidget, label='') down_data = forms.CharField(widget=DownDataWidget, label='') def __init__(self, *args, **kwargs): super(ABSBeamAddForm, self).__init__(*args, **kwargs) #if 'abs_conf' in self.initial: # self.fields['abs_conf'].initial = self.initial['abs_conf'] #self.fields['name'].initial = 'Beam' # self.fields['up_data'].initial = self.initial['abs_conf'] # self.fields['down_data'].initial = self.initial['abs_conf'] #self.fields['abs_conf'].initial = self.initial['abs_conf'] #self.fields['name'].initial = 'Beam' #self.fields['up_data'].initial = self.initial['abs_conf'] #self.fields['down_data'].initial = self.initial['abs_conf'] class ABSBeamEditForm(forms.Form): #abs_conf = forms.CharField(widget=forms.HiddenInput) up_data = forms.CharField(widget=EditUpDataWidget, label='') down_data = forms.CharField(widget=EditDownDataWidget, label='') def __init__(self, *args, **kwargs): super(ABSBeamEditForm, self).__init__(*args, **kwargs) if 'initial' in kwargs: if 'beam' in self.initial: #self.fields['abs_conf'].initial = self.initial['beam'].abs_conf self.fields['up_data'].initial = self.initial['beam'] self.fields['down_data'].initial = self.initial['beam']