Files
@ 5be0c8be19f7
Branch filter:
Location: symposion_app/pinaxcon/proposals/forms.py - annotation
5be0c8be19f7
2.1 KiB
text/x-python
Lets us define homepage panels as “compact” (#67)
* Lets us define homepage panels as “compact”
* right-floating-image now only does things in wide screens
* Lets us define homepage panels as “compact”
* right-floating-image now only does things in wide screens
04f246d85071 04f246d85071 2cdb554623e5 2cdb554623e5 4c458fd584d3 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 9c986111a193 04f246d85071 9c986111a193 9c986111a193 9c986111a193 9c986111a193 9c986111a193 04f246d85071 9c986111a193 04f246d85071 4c458fd584d3 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 4c458fd584d3 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 2cdb554623e5 | from django import forms
from pinaxcon import widgets
from .models import TalkProposal, TutorialProposal, MiniconfProposal
class ProposalForm(forms.ModelForm):
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",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"video_url",
"recording_release",
"materials_release",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class TutorialProposalForm(ProposalForm):
class Meta:
model = TutorialProposal
fields = [
"title",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"video_url",
"recording_release",
"materials_release",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class MiniconfProposalForm(ProposalForm):
class Meta:
model = MiniconfProposal
fields = [
"title",
"abstract",
"private_abstract",
"technical_requirements",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
|