forms.py
28 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
|
r6 | from django import forms | ||
from apps.main.models import Device | ||||
from .models import JARSConfiguration | ||||
class JARSConfigurationForm(forms.ModelForm): | ||||
def __init__(self, *args, **kwargs): | ||||
super(JARSConfigurationForm, self).__init__(*args, **kwargs) | ||||
instance = getattr(self, 'instance', None) | ||||
|
r118 | |||
|
r6 | if instance and instance.pk: | ||
|
r26 | devices = Device.objects.filter(device_type__name='jars') | ||
|
r118 | if instance.experiment: | ||
self.fields['experiment'].widget.attrs['disabled'] = 'disabled' | ||||
|
r26 | self.fields['device'].widget.choices = [(device.id, device) for device in devices] | ||
|
r122 | #-------------JARS Configuration needs an Experiment----------------- | ||
def clean(self): | ||||
cleaned_data = super(JARSConfigurationForm, self).clean() | ||||
experiment = cleaned_data.get("experiment") | ||||
if experiment == None: | ||||
msg = "Jars Configuration needs an Experiment." | ||||
self.add_error('experiment', msg) | ||||
|
r6 | class Meta: | ||
model = JARSConfiguration | ||||
|
r118 | exclude = ('type', 'parameters', 'status') | ||