annotate gpp/downloads/forms.py @ 339:b871892264f2

Adding the sg101 IRC bot code to SVN. This code is pretty rough and needs love, but it gets the job done (one of my first Python apps). This fixes #150.
author Brian Neal <bgneal@gmail.com>
date Sat, 26 Feb 2011 21:27:49 +0000
parents 88b2b9cb8c1f
children
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
bgneal@204 9 from downloads.models import PendingDownload
gremmie@1 10 from downloads.models import AllowedExtension
gremmie@1 11
gremmie@1 12
gremmie@1 13 class AddDownloadForm(forms.ModelForm):
gremmie@1 14 """Form to allow adding downloads."""
bgneal@312 15 title = forms.CharField(required=True,
bgneal@133 16 widget=forms.TextInput(attrs={'size': 64, 'maxlength': 64}))
bgneal@312 17 description = forms.CharField(required=False,
bgneal@133 18 widget=forms.Textarea(attrs={'class': 'markItUp smileyTarget'}))
gremmie@1 19
gremmie@1 20 def clean_file(self):
gremmie@1 21 file = self.cleaned_data['file']
gremmie@1 22 ext = os.path.splitext(file.name)[1]
gremmie@1 23 allowed_exts = AllowedExtension.objects.get_extension_list()
gremmie@1 24 if ext in allowed_exts:
gremmie@1 25 return file
gremmie@1 26 raise forms.ValidationError('The file extension "%s" is not allowed.' % ext)
gremmie@1 27
gremmie@1 28 class Meta:
bgneal@204 29 model = PendingDownload
gremmie@1 30 fields = ('title', 'category', 'description', 'file')
bgneal@312 31
gremmie@1 32 class Media:
gremmie@1 33 css = {
bgneal@133 34 'all': (settings.GPP_THIRD_PARTY_CSS['markitup'] +
bgneal@133 35 settings.GPP_THIRD_PARTY_CSS['jquery-ui'])
gremmie@1 36 }
bgneal@133 37 js = (settings.GPP_THIRD_PARTY_JS['markitup'] +
bgneal@133 38 settings.GPP_THIRD_PARTY_JS['jquery-ui'])