gremmie@1
|
1 """
|
gremmie@1
|
2 Forms for the downloads application.
|
gremmie@1
|
3 """
|
gremmie@1
|
4 import os
|
gremmie@1
|
5
|
gremmie@1
|
6 from django import forms
|
bgneal@6
|
7 from django.conf import settings
|
gremmie@1
|
8
|
gremmie@1
|
9 from downloads.models import Download
|
gremmie@1
|
10 from downloads.models import AllowedExtension
|
gremmie@1
|
11
|
gremmie@1
|
12
|
gremmie@1
|
13 class SearchForm(forms.Form):
|
gremmie@1
|
14 """Downloads search form."""
|
gremmie@1
|
15 text = forms.CharField(max_length=30)
|
gremmie@1
|
16
|
gremmie@1
|
17 def query(self):
|
gremmie@1
|
18 return self.cleaned_data['text']
|
gremmie@1
|
19
|
gremmie@1
|
20
|
gremmie@1
|
21 class AddDownloadForm(forms.ModelForm):
|
gremmie@1
|
22 """Form to allow adding downloads."""
|
gremmie@1
|
23
|
gremmie@1
|
24 def clean_file(self):
|
gremmie@1
|
25 file = self.cleaned_data['file']
|
gremmie@1
|
26 ext = os.path.splitext(file.name)[1]
|
gremmie@1
|
27 allowed_exts = AllowedExtension.objects.get_extension_list()
|
gremmie@1
|
28 if ext in allowed_exts:
|
gremmie@1
|
29 return file
|
gremmie@1
|
30 raise forms.ValidationError('The file extension "%s" is not allowed.' % ext)
|
gremmie@1
|
31
|
gremmie@1
|
32 class Meta:
|
gremmie@1
|
33 model = Download
|
gremmie@1
|
34 fields = ('title', 'category', 'description', 'file')
|
gremmie@1
|
35
|
gremmie@1
|
36 class Media:
|
gremmie@1
|
37 css = {
|
bgneal@6
|
38 'all': settings.GPP_THIRD_PARTY_CSS['markitup'],
|
gremmie@1
|
39 }
|
bgneal@12
|
40 js = settings.GPP_THIRD_PARTY_JS['markitup'] + \
|
bgneal@6
|
41 ('js/downloads/add.js', )
|
bgneal@6
|
42
|