forms.py
50 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
|
r12 | from django import forms | ||
|
r13 | from apps.main.models import Device | ||
|
r12 | from .models import DDSConfiguration | ||
|
r26 | # from django.core.validators import MinValueValidator, MaxValueValidator | ||
|
r12 | |||
class DDSConfigurationForm(forms.ModelForm): | ||||
|
r26 | # frequency_bin = forms.IntegerField(label='Frequency (Binary)', required=False) | ||
# phase_bin = forms.IntegerField(label='Phase (Binary)', required=False) | ||||
|
r12 | |||
|
r26 | # frequency_mod_bin = forms.IntegerField(label='Frequency Mod (Binary)', required=False) | ||
# phase_mod_bin = forms.IntegerField(label='Phase Mod (Binary)', required=False) | ||||
field_order = ['experiment', 'device', | ||||
'clock', 'multiplier', | ||||
'frequency', | ||||
'frequency_bin', | ||||
'phase', | ||||
'phase_bin', | ||||
'amplitude_chA', 'amplitude_chB', | ||||
'modulation', | ||||
'frequency_mod', | ||||
'frequency_mod_bin', | ||||
'phase_mod', | ||||
'phase_mod_bin'] | ||||
|
r12 | |||
def __init__(self, *args, **kwargs): | ||||
#request = kwargs.pop('request') | ||||
super(DDSConfigurationForm, self).__init__(*args, **kwargs) | ||||
|
r13 | |||
instance = getattr(self, 'instance', None) | ||||
if instance and instance.pk: | ||||
devices = Device.objects.filter(device_type__name='dds') | ||||
self.fields['experiment'].widget.attrs['readonly'] = True | ||||
|
r26 | self.fields['experiment'].widget.choices = [(instance.experiment.id, instance.experiment)] | ||
self.fields['device'].widget.choices = [(device.id, device) for device in devices] | ||||
|
r13 | |||
|
r12 | def clean(self): | ||
# Custom validation to force an integer when type of unit = "Unit" | ||||
return | ||||
class Meta: | ||||
model = DDSConfiguration | ||||
|
r26 | exclude = ('type','parameters') | ||