Mercurial > agora-palash
view apps/bundle/forms.py @ 184:b711f0087709
Use DESCRIPTION file for bundles (SCHEMA CHANGE)
* Added two new fields to the Bundle model:
* octave_format, which allows users to specify if their bundle has
been formatted according to octave packaging standards or not
* description_file, which points to a file named DESCRIPTION in
the root directory (or the next top-level directory), if the
octave_format checkbox is ticked and if one exists
* Fixed the uploader field for form by making it a hidden input and
preventing hidden inputs from showing up entirely
author | dellsystem <ilostwaldo@gmail.com> |
---|---|
date | Sat, 27 Oct 2012 15:58:08 -0400 |
parents | cdcbfaa65cfe |
children | ff9c95239c3a |
line wrap: on
line source
from django import forms from apps.bundle.models import Bundle class BundleForm(forms.ModelForm): class Meta: model = Bundle fields = ('uploader', 'name', 'description', 'free_license', 'octave_format') widgets = { # Ideally, the uploader field should just not show up at all # Not really possible if we want to validate the name # This is the next best option (hidden fields just aren't shown) 'uploader': forms.HiddenInput, } file = forms.FileField(help_text=("Upload a plain text file or an \ archive file.")) def clean(self): data = self.cleaned_data name_used = Bundle.objects.filter(uploader=data.get('uploader'), name=data.get('name')).exists() # If a bundle with this user/name combo exists, raise an error if name_used: raise forms.ValidationError("You have already created a bundle" " with this name.") return data class BundleEditForm(forms.ModelForm): """ Like BundleForm, but for editing bundles. A new form is needed because the name field should not be editable after creation, and because the file field shouldn't be required in this case """ class Meta: model = Bundle fields = ('description', 'free_license') file = forms.FileField(help_text=("Upload a plain text file or an \ archive file to update the version."), required=False)