Files
@ 3998fe3369f8
Branch filter:
Location: symposion_app/symposion_project/proposals/forms.py - annotation
3998fe3369f8
2.0 KiB
text/x-python
properly link to and control access to team detail page
80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 80d2c2d73626 | from django import forms
from markitup.widgets import MarkItUpWidget
from symposion_project.proposals.models import ProposalCategory, TalkProposal, TutorialProposal, PosterProposal
class ProposalForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProposalForm, self).__init__(*args, **kwargs)
self.fields["category"] = forms.ModelChoiceField(
queryset = ProposalCategory.objects.order_by("name")
)
def clean_description(self):
value = self.cleaned_data["description"]
if len(value) > 400:
raise forms.ValidationError(
u"The description must be less than 400 characters"
)
return value
class TalkProposalForm(ProposalForm):
class Meta:
model = TalkProposal
fields = [
"title",
"category",
"audience_level",
"description",
"abstract",
"additional_notes",
"recording_release",
]
widgets = {
"abstract": MarkItUpWidget(),
"additional_notes": MarkItUpWidget(),
}
class TutorialProposalForm(ProposalForm):
class Meta:
model = TutorialProposal
fields = [
"title",
"category",
"audience_level",
"description",
"abstract",
"additional_notes",
"recording_release",
]
widgets = {
"abstract": MarkItUpWidget(),
"additional_notes": MarkItUpWidget(),
}
class PosterProposalForm(ProposalForm):
class Meta:
model = PosterProposal
fields = [
"title",
"category",
"audience_level",
"description",
"abstract",
"additional_notes",
"recording_release",
]
widgets = {
"abstract": MarkItUpWidget(),
"additional_notes": MarkItUpWidget(),
}
|