Files @ 123de1a15d6a
Branch filter:

Location: symposion_app/pinaxcon/proposals/forms.py - annotation

Tobias
Further FE improvements for checkout process
9b0d83053895
9b0d83053895
04f246d85071
04f246d85071
8d77023aec4c
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
39b556b7ac4f
04f246d85071
04f246d85071
8fa8fc4012a5
8fa8fc4012a5
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
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
2cdb554623e5
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
4c458fd584d3
10b6358b9271
10b6358b9271
4c458fd584d3
2a882678db5b
9b0d83053895
2a882678db5b
2a882678db5b
2a882678db5b
9b0d83053895
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
9b0d83053895
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
9b0d83053895
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
9b0d83053895
bb42d098fdd7
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
import copy

from django import forms

from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal
from pinaxcon.proposals.models import SysAdminProposal, KernelProposal, OpenHardwareProposal
from pinaxcon.proposals.models import GamesProposal, ClsXLCAProposal, FuncProgProposal
from pinaxcon.proposals.models import OpenEdProposal, OpenGLAMProposal, FPGAProposal, DevDevProposal
from pinaxcon.proposals.models import ArtTechProposal, BioInformaticsProposal

DEFAULT_FIELDS =  [
    "title",
    "target_audience",
    "abstract",
    "private_abstract",
    "technical_requirements",
    "project",
    "project_url",
    "recording_release",
    "materials_release",
]

TALK_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS)
TALK_FORMAT_FIELDS.append("talk_format")

class ProposalForm(forms.ModelForm):

    required_css_class = 'label-required'

    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",
        ]


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",
        ]


class MiniconfProposalForm(ProposalForm):

    class Meta:
        model = MiniconfProposal
        fields = [
            "title",
            "abstract",
            "private_abstract",
            "technical_requirements",
            "recording_release",
            "materials_release",
        ]

class SysadminProposalForm(ProposalForm):

    class Meta:
        model = SysAdminProposal
        fields = TALK_FORMAT_FIELDS

class KernelProposalForm(ProposalForm):

    class Meta:
        model = KernelProposal
        fields = DEFAULT_FIELDS

class GamesProposalForm(ProposalForm):

    class Meta:
        model = GamesProposal
        fields = TALK_FORMAT_FIELDS

class OpenHardwareProposalForm(ProposalForm):

    class Meta:
        model = OpenHardwareProposal
        fields = TALK_FORMAT_FIELDS

class ClsXLCAProposalForm(ProposalForm):

    class Meta:
        model = ClsXLCAProposal
        fields = DEFAULT_FIELDS

class FuncProgProposalForm(ProposalForm):

    class Meta:
        model = FuncProgProposal
        fields = DEFAULT_FIELDS

class OpenEdProposalForm(ProposalForm):

    class Meta:
        model = OpenEdProposal 
        fields = DEFAULT_FIELDS

class OpenGLAMProposalForm(ProposalForm):

    class Meta:
        model = OpenGLAMProposal
        fields = DEFAULT_FIELDS

class FPGAProposalForm(ProposalForm):

    class Meta:
        model = FPGAProposal
        fields = DEFAULT_FIELDS

class DevDevProposalForm(ProposalForm):

    class Meta:
        model = DevDevProposal
        fields = DEFAULT_FIELDS

class ArtTechProposalForm(ProposalForm):

    class Meta:
        ARTTECH_FIELDS = copy.copy(DEFAULT_FIELDS)
        ARTTECH_FIELDS.remove("target_audience")
        ARTTECH_FIELDS.append("talk_format")
        ARTTECH_FIELDS.append("can_exhibit")
        ARTTECH_FIELDS.append("exhibition_requirements")

        model = ArtTechProposal
        fields = ARTTECH_FIELDS

class BioInformaticsProposalForm(ProposalForm):

    class Meta:
        model = BioInformaticsProposal
        fields = DEFAULT_FIELDS