Changeset - 4c51e5ea31e8
[Not reviewed]
0 3 1
Joel Addison - 5 years ago 2019-06-24 11:52:57
joel@addison.net.au
Remove LCA2019 miniconf proposal types

Remove models and forms for miniconf specific proposals.
4 files changed with 88 insertions and 289 deletions:
0 comments (0 inline, 0 general)
pinaxcon/proposals/admin.py
Show inline comments
...
 
@@ -22,8 +22,9 @@ class CategoryAdmin(admin.ModelAdmin):
 

	
 
for model in [ models.TalkProposal, models.TutorialProposal,
 
               models.MiniconfProposal, models.SysAdminProposal,
 
               models.KernelProposal, models.GamesProposal,
 
               models.OpenHardwareProposal, models.OpenEdProposal,
 
               models.DevDevProposal, models.ArtTechProposal,
 
               models.DocsProposal, models.SecurityProposal ]:
 
models_to_register = [
 
    models.TalkProposal,
 
    models.TutorialProposal,
 
    models.MiniconfProposal,
 
]
 

	
 
for model in models_to_register:
 
    admin.site.register(model, CategoryAdmin,
pinaxcon/proposals/forms.py
Show inline comments
...
 
@@ -6,5 +6,2 @@ from pinaxcon.proposals.fields import HelpTextField
 
from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal
 
from pinaxcon.proposals.models import SysAdminProposal, KernelProposal, OpenHardwareProposal
 
from pinaxcon.proposals.models import GamesProposal, DevDevProposal, ArtTechProposal
 
from pinaxcon.proposals.models import OpenEdProposal, DocsProposal, SecurityProposal
 

	
...
 
@@ -39,9 +36,2 @@ class ProposalForm(forms.ModelForm):
 

	
 
class DocsProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        model = DocsProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class TalkProposalForm(ProposalForm):
...
 
@@ -94,89 +84 @@ class MiniconfProposalForm(ProposalForm):
 
        ]
 

	
 
class SysadminProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        model = SysAdminProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class SecurityProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        model = SecurityProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class KernelProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        model = KernelProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class GamesProposalForm(ProposalForm):
 

	
 
    HELP_TEXT = ("If you have <strong>any</strong> questions please check our "
 
        "<a href=\"https://gamesandfoss-lcaminiconf.github.io/lca2019/\" ref="
 
        "\"noreferrer noopener\" target=\"_blank\">website</a> or contact "
 
        "the games miniconf organisers. We're excited to hear from you! You "
 
        "can reach us via email <a href=\"mailto:games@lca.lonely.coffee\">"
 
        "games@lca.lonely.coffee</a> or twitter DM <a href=\"https://twitter"
 
        ".com/ducky_tape\" ref=\"noreferrer noopener\" target=\"_blank\">"
 
        "@ducky_tape</a> and <a href=\"https://twitter.com/the_mcjones\" "
 
        "ref=\"noreferrer noopener\" target=\"_blank\">@the_mcjones</a>.")
 

	
 
    help_field = HelpTextField(text=HELP_TEXT, label='')
 

	
 
    def __init__(self, *args, **kwargs):
 
        super().__init__(*args, **kwargs)
 
        self.fields['private_abstract'].help_text = ("it would be helpful if "
 
            "you could please include a <strong>rough</strong> (don't worry, "
 
            "we know it might change!) Outline of your presentation, e.g. "
 
            "'0-2mins intro, 2-5mins the problem, 5-10mins things, 10-15mins "
 
            "stuff 15-20mins solution'.")
 

	
 
    class Meta:
 
        model = GamesProposal
 
        fields = ['help_field', ] + TALK_FORMAT_FIELDS
 

	
 

	
 
class OpenHardwareProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        model = OpenHardwareProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class OpenEdProposalForm(ProposalForm):
 
    class Meta:
 
        NO_TARGET_AUDIENCE_FIELDS = copy.copy(TALK_FORMAT_FIELDS)
 
        del(NO_TARGET_AUDIENCE_FIELDS[1])
 

	
 
        model = OpenEdProposal
 
        fields = NO_TARGET_AUDIENCE_FIELDS
 

	
 

	
 
class DevDevProposalForm(ProposalForm):
 

	
 
    HELP_TEXT = ("The Developer Developer Miniconf is taking <strong> "
 
        "20-minute</strong> talks only.")
 

	
 
    help_field = HelpTextField(text=HELP_TEXT, label='')
 

	
 
    class Meta:
 
        model = DevDevProposal
 
        fields = ['help_field', ] + DEFAULT_FIELDS
 

	
 

	
 
class ArtTechProposalForm(ProposalForm):
 

	
 
    class Meta:
 
        ARTTECH_FIELDS = copy.copy(DEFAULT_FIELDS)
 
        ARTTECH_FIELDS.remove("target_audience")
 
        ARTTECH_FIELDS.append("talk_format")
 
        ARTTECH_FIELDS.append("can_exhibit")
 
        ARTTECH_FIELDS.append("exhibition_requirements")
 

	
 
        model = ArtTechProposal
 
        fields = ARTTECH_FIELDS
pinaxcon/proposals/migrations/0016_auto_20190624_2328.py
Show inline comments
 
new file 100644
 
# -*- coding: utf-8 -*-
 
# Generated by Django 1.11.21 on 2019-06-24 11:28
 
from __future__ import unicode_literals
 

	
 
from django.db import migrations
 

	
 

	
 
class Migration(migrations.Migration):
 

	
 
    dependencies = [
 
        ('symposion_schedule', '0008_auto_20190122_0815'),
 
        ('symposion_proposals', '0003_auto_20170702_2250'),
 
        ('symposion_reviews', '0001_initial'),
 
        ('proposals', '0015_securityproposal_talk_format'),
 
    ]
 

	
 
    operations = [
 
        migrations.RemoveField(
 
            model_name='arttechproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='devdevproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='docsproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='gamesproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='kernelproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='openedproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='openhardwareproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='securityproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.RemoveField(
 
            model_name='sysadminproposal',
 
            name='proposalbase_ptr',
 
        ),
 
        migrations.DeleteModel(
 
            name='ArtTechProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='DevDevProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='DocsProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='GamesProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='KernelProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='OpenEdProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='OpenHardwareProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='SecurityProposal',
 
        ),
 
        migrations.DeleteModel(
 
            name='SysAdminProposal',
 
        ),
 
    ]
pinaxcon/proposals/models.py
Show inline comments
...
 
@@ -61,186 +61 @@ class MiniconfProposal(Proposal):
 
        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"
0 comments (0 inline, 0 general)