Files @ 0b0b679d1855
Branch filter:

Location: CopyleftConf/copyleftconf-website/pinaxcon/proposals/forms.py

Brett Smith
Remove unwanted dependencies.

This doesn't remove all trace of them but it's enough to avoid installing
them and still be able to see the front page.
from django import forms
from symposion.proposals.forms import ProposalMixIn

from .models import ConferenceSpeaker, TalkProposal

_MARKDOWN_CHEATSHEET_URL = 'https://www.markdownguide.org/cheat-sheet'

class ConferenceSpeakerForm(forms.ModelForm):

    class Meta:
        model = ConferenceSpeaker
        exclude = [
            'user',
            'biography_html',
            'experience_html',
            'invite_email',
            'invite_token',
            'annotation',
            'reviewer',
        ]

    def __init__(self, *a, **k):
        super(ConferenceSpeakerForm, self).__init__(*a, **k)
        self.fields['code_of_conduct'].required = True
        for field in ('biography', 'experience'):
            self.fields[field].help_text = self.fields[field].help_text.replace(
                'http://warpedvisions.org/projects/markdown-cheat-sheet/',
                _MARKDOWN_CHEATSHEET_URL,
            ).replace(
                # Fix a typo in Symposion model help text:
                # <https://github.com/pinax/symposion/blob/8cb001b16946e2d98e8e45b59c2b506e51b52937/symposion/speakers/models.py#L28-L29>
                "{}target=".format(_MARKDOWN_CHEATSHEET_URL),
                "{}' target=".format(_MARKDOWN_CHEATSHEET_URL),
            )



class ProposalForm(forms.ModelForm, ProposalMixIn):

    def __init__(self, *a, **k):
        super(ProposalForm, self).__init__(*a, **k)
        self.description_required()
        self.abstract_required()
        self.fields["additional_notes"].help_text = """
Anything else you'd like the program committee to know when making their
selection. This is not made public. Edit using
<a href='{}' target='_blank'>Markdown</a>.""".format(_MARKDOWN_CHEATSHEET_URL)
        self.fields["abstract"].help_text = """
Detailed abstract. Will be made public if your proposal is accepted.
Edit using
<a href='{}' target='_blank'>Markdown</a>.""".format(_MARKDOWN_CHEATSHEET_URL)

        for field in ("description", "abstract", "additional_notes"):
            self.fields[field].help_text += (" Please do not include "
                "any information that could identify you, as your proposal "
                "will be reviewed anonymously.")


    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",
            "description",
            "abstract",
            "new_presentation",
            "extended_presentation",
            "additional_notes",
            "extra_av",
            "slides_release",
            "recording_release",
        ]