# Python imports

# Django imports
from django import forms


MEASUREMENT_TYPE_ENG = (
    ('CH1P'  , 'Pressure CH1'),
    ('CH2P'  , 'Pressure CH2'),
    ('CH1F'  , 'Flow CH1'),
    ('CH2F'  , 'Flow CH2'),
    ('CH1T'  , 'Total flow CH1'),
    ('CH2T'  , 'Total flow CH2'),
    ('CH1D'  , 'Digital CH1'),
    ('CH2D'  , 'Digital CH2')
)

MEASUREMENT_TYPE_CRO = (
    ('CH1P'  , 'Tlak CH1'),
    ('CH2P'  , 'Tlak CH2'),
    ('CH1F'  , 'Protok CH1'),
    ('CH2F'  , 'Protok CH2'),
    ('CH1T'  , 'Uk. protok CH1'),
    ('CH2T'  , 'Uk. protok CH2'),
    ('CH1D'  , 'Signal CH1'),
    ('CH2D'  , 'Signal CH2')
)

MEASUREMENT_AXIS_ENG= (
    (1  , 'Axis left'),
    (2  , 'Axis right')
)

MEASUREMENT_AXIS_CRO= (
    (1  , 'Lijeva os'),
    (2  , 'Desna os')
)

AXIS_TYPE_CRO = (
    ('shortdot'  , 'iscrtkano'),
    ('shortdot'  , 'popunjeno')
)

AXIS_TYPE_ENG = (
    ('shortdot'  , 'iscrtkano'),
    ('shortdot'  , 'popunjeno')
)

class NewMeasurementGroupFormCro(forms.Form):
    group_name = forms.CharField(max_length=45,required=True)
    group_name.label = 'Ime'
    group_name.group='General'
    group_info = forms.CharField(max_length=45,required=False,widget=forms.Textarea)
    group_info.label = 'Informacije'
    group_info.group='General'

    axis_left_label = forms.CharField(max_length=45, required=False)
    axis_left_label.label = 'Ime'
    axis_left_label.group='AXL'
    axis_left_unit = forms.CharField(max_length=15, required=False)
    axis_left_unit.label = 'Jedinica'
    axis_left_unit.group='AXL'
    axis_left_type = forms.ChoiceField(choices=AXIS_TYPE_CRO, required=False)
    axis_left_type.label = 'Tip'
    axis_left_type.group='AXL'


    axis_right_label = forms.CharField(max_length=45, required=False)
    axis_right_label.label = 'Ime'
    axis_right_label.group='AXR'
    axis_right_unit = forms.CharField(max_length=15, required=False)
    axis_right_unit.label = 'Jedinica'
    axis_right_unit.group='AXR'
    axis_right_type = forms.ChoiceField(choices=AXIS_TYPE_CRO, required=False)
    axis_right_type.label = 'Tip'
    axis_right_type.group='AXR'


class NewMeasurementGroupFormEng(forms.Form):
    group_name = forms.CharField(max_length=45,required=True)
    group_name.label = 'Name'
    group_name.group='General'
    group_info = forms.CharField(max_length=45,required=False,widget=forms.Textarea)
    group_info.label = 'Info'
    group_info.group='General'


    axis_left_label = forms.CharField(max_length=45,required=False)
    axis_left_label.label = 'Label'
    axis_left_label.group='AXL'
    axis_left_unit = forms.CharField(max_length=15,required=False)
    axis_left_unit.label = 'Unit'
    axis_left_unit.group='AXL'
    axis_left_type = forms.ChoiceField(choices=AXIS_TYPE_ENG,required=False)
    axis_left_type.label = 'Type'
    axis_left_type.group='AXL'

    axis_right_label = forms.CharField(max_length=45,required=False)
    axis_right_label.label = 'Label'
    axis_right_label.group='AXR'
    axis_right_unit = forms.CharField(max_length=15,required=False)
    axis_right_unit.label = 'Unit'
    axis_right_unit.group='AXR'
    axis_right_type = forms.ChoiceField(choices=AXIS_TYPE_ENG,required=False)
    axis_right_type.label = 'Type'
    axis_right_type.group='AXR'


