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.TutorialProposal)
@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 AdditionalSpeakerInline(admin.TabularInline):

View file

@ -3,7 +3,8 @@ from django import forms
from pinaxcon import widgets
from .models import TalkProposal, TutorialProposal, MiniconfProposal
from .models import SysAdminProposal, WriteTheDocsProposal, WootconfProposal
from .models import KernelProposal, OpenRadioProposal, SecurityProposal
class ProposalForm(forms.ModelForm):
@ -80,3 +81,117 @@ class MiniconfProposalForm(ProposalForm):
"private_abstract" : 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:
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",
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
"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_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet"