CFPs that are ready (#68)
* CFPs that are ready * Updated choices for sysadmin
This commit is contained in:
parent
5be0c8be19
commit
57ed5e546b
6 changed files with 281 additions and 1 deletions
|
@ -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):
|
||||
|
|
|
@ -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(),
|
||||
}
|
||||
|
|
|
@ -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',),
|
||||
),
|
||||
]
|
|
@ -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',),
|
||||
),
|
||||
]
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in a new issue