class EditMeasurementGroupFormCro(forms.Form):
    group_name_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    group_name_fixed.label = 'Ime'
    group_name_fixed.group='General'
    group_name = forms.CharField(max_length=45,required=True)
    group_name.label = 'Novo ime'
    group_name.group='General'
    group_info = forms.CharField(max_length=45,required=False,widget=forms.Textarea)
    group_info.label = 'Informacije'
    group_info.group='General'

    axis_left_label = forms.CharField(max_length=45, required=False)
    axis_left_label.label = 'Ime'
    axis_left_label.group='AXL'
    axis_left_unit = forms.CharField(max_length=15, required=False)
    axis_left_unit.label = 'Jedinica'
    axis_left_unit.group='AXL'
    axis_left_type = forms.ChoiceField(choices=AXIS_TYPE_CRO, required=False)
    axis_left_type.label = 'Tip'
    axis_left_type.group='AXL'

    axis_right_label = forms.CharField(max_length=45, required=False)
    axis_right_label.label = 'Ime'
    axis_right_label.group='AXR'
    axis_right_unit = forms.CharField(max_length=15, required=False)
    axis_right_unit.label = 'Jedinica'
    axis_right_unit.group='AXR'
    axis_right_type = forms.ChoiceField(choices=AXIS_TYPE_CRO, required=False)
    axis_right_type.label = 'Tip'
    axis_right_type.group='AXR'


class EditMeasurementGroupFormEng(forms.Form):
    group_name_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    group_name_fixed.label = 'Name'
    group_name = forms.CharField(max_length=45,required=True)
    group_name_fixed.group='General'
    group_name.label = 'New name'
    group_name.group='General'
    group_info = forms.CharField(max_length=45,required=False,widget=forms.Textarea)
    group_info.label = 'Info'
    group_info.group='General'

    axis_left_label = forms.CharField(max_length=45,required=False)
    axis_left_label.label = 'Label'
    axis_left_unit = forms.CharField(max_length=15,required=False)
    axis_left_unit.label = 'Unit'
    axis_left_type = forms.ChoiceField(choices=AXIS_TYPE_ENG,required=False)
    axis_left_type.label = 'Type'

    axis_right_label = forms.CharField(max_length=45,required=False)
    axis_right_label.label = 'Label'
    axis_right_unit = forms.CharField(max_length=15,required=False)
    axis_right_unit.label = 'Unit'
    axis_right_type = forms.ChoiceField(choices=AXIS_TYPE_ENG,required=False)
    axis_right_type.label = 'Type'


class NewMeasurementGroupMeasurementFormCro(forms.Form):
    def __init__(self, device_choices, group_choices, *args, **kwargs):
        super(NewMeasurementGroupMeasurementFormCro, self).__init__(*args, **kwargs)
        self.fields['device_id'].choices = device_choices
        self.fields['group_id'].choices = group_choices

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Grupa'

    device_id = forms.ChoiceField(choices=(),required=True)
    device_id.label = 'Uredaj'

    measurement_type = forms.ChoiceField(choices=MEASUREMENT_TYPE_CRO,required=True)
    measurement_type.label = 'Mjerenje'

    measurement_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_CRO,required=True)
    measurement_axis.label = 'Os grafa'

    measurement_info = forms.CharField(max_length=45,required=False)
    measurement_info.label = 'Info'

class NewMeasurementGroupMeasurementFormEng(forms.Form):
    def __init__(self, device_choices, group_choices, *args, **kwargs):
        super(NewMeasurementGroupMeasurementFormEng, self).__init__(*args, **kwargs)
        self.fields['device_id'].choices = device_choices
        self.fields['group_id'].choices = group_choices

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Group'

    device_id = forms.ChoiceField(choices=(),required=True)
    device_id.label = 'Device'

    measurement_type = forms.ChoiceField(choices=MEASUREMENT_TYPE_ENG,required=True)
    measurement_type.label = 'Measurement'

    measurement_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_ENG,required=True)
    measurement_axis.label = 'Axis'

    measurement_info = forms.CharField(max_length=45,required=False)
    measurement_info.label = 'Info'

class EditMeasurementGroupMeasurementFormCro(forms.Form):
    def __init__(self, device_choices, group_choices, *args, **kwargs):
        super(EditMeasurementGroupMeasurementFormCro, self).__init__(*args, **kwargs)
        self.fields['device_id'].choices = device_choices
        self.fields['group_id'].choices = group_choices

    measurement_group_id_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    measurement_group_id_fixed.label = 'ID Grupe'

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Grupa'

    device_id = forms.ChoiceField(choices=(),required=True)
    device_id.label = 'Uredaj'

    measurement_type = forms.ChoiceField(choices=MEASUREMENT_TYPE_CRO,required=True)
    measurement_type.label = 'Mjerenje'

    measurement_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_CRO,required=True)
    measurement_axis.label = 'Os grafa'

    measurement_info = forms.CharField(max_length=45,required=False)
    measurement_info.label = 'Info'

