annotate gpp/downloads/forms.py @ 109:07be3e39e639

Forums: implemented topic level moderator controls.
author Brian Neal <bgneal@gmail.com>
date Sat, 26 Sep 2009 18:03:57 +0000
parents f408971657b9
children c515b7401078
rev   line source
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