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 " "Creative Commons Attribution-Share Alike Australia 3.0 Licence" ) 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 " "Creative Commons Attribution-Share Alike Australia 3.0 Licence" ) class Meta: abstract = True class TalkProposal(Proposal): class Meta: verbose_name = "talk proposal" class TutorialProposal(Proposal): class Meta: verbose_name = "tutorial proposal" class MiniconfProposal(ProposalBase): class Meta: verbose_name = "miniconf proposal" class SysAdminProposal(Proposal): TYPE_SHORT_PRESENTATION = 1 TYPE_LIGHTNING_TALK = 2 TALK_FORMATS = [ (TYPE_SHORT_PRESENTATION, "Short Presentation (20 min)"), (TYPE_LIGHTNING_TALK, "Lightning Talk (5 min)"), ] talk_format = models.IntegerField(choices=TALK_FORMATS) class Meta: verbose_name = "System Administration Miniconf Proposal" class WriteTheDocsProposal(Proposal): TYPE_LONG_PRESENTATION = 1 TYPE_SHORT_PRESENTATION = 2 TALK_FORMATS = [ (TYPE_LONG_PRESENTATION, "Long Presentation (40 min)"), (TYPE_SHORT_PRESENTATION, "Short Presentation (20 min)"), ] talk_format = models.IntegerField(choices=TALK_FORMATS) class Meta: verbose_name = "WriteThe Docs Miniconf Proposal" class OpenRadioProposal(ProposalBase): class Meta: verbose_name = "OpenRadio Miniconf Proposal" class WootconfProposal(ProposalBase): class Meta: verbose_name = "WOOTCONF Miniconf Proposal" class KernelProposal(ProposalBase): class Meta: verbose_name = "Kernel Miniconf Proposal" class SecurityProposal(ProposalBase): class Meta: verbose_name = "Security/Privacy Miniconf Proposal"