Files
@ 7e4c80fdfc70
Branch filter:
Location: copyleftconf-website-fork/pinaxcon/proposals/models.py - annotation
7e4c80fdfc70
5.1 KiB
text/x-python
Merge remote-tracking branch 'origin/master' into 2018-copy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | 04f246d85071 1de0a5d46ab9 04f246d85071 1de0a5d46ab9 04f246d85071 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 abbe05ee0e6a 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 abbe05ee0e6a 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 abbe05ee0e6a 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 40c42af2d618 1de0a5d46ab9 50bc1497e971 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 1de0a5d46ab9 04f246d85071 04f246d85071 04f246d85071 04f246d85071 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 04f246d85071 04f246d85071 2ad649da3033 2ad649da3033 2ad649da3033 2ad649da3033 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 04f246d85071 | from django.db import models
from django.utils.translation import ugettext_lazy as _
from symposion.markdown_parser import parse
from symposion.proposals.models import ProposalBase
from symposion.speakers.models import SpeakerBase
class ConferenceSpeaker(SpeakerBase):
def clean_twitter_username(self):
value = self.twitter_username
if value.startswith("@"):
value = value[1:]
return value
def save(self, *args, **kwargs):
self.experience_html = parse(self.experience)
self.twitter_username = self.clean_twitter_username()
return super(ConferenceSpeaker, self).save(*args, **kwargs)
twitter_username = models.CharField(
max_length=15,
blank=True,
help_text=_(u"Your Twitter account")
)
first_time = models.BooleanField(
blank=True,
default=False,
verbose_name=_("First-time speaker?"),
help_text=_("Check this field if this is your first time speaking "
"at a technical conference."),
)
experience = models.TextField(blank=True, help_text=_
("List any past speaking experience you have. This can include "
"user groups, meetups, or presentations at work or school. Edit "
"using <a href='http://warpedvisions.org/projects/"
"markdown-cheat-sheet/target='_blank'>"
"Markdown</a>."),
verbose_name=_("Past speaking experience"),
)
experience_html = models.TextField(blank=True)
travel_assistance = models.BooleanField(
blank=True,
default=False,
verbose_name=_("Travel assistance required?"),
help_text=_("Check this field if you require travel assistance to get "
"to North Bay Python in Petaluma, California."),
)
lodging_assistance = models.BooleanField(
blank=True,
default=False,
verbose_name=_("Lodging assistance required?"),
help_text=_("Check this field if you require lodging assistance in "
"Petaluma, California during North Bay Python."),
)
home_city = models.CharField(
blank=True,
max_length=127,
help_text=_("Which city (and state, and country) will you be "
"traveling from to get to North Bay Python?"),
)
minority_group = models.CharField(blank=True, max_length=256,
verbose_name=_("Diversity statement"),
help_text=_("If you are a member of one or more groups that are "
"under-represented in the tech industry, you may list "
"these here. Your response is optional."),
)
reviewer = models.EmailField(
blank=True,
null=True,
verbose_name=_("E-mail of video reviewer"),
help_text=_("Include the e-mail address of someone who can watch a "
"video of your talk, shortly after the video is produced, "
"to ensure quality."),
)
code_of_conduct = models.BooleanField(
default=False,
help_text=_("I have read and, in the event that my proposal is "
"accepted, agree that I will comply with the "
"<a href='/code-of-conduct'>Code of Conduct</a>."),
)
class Proposal(ProposalBase):
extended_presentation = models.BooleanField(
default=False,
verbose_name=_("Optionally consider this proposal for a 45-minute "
"slot"),
help_text=_("Most talks at North Bay Python go for 30 minutes. We "
"have some openings for 45-minute talks. If you check this "
"field, please explain in your additional notes how you "
"would use the extra 15 minutes."),
)
extra_av = models.TextField(
blank=True,
verbose_name=_("Extra tech and A/V requirements"),
help_text=_("We will provide you with a projector with HDMI "
"connection, an audio connection, and one microphone per "
"speaker. If you need anything more than this to present "
"this talk, please list them here."),
)
new_presentation = models.BooleanField(
default=False,
verbose_name=_("This is a new presentation"),
help_text=_("Check this box if North Bay Python will be the first "
"time this talk is presented at a technical conference."),
)
slides_release = models.BooleanField(
default=True,
help_text=_("I authorize North Bay Python to release a copy of my "
"slides and related materials under the Creative Commons "
"Attribution-ShareAlike 3.0 United States licence, and "
"certify that I have the authority to do so."),
)
recording_release = models.BooleanField(
default=True,
help_text=_("I authorize North Bay Python to release a recording of "
"my talk under the Creative Commons "
"Attribution-ShareAlike 3.0 United States licence."),
)
class Meta:
abstract = True
class TalkProposal(Proposal):
class Meta:
verbose_name = "talk proposal"
|