##// END OF EJS Templates
Operation mode: Automatic or Manual...
Operation mode: Automatic or Manual git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@215 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r190:a018fc3e43ee
r192:18678523d9f7
Show More
forms.py
73 lines | 2.4 KiB | text/x-python | PythonLexer
from django import forms
from .models import ABSConfiguration, ABSBeam
from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget
from apps.main.models import Configuration
import os
class ABSConfigurationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ABSConfigurationForm, self).__init__(*args, **kwargs)
class Meta:
model = ABSConfiguration
exclude = ('type', 'status', 'parameters', 'active_beam', 'module_status')
class ABSBeamAddForm(forms.Form):
up_data = forms.CharField(widget=UpDataWidget, label='')
down_data = forms.CharField(widget=DownDataWidget, label='')
def __init__(self, *args, **kwargs):
super(ABSBeamAddForm, self).__init__(*args, **kwargs)
class ABSBeamEditForm(forms.Form):
up_data = forms.CharField(widget=EditUpDataWidget, label='')
down_data = forms.CharField(widget=EditDownDataWidget, label='')
def __init__(self, *args, **kwargs):
super(ABSBeamEditForm, self).__init__(*args, **kwargs)
if 'initial' in kwargs:
if 'beam' in self.initial:
self.fields['up_data'].initial = self.initial['beam']
self.fields['down_data'].initial = self.initial['beam']
class ExtFileField(forms.FileField):
"""
Same as forms.FileField, but you can specify a file extension whitelist.
>>> from django.core.files.uploadedfile import SimpleUploadedFile
>>>
>>> t = ExtFileField(ext_whitelist=(".pdf", ".txt"))
>>>
>>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content'))
>>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content'))
>>>
>>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content'))
Traceback (most recent call last):
...
ValidationError: [u'Not allowed filetype!']
"""
def __init__(self, *args, **kwargs):
extensions = kwargs.pop("extensions")
self.extensions = [i.lower() for i in extensions]
super(ExtFileField, self).__init__(*args, **kwargs)
def clean(self, *args, **kwargs):
data = super(ExtFileField, self).clean(*args, **kwargs)
filename = data.name
ext = os.path.splitext(filename)[1]
ext = ext.lower()
if ext not in self.extensions:
raise forms.ValidationError('Not allowed file type: %s' % ext)
class ABSImportForm(forms.Form):
file_name = ExtFileField(extensions=['.json'])