(re)create miniconf proposals

This is a partial revert of  6d864e8ce5
- plucking out the bits we want to re-use
This commit is contained in:
James Polley 2017-09-20 22:50:39 +10:00
parent 7c273cdc3d
commit 2a882678db
4 changed files with 204 additions and 0 deletions

View file

@ -7,6 +7,10 @@ from symposion.proposals import models as symposion_models
@admin.register(models.TalkProposal) @admin.register(models.TalkProposal)
@admin.register(models.TutorialProposal) @admin.register(models.TutorialProposal)
@admin.register(models.MiniconfProposal) @admin.register(models.MiniconfProposal)
@admin.register(models.SysAdminProposal)
@admin.register(models.KernelProposal)
@admin.register(models.GamesProposal)
@admin.register(models.OpenHardwareProposal)
class CategoryAdmin(admin.ModelAdmin): class CategoryAdmin(admin.ModelAdmin):
class AdditionalSpeakerInline(admin.TabularInline): class AdditionalSpeakerInline(admin.TabularInline):

View file

@ -2,6 +2,9 @@ from django import forms
from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal
from .models import TalkProposal, TutorialProposal, MiniconfProposal
from .models import SysAdminProposal, KernelProposal, OpenHardwareProposal
from .models import GamesProposal
class ProposalForm(forms.ModelForm): class ProposalForm(forms.ModelForm):
@ -64,3 +67,70 @@ class MiniconfProposalForm(ProposalForm):
"recording_release", "recording_release",
"materials_release", "materials_release",
] ]
class SysAdminProposalForm(ProposalForm):
class Meta:
model = SysAdminProposal
fields = [
"title",
"talk_format",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"recording_release",
"materials_release",
]
class KernelProposalForm(ProposalForm):
class Meta:
model = KernelProposal
fields = [
"title",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"recording_release",
"materials_release",
]
class GamesProposalForm(ProposalForm):
class Meta:
model = GamesProposal
fields = [
"title",
"talk_format",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"recording_release",
"materials_release",
]
class OpenHardwareProposalForm(ProposalForm):
class Meta:
model = OpenHardwareProposal
fields = [
"title",
"talk_format",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"recording_release",
"materials_release",
]

View file

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-09-20 12:58
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('symposion_proposals', '0003_auto_20170702_2250'),
('proposals', '0003_auto_20170702_2227'),
]
operations = [
migrations.CreateModel(
name='GamesProposal',
fields=[
('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')),
('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])),
('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>")),
('talk_format', models.IntegerField(choices=[(1, 'Presentation'), (2, 'Demonstration'), (3, 'Other')])),
],
options={
'verbose_name': 'Games and FOSS Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='KernelProposal',
fields=[
('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')),
('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])),
('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>")),
],
options={
'verbose_name': 'Kernel Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='OpenHardwareProposal',
fields=[
('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')),
('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])),
('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>")),
('talk_format', models.IntegerField(choices=[(1, 'Presentation (20 min)'), (2, 'Lightning Talk (5 min)')])),
],
options={
'verbose_name': 'Open Hardware Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='SysAdminProposal',
fields=[
('proposalbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='symposion_proposals.ProposalBase')),
('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])),
('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>")),
('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15-25 min)'), (2, 'Lightning Talk (5-10 min)')], help_text='Please indicate your preferred talk length in the private abstract field below.')),
],
options={
'verbose_name': 'System Administration Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
]

View file

@ -59,3 +59,61 @@ class MiniconfProposal(Proposal):
class Meta: class Meta:
verbose_name = "miniconf proposal" 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"