Files
@ 6531b0e781d4
Branch filter:
Location: CopyleftConf/copyleftconf-website/pinaxcon/proposals/forms.py - annotation
6531b0e781d4
2.8 KiB
text/x-python
proposals.forms: Link to one consistent Markdown cheat sheet.
I like this one best because it's most brief, visual, and clearly under a
free license (CC BY-SA 4.0).
I like this one best because it's most brief, visual, and clearly under a
free license (CC BY-SA 4.0).
04f246d85071 2ad649da3033 04f246d85071 1de0a5d46ab9 1de0a5d46ab9 6531b0e781d4 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 0107b24b37d6 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 1de0a5d46ab9 04f246d85071 04f246d85071 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 6531b0e781d4 b39136615cff 319466454c9d 319466454c9d 319466454c9d 319466454c9d 319466454c9d 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 2ad649da3033 2ad649da3033 04f246d85071 2ad649da3033 2ad649da3033 04f246d85071 04f246d85071 | 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",
]
|