class EditMeasurementGroupMeasurementFormEng(forms.Form):
    def __init__(self, device_choices, group_choices, *args, **kwargs):
        super(EditMeasurementGroupMeasurementFormEng, self).__init__(*args, **kwargs)
        self.fields['device_id'].choices = device_choices
        self.fields['group_id'].choices = group_choices

    measurement_group_id_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    measurement_group_id_fixed.label = 'Group ID'

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Group'

    device_id = forms.ChoiceField(choices=(),required=True)
    device_id.label = 'Device'

    measurement_type = forms.ChoiceField(choices=MEASUREMENT_TYPE_ENG,required=True)
    measurement_type.label = 'Measurement'

    measurement_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_ENG,required=True)
    measurement_axis.label = 'Os grafa'

    measurement_info = forms.CharField(max_length=45,required=False)
    measurement_info.label = 'Info'


class NewMeasurementGroupCalculationFormCro(forms.Form):
    def __init__(self, group_choices, *args, **kwargs):
        super(NewMeasurementGroupCalculationFormCro, self).__init__(*args, **kwargs)
        self.fields['group_id'].choices = group_choices

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Grupa'

    calculation_name = forms.CharField(max_length=45,required=True)
    calculation_name.label = 'Ime'

    calculation_info = forms.CharField(max_length=45,required=False)
    calculation_info.label = 'Info'

    calculation_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_CRO,required=True)
    calculation_axis.label = 'Os grafa'

    calculation_equation = forms.CharField(max_length=145, required=False)
    calculation_equation.label = 'Jednadba'


class NewMeasurementGroupCalculationFormEng(forms.Form):
    def __init__(self, group_choices, *args, **kwargs):
        super(NewMeasurementGroupCalculationFormEng, self).__init__(*args, **kwargs)
        self.fields['group_id'].choices = group_choices

    group_id = forms.ChoiceField(choices=(), required=True)
    group_id.label = 'Group'

    calculation_name = forms.CharField(max_length=45, required=False)
    calculation_name.label = 'Name'

    calculation_info = forms.CharField(max_length=45, required=False)
    calculation_info.label = 'Info'

    calculation_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_ENG, required=True)
    calculation_axis.label = 'Axis'

    calculation_equation = forms.CharField(max_length=145, required=False)
    calculation_equation.label = 'Equation'

class EditMeasurementGroupCalculationFormCro(forms.Form):
    def __init__(self, group_choices, *args, **kwargs):
        super(EditMeasurementGroupCalculationFormCro, self).__init__(*args, **kwargs)
        self.fields['group_id'].choices = group_choices

    calculation_group_id_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    calculation_group_id_fixed.label = 'ID Grupe'

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Grupa'

    calculation_name = forms.CharField(max_length=45,required=True)
    calculation_name.label = 'Ime'

    calculation_info = forms.CharField(max_length=45,required=False)
    calculation_info.label = 'Info'

    calculation_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_CRO,required=True)
    calculation_axis.label = 'Os grafa'

    calculation_equation = forms.CharField(max_length=145, required=False)
    calculation_equation.label = 'Jednadba'

class EditMeasurementGroupCalculationFormEng(forms.Form):
    def __init__(self, group_choices, *args, **kwargs):
        super(EditMeasurementGroupCalculationFormEng, self).__init__(*args, **kwargs)
        self.fields['group_id'].choices = group_choices

    calculation_group_id_fixed = forms.CharField(
        widget=forms.TextInput(attrs={'readonly': 'readonly'})
    )
    calculation_group_id_fixed.label = 'Group ID'

    group_id = forms.ChoiceField(choices=(),required=True)
    group_id.label = 'Group'

    calculation_name = forms.CharField(max_length=45, required=False)
    calculation_name.label = 'Name'

    calculation_info = forms.CharField(max_length=45, required=False)
    calculation_info.label = 'Info'

    calculation_axis = forms.ChoiceField(choices=MEASUREMENT_AXIS_ENG, required=True)
    calculation_axis.label = 'Axis'

    calculation_equation = forms.CharField(max_length=145, required=False)
    calculation_equation.label = 'Equation'