Files @ dec8a1ea4078
Branch filter:

Location: symposion_app/pinaxcon/proposals/models.py - annotation

Tobias
Add Linux Australia Logo
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
04f246d85071
04f246d85071
9c986111a193
04f246d85071
04f246d85071
04f246d85071
4847f13de047
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
9c986111a193
4847f13de047
9c986111a193
9c986111a193
9c986111a193
9c986111a193
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
8bf549c37f30
39b556b7ac4f
8bf549c37f30
8bf549c37f30
8bf549c37f30
8bf549c37f30
8bf549c37f30
39b556b7ac4f
10b6358b9271
10b6358b9271
10b6358b9271
10b6358b9271
8bf549c37f30
8bf549c37f30
8bf549c37f30
2a882678db5b
2a882678db5b
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
dd30906971fd
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
84da4ca5c814
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
df7836e07e67
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
ff20a96a00a1
df7836e07e67
df7836e07e67
df7836e07e67
df7836e07e67
df7836e07e67
2a882678db5b
2a882678db5b
2a882678db5b
665415779f8e
665415779f8e
665415779f8e
2a882678db5b
2a882678db5b
665415779f8e
665415779f8e
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
9b0d83053895
9b0d83053895
9b0d83053895
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
d49aeefc1761
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
e7b090ca22e1
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
9b0d83053895
9b0d83053895
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 DocsProposal(Proposal):
    TALK_FORMATS = [
        (1, "Presentation (40-45 min)"),
        (2, "Short Presentation (20-30 min)"),
        (3, "Lightning Talk (5-10 min)")
    ]

    TARGET_USER = 1
    TARGET_BUSINESS = 2
    TARGET_COMMUNITY = 3
    TARGET_DEVELOPER = 4
    TARGET_WRITER = 4

    TARGET_AUIDENCES = [
        (TARGET_USER, "User"),
        (TARGET_BUSINESS, "Business"),
        (TARGET_COMMUNITY, "Community"),
        (TARGET_DEVELOPER, "Developer"),
        (TARGET_WRITER, "Writer"),
    ]

    target_audience = models.IntegerField(choices=TARGET_AUIDENCES, default=TARGET_USER)
    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        help_text="Please indicate your preferred talk length in the private abstract field below.")

    class Meta:
        verbose_name = "Docs Down Under Miniconf Proposal"


class SysAdminProposal(Proposal):

    TYPE_SHORT_PRESENTATION = 1
    TYPE_LIGHTNING_TALK = 2

    TALK_FORMATS = [
        (TYPE_SHORT_PRESENTATION, "Short Presentation (15-25 min)"),
        (TYPE_LIGHTNING_TALK, "Lightning Talk (5-10 min)"),
    ]

    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        help_text="Please indicate your preferred talk length in the private abstract field below.")

    class Meta:
        verbose_name = "System Administration Miniconf Proposal"


class KernelProposal(Proposal):
    TALK_FORMATS = [
        (1, "Presentation (40-45 min)"),
        (2, "Short Presentation (20-30 min)"),
    ]

    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        default=1,
        help_text="Please indicate your preferred talk length in the private abstract field below.")

    class Meta:
        verbose_name = "Kernel Miniconf Proposal"


class SecurityProposal(Proposal):
    TALK_FORMATS = [
        (1, "Presentation (40-45 min)"),
        (2, "Short Presentation (20-30 min)"),
        (3, "Lightning Talk (5-10 min)")
    ]

    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        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 GamesProposal(Proposal):

    TYPE_PRESENTATION = 1
    TYPE_SHORT_PRESENTATION = 2
    TYPE_DEMONSTRATION = 3
    TYPE_OTHER = 4

    TALK_FORMATS = [
        (TYPE_PRESENTATION, "Presentation (long)"),
        (TYPE_PRESENTATION, "Presentation (short)"),
        (TYPE_DEMONSTRATION, "Demonstration"),
        (TYPE_OTHER, "Other"),
    ]

    talk_format = models.IntegerField(choices=TALK_FORMATS)

    class Meta:
        verbose_name = "Games and FOSS Miniconf Proposal"


class OpenHardwareProposal(Proposal):

    TYPE_NORMAL_PRESENTATION = 1
    TYPE_LIGHTNING_TALK = 2

    TALK_FORMATS = [
        (TYPE_NORMAL_PRESENTATION, "Presentation (20 min)"),
        (TYPE_LIGHTNING_TALK, "Lightning Talk (5 min)"),
    ]

    talk_format = models.IntegerField(choices=TALK_FORMATS)

    class Meta:
        verbose_name = "Open Hardware Miniconf Proposal"


class OpenEdProposal(Proposal):
    TALK_FORMATS = [
        (1, "Presentation (40-45 min)"),
        (2, "Short Presentation (20-30 min)"),
        (3, "Lightning Talk (5-10 min)")
    ]

    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        help_text="Please indicate your preferred talk length in the private abstract field below.")

    # Can't delete an inherited field
    target_audience = models.IntegerField(blank=True, null=True)

    class Meta:
        verbose_name = "Open Education Miniconf Proposal"


class DevDevProposal(Proposal):

    class Meta:
        verbose_name = "Developers Developers Miniconf Proposal"


class ArtTechProposal(Proposal):

    TYPE_TECH = 1
    TYPE_DEMO = 2
    TYPE_LIGHTNING = 3

    TALK_FORMATS = [
        (TYPE_TECH, "Tech talk (45 min)"),
        (TYPE_DEMO, "Demonstration (20min)"),
        (TYPE_LIGHTNING, "Lightning Talk (10min)"),
    ]

    talk_format = models.IntegerField(
        choices=TALK_FORMATS,
        default=TYPE_TECH,
    )

    EXHIBIT_YES = 1
    EXHIBIT_NO = 2

    EXHIBIT_STATUS = [
        (EXHIBIT_YES, "I am willing and able to exhibit my project on Thursday, January 24th"),
        (EXHIBIT_NO, "I'm unable to exhibit my project")
    ]

    can_exhibit = models.IntegerField(
        choices=EXHIBIT_STATUS,
        default=EXHIBIT_YES,
    )

    exhibition_requirements = models.TextField(
        blank=True,
        default="",
    )

    TARGET_NA = 1

    TARGET_AUDIENCES = [
        (TARGET_NA, "N/A"),
    ]

    target_audience = models.IntegerField(choices=TARGET_AUDIENCES, default=TARGET_NA)

    class Meta:
        verbose_name = "Art+Tech Miniconf Proposal"