Remove LCA2019 miniconf proposal types
Remove models and forms for miniconf specific proposals.
This commit is contained in:
parent
98d58b5548
commit
4c51e5ea31
4 changed files with 88 additions and 289 deletions
|
@ -20,12 +20,13 @@ 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,
|
||||
list_display = [
|
||||
"id",
|
||||
|
|
|
@ -4,9 +4,6 @@ from django import forms
|
|||
|
||||
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
|
||||
|
||||
|
||||
DEFAULT_FIELDS = [
|
||||
|
@ -37,13 +34,6 @@ class ProposalForm(forms.ModelForm):
|
|||
return value
|
||||
|
||||
|
||||
class DocsProposalForm(ProposalForm):
|
||||
|
||||
class Meta:
|
||||
model = DocsProposal
|
||||
fields = TALK_FORMAT_FIELDS
|
||||
|
||||
|
||||
class TalkProposalForm(ProposalForm):
|
||||
|
||||
class Meta:
|
||||
|
@ -92,91 +82,3 @@ class MiniconfProposalForm(ProposalForm):
|
|||
"recording_release",
|
||||
"materials_release",
|
||||
]
|
||||
|
||||
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
|
||||
|
|
81
pinaxcon/proposals/migrations/0016_auto_20190624_2328.py
Normal file
81
pinaxcon/proposals/migrations/0016_auto_20190624_2328.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
# -*- 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',
|
||||
),
|
||||
]
|
|
@ -59,188 +59,3 @@ class MiniconfProposal(Proposal):
|
|||
|
||||
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"
|
||||
|
|
Loading…
Reference in a new issue