Files @ 6fb680931627
Branch filter:

Location: symposion_app/pinaxcon/proposals/models.py

Joel Addison
Improve registration report formatting

Show title in list instead of method name.
Add page title and head title to reports.
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"


### 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"