symposion_app/pinaxcon/proposals/models.py
2020-10-13 23:16:21 +10:00

92 lines
2.6 KiB
Python

from django.db import models
from symposion.proposals.models import ProposalBase
class Proposal(ProposalBase):
TARGET_USER = 1
TARGET_BUSINESS = 2
TARGET_COMMUNITY = 3
TARGET_DEVELOPER = 4
TARGET_AUIDENCES = [
(TARGET_USER, "User"),
(TARGET_BUSINESS, "Business"),
(TARGET_COMMUNITY, "Community"),
(TARGET_DEVELOPER, "Developer"),
]
target_audience = models.IntegerField(choices=TARGET_AUIDENCES)
recording_release = models.BooleanField(
default=True,
help_text="I allow Linux Australia to release any recordings of "
"presentations covered by this proposal, under the <a "
"href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> "
"Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>"
)
materials_release = models.BooleanField(
default=True,
help_text="I allow Linux Australia to release any other material "
"(such as slides) from presentations covered by this proposal, under "
"the <a "
"href='https://creativecommons.org/licenses/by-sa/3.0/au/deed.en'> "
"Creative Commons Attribution-Share Alike Australia 3.0 Licence</a>"
)
class Meta:
abstract = True
class TalkProposal(Proposal):
class Meta:
verbose_name = "talk proposal"
class TutorialProposal(Proposal):
class Meta:
verbose_name = "tutorial proposal"
class MiniconfProposal(Proposal):
target_audience = models.IntegerField(choices=Proposal.TARGET_AUIDENCES,
default=Proposal.TARGET_DEVELOPER)
class Meta:
verbose_name = "miniconf proposal"
class MiniconfSessionProposal(Proposal):
FORMAT_SHORT_PRESENTATION = 1
FORMAT_MEDIUM_PRESENTATION = 2
FORMAT_LONG_PRESENTATION = 3
FORMAT_DEMONSTRATION = 4
FORMAT_OTHER = 5
TALK_FORMATS = [
(FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
(FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
(FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
]
talk_format = models.IntegerField(
choices=TALK_FORMATS,
default=FORMAT_LONG_PRESENTATION,
help_text="Please indicate your preferred talk length in the private abstract field below."
)
ticket_acknowledgement = models.BooleanField(
default=False,
help_text="I understand that I will be required to purchase a conference ticket "
"and arrange my own travel and accommodation, as linux.conf.au miniconfs are unfunded community run events."
)
class Meta:
abstract = True