gremmie@1: """ gremmie@1: Forms for the downloads application. gremmie@1: """ gremmie@1: import os gremmie@1: gremmie@1: from django import forms gremmie@1: gremmie@1: from downloads.models import Download gremmie@1: from downloads.models import AllowedExtension gremmie@1: gremmie@1: gremmie@1: class SearchForm(forms.Form): gremmie@1: """Downloads search form.""" gremmie@1: text = forms.CharField(max_length=30) gremmie@1: gremmie@1: def query(self): gremmie@1: return self.cleaned_data['text'] gremmie@1: gremmie@1: gremmie@1: class AddDownloadForm(forms.ModelForm): gremmie@1: """Form to allow adding downloads.""" gremmie@1: gremmie@1: def clean_file(self): gremmie@1: file = self.cleaned_data['file'] gremmie@1: ext = os.path.splitext(file.name)[1] gremmie@1: allowed_exts = AllowedExtension.objects.get_extension_list() gremmie@1: if ext in allowed_exts: gremmie@1: return file gremmie@1: raise forms.ValidationError('The file extension "%s" is not allowed.' % ext) gremmie@1: gremmie@1: class Meta: gremmie@1: model = Download gremmie@1: fields = ('title', 'category', 'description', 'file') gremmie@1: gremmie@1: class Media: gremmie@1: css = { gremmie@1: 'all': ('js/markitup/skins/markitup/style.css', gremmie@1: 'js/markitup/sets/markdown/style.css') gremmie@1: } gremmie@1: js = ( gremmie@1: 'js/jquery-1.2.6.min.js', gremmie@1: 'js/downloads/add.js', gremmie@1: 'js/markitup/jquery.markitup.pack.js', gremmie@1: 'js/markitup/sets/markdown/set.js', gremmie@1: )