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']
