@@ -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