view gpp/downloads/forms.py @ 101:4bbb6a9aa317

Forums: use select_related() with get_object_or_404() to reduce queries.
author Brian Neal <bgneal@gmail.com>
date Wed, 16 Sep 2009 00:39:27 +0000
parents f408971657b9
children c515b7401078
line wrap: on
line source
"""
Forms for the downloads application.
"""
import os

from django import forms
from django.conf import settings

from downloads.models import Download
from downloads.models import AllowedExtension


class SearchForm(forms.Form):
    """Downloads search form."""
    text = forms.CharField(max_length=30)

    def query(self):
        return self.cleaned_data['text']


class AddDownloadForm(forms.ModelForm):
    """Form to allow adding downloads."""

    def clean_file(self):
        file = self.cleaned_data['file']
        ext = os.path.splitext(file.name)[1]
        allowed_exts = AllowedExtension.objects.get_extension_list()
        if ext in allowed_exts:
            return file
        raise forms.ValidationError('The file extension "%s" is not allowed.' % ext)

    class Meta:
        model = Download
        fields = ('title', 'category', 'description', 'file')
        
    class Media:
        css = {
            'all': settings.GPP_THIRD_PARTY_CSS['markitup'],
        }
        js = settings.GPP_THIRD_PARTY_JS['markitup'] + \
            ('js/downloads/add.js', )