Mercurial > public > sg101
annotate gpp/downloads/forms.py @ 6:b6263ac72052
Use DRY principle to manage third party javascript libraries. Created script_tags template tags to generate the correct link and script tags for 3rd party libraries. The settings.py file is the only place where the full path name is specified.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 11 Apr 2009 22:50:56 +0000 |
parents | dbd703f7d63a |
children | f408971657b9 |
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@6 | 40 js = settings.GPP_THIRD_PARTY_JS['jquery'] + \ |
bgneal@6 | 41 settings.GPP_THIRD_PARTY_JS['markitup'] + \ |
bgneal@6 | 42 ('js/downloads/add.js', ) |
bgneal@6 | 43 |