Files @ 608c48980c9f
Branch filter:

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

Tobias
Fix registrasion fixture
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
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
2a882678db5b
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
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
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
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
bb42d098fdd7
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
2af7eaea7f41
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
9b0d83053895
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 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):

    class Meta:
        verbose_name = "Kernel Miniconf Proposal"


class GamesProposal(Proposal):

    TYPE_PRESENTATION = 1
    TYPE_DEMONSTRATION = 2
    TYPE_OTHER = 3

    TALK_FORMATS = [
        (TYPE_PRESENTATION, "Presentation"),
        (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 ClsXLCAProposal(Proposal):

    class Meta:
        verbose_name = "CLSxLCA Miniconf Proposal"


class FuncProgProposal(Proposal):

    class Meta:
        verbose_name = "Real World Functional Programming Miniconf Proposal"


class OpenEdProposal(Proposal):

    class Meta:
        verbose_name = "Open Education Miniconf Proposal"


class OpenGLAMProposal(Proposal):

    class Meta:
        verbose_name = "OpenGLAM Miniconf Proposal"


class FPGAProposal(Proposal):

    class Meta:
        verbose_name = "FPGA 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 Monday, January 22nd"),
        (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)

    # def __init__(self, *args, **kwargs):
    #     super(ArtTechProposal, self).__init__(*args, **kwargs)
    #     self.target_audience = 3

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


class BioInformaticsProposal(Proposal):

    class Meta:
        verbose_name = "Open Source and BioInformatics Miniconf"