Changeset - 57ed5e546b34
[Not reviewed]
0 4 2
Scott Bragg - 8 years ago 2016-09-23 11:23:46
jsbragg@scriptforge.org
CFPs that are ready (#68)

* CFPs that are ready

* Updated choices for sysadmin
6 files changed with 281 insertions and 1 deletions:
0 comments (0 inline, 0 general)
pinaxcon/proposals/admin.py
Show inline comments
...
 
@@ -4,12 +4,18 @@ import models
 
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):
 
        model = symposion_models.AdditionalSpeaker
 

	
 
    inlines = [
pinaxcon/proposals/forms.py
Show inline comments
 
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):
 

	
 
    def clean_description(self):
 
        value = self.cleaned_data["description"]
 
        if len(value) > 400:
...
 
@@ -77,6 +78,120 @@ class MiniconfProposalForm(ProposalForm):
 

	
 
        widgets = {
 
            "abstract" : widgets.AceMarkdownEditor(),
 
            "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(),
 
        }
pinaxcon/proposals/migrations/0002_sysadminproposal_writethedocsproposal.py
Show inline comments
 
new file 100644
 
# -*- 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',),
 
        ),
 
    ]
pinaxcon/proposals/migrations/0003_kernelproposal_openradioproposal_securityproposal_wootconfproposal.py
Show inline comments
 
new file 100644
 
# -*- 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',),
 
        ),
 
    ]
pinaxcon/proposals/models.py
Show inline comments
...
 
@@ -51,6 +51,56 @@ class TutorialProposal(Proposal):
 
        verbose_name = "tutorial proposal"
 

	
 
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"
pinaxcon/settings.py
Show inline comments
...
 
@@ -250,13 +250,20 @@ AUTHENTICATION_BACKENDS = [
 

	
 
CONFERENCE_ID = 1
 
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"
 

	
 
# Wagtail config
 
WAGTAIL_SITE_NAME = 'linux.conf.au 2017'
 
WAGTAIL_APPEND_SLASH = True
0 comments (0 inline, 0 general)