2015-10-16 17:53:02 +00:00
|
|
|
from django.db import models
|
|
|
|
|
|
|
|
from symposion.proposals.models import ProposalBase
|
|
|
|
|
|
|
|
|
|
|
|
class Proposal(ProposalBase):
|
|
|
|
|
2016-06-20 23:58:27 +00:00
|
|
|
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"),
|
2015-10-16 17:53:02 +00:00
|
|
|
]
|
|
|
|
|
2016-06-20 23:58:27 +00:00
|
|
|
target_audience = models.IntegerField(choices=TARGET_AUIDENCES)
|
2015-10-16 17:53:02 +00:00
|
|
|
|
|
|
|
recording_release = models.BooleanField(
|
|
|
|
default=True,
|
2017-07-02 01:43:23 +00:00
|
|
|
help_text="I allow Linux Australia to release any recordings of "
|
2016-06-20 23:58:27 +00:00
|
|
|
"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,
|
2017-07-02 01:43:23 +00:00
|
|
|
help_text="I allow Linux Australia to release any other material "
|
2016-06-20 23:58:27 +00:00
|
|
|
"(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>"
|
2015-10-16 17:53:02 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
abstract = True
|
|
|
|
|
|
|
|
|
|
|
|
class TalkProposal(Proposal):
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "talk proposal"
|
2016-06-20 23:42:51 +00:00
|
|
|
|
2017-03-05 07:34:15 +00:00
|
|
|
|
2016-06-20 23:42:51 +00:00
|
|
|
class TutorialProposal(Proposal):
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "tutorial proposal"
|
|
|
|
|
2017-03-05 07:34:15 +00:00
|
|
|
|
2017-07-02 12:28:29 +00:00
|
|
|
class MiniconfProposal(Proposal):
|
|
|
|
|
|
|
|
target_audience = models.IntegerField(choices=Proposal.TARGET_AUIDENCES,
|
|
|
|
default=Proposal.TARGET_DEVELOPER)
|
2016-06-20 23:42:51 +00:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "miniconf proposal"
|
2019-09-28 06:03:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
### LCA2020 Miniconfs
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
class ContainersProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Containers Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class CreativeArtsProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (15 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Medium Presentation (30 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Long Presentation (60 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Creative Arts Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class DocsProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Documentation Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class FreeBsdProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (30 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "FreeBSD Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class GamesProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Presentation (short)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (long)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_DEMONSTRATION, "Demonstration"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_OTHER, "Other"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Games and FOSS Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class GlamProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "GO GLAM Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class KernelProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Kernel Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class OpenEducationProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Open Education Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class OpenHardwareProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talks (5 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (25 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Open Hardware Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class OpenIsaProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (20-25 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "OpenISA (RISC-V, OpenPOWER, etc) Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class SecurityProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Overview (15 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Primer (30 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (45 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "Security, Identity and Privacy Miniconf Proposal"
|
|
|
|
|
|
|
|
|
|
|
|
class SysAdminProposal(MiniconfSessionProposal):
|
|
|
|
|
|
|
|
TALK_FORMATS = [
|
|
|
|
(MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (5-10 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Medium Presentation (15-20 min)"),
|
|
|
|
(MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Long Presentation (25-30 min)"),
|
|
|
|
]
|
|
|
|
|
|
|
|
talk_format = models.IntegerField(
|
|
|
|
choices=TALK_FORMATS,
|
|
|
|
default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION,
|
|
|
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = "System Administration Miniconf Proposal"
|