##// END OF EJS Templates
new abs configuration form has been updated...
Fiorella Quino -
r244:b7cb19f9aed4
parent child
Show More
@@ -1,73 +1,73
1 from django import forms
1 from django import forms
2 from .models import ABSConfiguration, ABSBeam
2 from .models import ABSConfiguration, ABSBeam
3 from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget
3 from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget
4 from apps.main.models import Configuration
4 from apps.main.models import Configuration
5 import os
5 import os
6
6
7 class ABSConfigurationForm(forms.ModelForm):
7 class ABSConfigurationForm(forms.ModelForm):
8 def __init__(self, *args, **kwargs):
8 def __init__(self, *args, **kwargs):
9 super(ABSConfigurationForm, self).__init__(*args, **kwargs)
9 super(ABSConfigurationForm, self).__init__(*args, **kwargs)
10
10
11 class Meta:
11 class Meta:
12 model = ABSConfiguration
12 model = ABSConfiguration
13 exclude = ('type', 'status', 'parameters', 'active_beam', 'module_status', 'module_messages')
13 exclude = ('type', 'status', 'parameters', 'active_beam', 'module_status', 'module_messages', 'module_mode')
14
14
15
15
16 class ABSBeamAddForm(forms.Form):
16 class ABSBeamAddForm(forms.Form):
17
17
18 up_data = forms.CharField(widget=UpDataWidget, label='')
18 up_data = forms.CharField(widget=UpDataWidget, label='')
19 down_data = forms.CharField(widget=DownDataWidget, label='')
19 down_data = forms.CharField(widget=DownDataWidget, label='')
20
20
21 def __init__(self, *args, **kwargs):
21 def __init__(self, *args, **kwargs):
22 super(ABSBeamAddForm, self).__init__(*args, **kwargs)
22 super(ABSBeamAddForm, self).__init__(*args, **kwargs)
23
23
24
24
25
25
26 class ABSBeamEditForm(forms.Form):
26 class ABSBeamEditForm(forms.Form):
27
27
28 up_data = forms.CharField(widget=EditUpDataWidget, label='')
28 up_data = forms.CharField(widget=EditUpDataWidget, label='')
29 down_data = forms.CharField(widget=EditDownDataWidget, label='')
29 down_data = forms.CharField(widget=EditDownDataWidget, label='')
30
30
31 def __init__(self, *args, **kwargs):
31 def __init__(self, *args, **kwargs):
32 super(ABSBeamEditForm, self).__init__(*args, **kwargs)
32 super(ABSBeamEditForm, self).__init__(*args, **kwargs)
33
33
34 if 'initial' in kwargs:
34 if 'initial' in kwargs:
35 if 'beam' in self.initial:
35 if 'beam' in self.initial:
36 self.fields['up_data'].initial = self.initial['beam']
36 self.fields['up_data'].initial = self.initial['beam']
37 self.fields['down_data'].initial = self.initial['beam']
37 self.fields['down_data'].initial = self.initial['beam']
38
38
39
39
40 class ExtFileField(forms.FileField):
40 class ExtFileField(forms.FileField):
41 """
41 """
42 Same as forms.FileField, but you can specify a file extension whitelist.
42 Same as forms.FileField, but you can specify a file extension whitelist.
43
43
44 >>> from django.core.files.uploadedfile import SimpleUploadedFile
44 >>> from django.core.files.uploadedfile import SimpleUploadedFile
45 >>>
45 >>>
46 >>> t = ExtFileField(ext_whitelist=(".pdf", ".txt"))
46 >>> t = ExtFileField(ext_whitelist=(".pdf", ".txt"))
47 >>>
47 >>>
48 >>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content'))
48 >>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content'))
49 >>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content'))
49 >>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content'))
50 >>>
50 >>>
51 >>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content'))
51 >>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content'))
52 Traceback (most recent call last):
52 Traceback (most recent call last):
53 ...
53 ...
54 ValidationError: [u'Not allowed filetype!']
54 ValidationError: [u'Not allowed filetype!']
55 """
55 """
56 def __init__(self, *args, **kwargs):
56 def __init__(self, *args, **kwargs):
57 extensions = kwargs.pop("extensions")
57 extensions = kwargs.pop("extensions")
58 self.extensions = [i.lower() for i in extensions]
58 self.extensions = [i.lower() for i in extensions]
59
59
60 super(ExtFileField, self).__init__(*args, **kwargs)
60 super(ExtFileField, self).__init__(*args, **kwargs)
61
61
62 def clean(self, *args, **kwargs):
62 def clean(self, *args, **kwargs):
63 data = super(ExtFileField, self).clean(*args, **kwargs)
63 data = super(ExtFileField, self).clean(*args, **kwargs)
64 filename = data.name
64 filename = data.name
65 ext = os.path.splitext(filename)[1]
65 ext = os.path.splitext(filename)[1]
66 ext = ext.lower()
66 ext = ext.lower()
67 if ext not in self.extensions:
67 if ext not in self.extensions:
68 raise forms.ValidationError('Not allowed file type: %s' % ext)
68 raise forms.ValidationError('Not allowed file type: %s' % ext)
69
69
70
70
71 class ABSImportForm(forms.Form):
71 class ABSImportForm(forms.Form):
72
72
73 file_name = ExtFileField(extensions=['.json'])
73 file_name = ExtFileField(extensions=['.json'])
General Comments 0
You need to be logged in to leave comments. Login now