Files @ 5be0c8be19f7
Branch filter:

Location: symposion_app/pinaxcon/proposals/forms.py

Christopher Neugebauer
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
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(),
        }