annotate gpp/downloads/forms.py @ 318:c550933ff5b6

Fix a bug where you'd get an error when trying to delete a forum thread (topic does not exist). Apparently when you call topic.delete() the posts would get deleted, but the signal handler for each one would run, and it would try to update the topic's post count or something, but the topic was gone? Reworked the code a bit and explicitly delete the posts first. I also added a sync() call on the parent forum since post counts were not getting adjusted.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 Feb 2011 21:46:52 +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'])