CFPs that are ready (#68)

* CFPs that are ready

* Updated choices for sysadmin
This commit is contained in:
Scott Bragg 2016-09-23 21:23:46 +10:00 committed by GitHub
parent 5be0c8be19
commit 57ed5e546b
6 changed files with 281 additions and 1 deletions

View file

@ -7,6 +7,12 @@ 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.WriteTheDocsProposal)
@admin.register(models.OpenRadioProposal)
@admin.register(models.SecurityProposal)
@admin.register(models.WootconfProposal)
@admin.register(models.KernelProposal)
class CategoryAdmin(admin.ModelAdmin): class CategoryAdmin(admin.ModelAdmin):
class AdditionalSpeakerInline(admin.TabularInline): class AdditionalSpeakerInline(admin.TabularInline):

View file

@ -3,7 +3,8 @@ from django import forms
from pinaxcon import widgets from pinaxcon import widgets
from .models import TalkProposal, TutorialProposal, MiniconfProposal from .models import TalkProposal, TutorialProposal, MiniconfProposal
from .models import SysAdminProposal, WriteTheDocsProposal, WootconfProposal
from .models import KernelProposal, OpenRadioProposal, SecurityProposal
class ProposalForm(forms.ModelForm): class ProposalForm(forms.ModelForm):
@ -80,3 +81,117 @@ class MiniconfProposalForm(ProposalForm):
"private_abstract" : widgets.AceMarkdownEditor(), "private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(), "technical_requirements" : widgets.AceMarkdownEditor(),
} }
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",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class WriteTheDocsProposalForm(ProposalForm):
class Meta:
model = WriteTheDocsProposal
fields = [
"title",
"talk_format",
"target_audience",
"abstract",
"private_abstract",
"technical_requirements",
"project",
"project_url",
"recording_release",
"materials_release",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class RadioProposalForm(ProposalForm):
class Meta:
model = OpenRadioProposal
fields = [
"title",
"abstract",
"private_abstract",
"technical_requirements",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class KernelProposalForm(ProposalForm):
class Meta:
model = KernelProposal
fields = [
"title",
"abstract",
"private_abstract",
"technical_requirements",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class WootconfProposalForm(ProposalForm):
class Meta:
model = WootconfProposal
fields = [
"title",
"abstract",
"private_abstract",
"technical_requirements",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}
class SecurityProposalForm(ProposalForm):
class Meta:
model = SecurityProposal
fields = [
"title",
"abstract",
"private_abstract",
"technical_requirements",
]
widgets = {
"abstract" : widgets.AceMarkdownEditor(),
"private_abstract" : widgets.AceMarkdownEditor(),
"technical_requirements" : widgets.AceMarkdownEditor(),
}

View file

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-09-21 10:36
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('symposion_proposals', '0001_initial'),
('proposals', '0001_initial'),
]
operations = [
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, b'User'), (2, b'Business'), (3, b'Community'), (4, b'Developer')])),
('recording_release', models.BooleanField(default=True, help_text=b"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=b"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, b'Long Presentation (45 min)'), (2, b'Short Presentation (20 min)'), (3, b'Lightning Talk (5 min)')])),
],
options={
'verbose_name': 'System Administration Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='WriteTheDocsProposal',
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, b'User'), (2, b'Business'), (3, b'Community'), (4, b'Developer')])),
('recording_release', models.BooleanField(default=True, help_text=b"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=b"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, b'Long Presentation (40 min)'), (2, b'Short Presentation (20 min)')])),
],
options={
'verbose_name': 'WriteThe Docs Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
]

View file

@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-09-21 10:44
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('symposion_proposals', '0001_initial'),
('proposals', '0002_sysadminproposal_writethedocsproposal'),
]
operations = [
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')),
],
options={
'verbose_name': 'Kernel Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='OpenRadioProposal',
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')),
],
options={
'verbose_name': 'OpenRadio Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='SecurityProposal',
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')),
],
options={
'verbose_name': 'Security/Privacy Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
migrations.CreateModel(
name='WootconfProposal',
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')),
],
options={
'verbose_name': 'WOOTCONF Miniconf Proposal',
},
bases=('symposion_proposals.proposalbase',),
),
]

View file

@ -54,3 +54,53 @@ class MiniconfProposal(ProposalBase):
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 (20 min)"),
(TYPE_LIGHTNING_TALK, "Lightning Talk (5 min)"),
]
talk_format = models.IntegerField(choices=TALK_FORMATS)
class Meta:
verbose_name = "System Administration Miniconf Proposal"
class WriteTheDocsProposal(Proposal):
TYPE_LONG_PRESENTATION = 1
TYPE_SHORT_PRESENTATION = 2
TALK_FORMATS = [
(TYPE_LONG_PRESENTATION, "Long Presentation (40 min)"),
(TYPE_SHORT_PRESENTATION, "Short Presentation (20 min)"),
]
talk_format = models.IntegerField(choices=TALK_FORMATS)
class Meta:
verbose_name = "WriteThe Docs Miniconf Proposal"
class OpenRadioProposal(ProposalBase):
class Meta:
verbose_name = "OpenRadio Miniconf Proposal"
class WootconfProposal(ProposalBase):
class Meta:
verbose_name = "WOOTCONF Miniconf Proposal"
class KernelProposal(ProposalBase):
class Meta:
verbose_name = "Kernel Miniconf Proposal"
class SecurityProposal(ProposalBase):
class Meta:
verbose_name = "Security/Privacy Miniconf Proposal"

View file

@ -253,7 +253,14 @@ PROPOSAL_FORMS = {
"talk": "pinaxcon.proposals.forms.TalkProposalForm", "talk": "pinaxcon.proposals.forms.TalkProposalForm",
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm", "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
"miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm", "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm",
"sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm",
"radio-miniconf": "pinaxcon.proposals.forms.RadioProposalForm",
"wootconf-miniconf": "pinaxcon.proposals.forms.WootconfProposalForm",
"writethedocs-miniconf": "pinaxcon.proposals.forms.WriteTheDocsProposalForm",
"security-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm",
"kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm",
} }
#PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet" #PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet"
#PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet" #PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet"