Prototype talk proposal forms for "Copyleft and Compliance" and "SFC Member Project" streams
This commit is contained in:
parent
0c3e579b8d
commit
4cf869c9fa
4 changed files with 122 additions and 0 deletions
|
@ -23,6 +23,10 @@ DEFAULT_FIELDS = [
|
||||||
"materials_release",
|
"materials_release",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
TALK_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS)
|
||||||
|
TALK_FORMAT_FIELDS.insert(2, "talk_format")
|
||||||
|
TALK_FORMAT_FIELDS.append("ticket_acknowledgement")
|
||||||
|
|
||||||
class ProposalForm(forms.ModelForm):
|
class ProposalForm(forms.ModelForm):
|
||||||
|
|
||||||
required_css_class = 'label-required'
|
required_css_class = 'label-required'
|
||||||
|
@ -48,3 +52,24 @@ class TutorialProposalForm(ProposalForm):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.TutorialProposal
|
model = models.TutorialProposal
|
||||||
fields = copy.copy(DEFAULT_FIELDS)
|
fields = copy.copy(DEFAULT_FIELDS)
|
||||||
|
|
||||||
|
|
||||||
|
class MiniconfProposalForm(ProposalForm):
|
||||||
|
|
||||||
|
def __init__(self, *a, **k):
|
||||||
|
super(MiniconfProposalForm, self).__init__(*a, **k)
|
||||||
|
self.fields['ticket_acknowledgement'].required = True
|
||||||
|
|
||||||
|
|
||||||
|
class CopyleftComplianceProposalForm(MiniconfProposalForm):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = models.CopyleftComplianceProposal
|
||||||
|
fields = TALK_FORMAT_FIELDS
|
||||||
|
|
||||||
|
|
||||||
|
class MemberProjectProposalForm(MiniconfProposalForm):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = models.MemberProjectProposal
|
||||||
|
fields = TALK_FORMAT_FIELDS
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
# Generated by Django 2.2.28 on 2023-04-15 04:51
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('symposion_proposals', '0003_auto_20170702_2250'),
|
||||||
|
('proposals', '0004_auto_20221208_0102'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CopyleftComplianceProposal',
|
||||||
|
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=[(4, 'Developer'), (3, 'Community'), (1, 'End User'), (2, 'Business')], help_text='Who is the target audience for your session?')),
|
||||||
|
('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, on YouTube under the standard YouTube licence, and on other platforms under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/'> CC BY-NC-SA 4.0</a>) licence.")),
|
||||||
|
('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>")),
|
||||||
|
('primary_topic', models.IntegerField(choices=[(1, 'Linux'), (2, 'Software'), (3, 'Hardware'), (4, 'Firmware'), (5, 'System Administration / Operations'), (6, 'Security'), (7, 'Documentation'), (8, 'Community'), (9, 'Science & Data'), (10, 'Galleries, Libraries, Archives & Museums (GLAM)'), (11, 'Multimedia'), (12, 'Aerospace / UAV'), (13, 'Agriculture'), (14, 'Other')], help_text='What is the primary topic area for your session?')),
|
||||||
|
('experience_level', models.IntegerField(choices=[(1, 'Beginner'), (2, 'Intermediate'), (3, 'Advanced')], help_text='What level of experience will your session be pitched at?')),
|
||||||
|
('require_approval', models.BooleanField(default=False, help_text='Do you require further approval from your employer or institution before you can confirm your availability to present?')),
|
||||||
|
('content_warning', models.TextField(blank=True, help_text='This will be shown on the schedule to give attendees advanced warning of topics covered in the session. ', verbose_name='Content Warning')),
|
||||||
|
('content_warning_html', models.TextField(blank=True)),
|
||||||
|
('talk_format', models.IntegerField(choices=[(1, 'Lightning Talk (5-10 min)'), (2, 'Short Presentation (20-25 min)'), (3, 'Presentation (40-45 min)')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||||
|
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket and arrange my own travel and accommodation, as linux.conf.au miniconfs are unfunded community run events.')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Copyleft and Compliance talk proposal',
|
||||||
|
},
|
||||||
|
bases=('symposion_proposals.proposalbase',),
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='MemberProjectProposal',
|
||||||
|
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=[(4, 'Developer'), (3, 'Community'), (1, 'End User'), (2, 'Business')], help_text='Who is the target audience for your session?')),
|
||||||
|
('recording_release', models.BooleanField(default=True, help_text="I allow Linux Australia to release any recordings of presentations covered by this proposal, on YouTube under the standard YouTube licence, and on other platforms under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/'> CC BY-NC-SA 4.0</a>) licence.")),
|
||||||
|
('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>")),
|
||||||
|
('primary_topic', models.IntegerField(choices=[(1, 'Linux'), (2, 'Software'), (3, 'Hardware'), (4, 'Firmware'), (5, 'System Administration / Operations'), (6, 'Security'), (7, 'Documentation'), (8, 'Community'), (9, 'Science & Data'), (10, 'Galleries, Libraries, Archives & Museums (GLAM)'), (11, 'Multimedia'), (12, 'Aerospace / UAV'), (13, 'Agriculture'), (14, 'Other')], help_text='What is the primary topic area for your session?')),
|
||||||
|
('experience_level', models.IntegerField(choices=[(1, 'Beginner'), (2, 'Intermediate'), (3, 'Advanced')], help_text='What level of experience will your session be pitched at?')),
|
||||||
|
('require_approval', models.BooleanField(default=False, help_text='Do you require further approval from your employer or institution before you can confirm your availability to present?')),
|
||||||
|
('content_warning', models.TextField(blank=True, help_text='This will be shown on the schedule to give attendees advanced warning of topics covered in the session. ', verbose_name='Content Warning')),
|
||||||
|
('content_warning_html', models.TextField(blank=True)),
|
||||||
|
('talk_format', models.IntegerField(choices=[(1, 'Lightning Talk (5-10 min)'), (2, 'Short Presentation (20-25 min)'), (3, 'Presentation (40-45 min)')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')),
|
||||||
|
('ticket_acknowledgement', models.BooleanField(default=False, help_text='I understand that I will be required to purchase a conference ticket and arrange my own travel and accommodation, as linux.conf.au miniconfs are unfunded community run events.')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'SFC Member Project talk proposal',
|
||||||
|
},
|
||||||
|
bases=('symposion_proposals.proposalbase',),
|
||||||
|
),
|
||||||
|
]
|
|
@ -127,3 +127,43 @@ class TutorialProposal(Proposal):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "tutorial proposal"
|
verbose_name = "tutorial proposal"
|
||||||
|
|
||||||
|
|
||||||
|
class MiniconfSessionProposal(Proposal):
|
||||||
|
|
||||||
|
FORMAT_SHORT_PRESENTATION = 1
|
||||||
|
FORMAT_MEDIUM_PRESENTATION = 2
|
||||||
|
FORMAT_LONG_PRESENTATION = 3
|
||||||
|
FORMAT_DEMONSTRATION = 4
|
||||||
|
FORMAT_OTHER = 5
|
||||||
|
|
||||||
|
TALK_FORMATS = [
|
||||||
|
(FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"),
|
||||||
|
(FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"),
|
||||||
|
(FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"),
|
||||||
|
]
|
||||||
|
|
||||||
|
talk_format = models.IntegerField(
|
||||||
|
choices=TALK_FORMATS,
|
||||||
|
default=FORMAT_LONG_PRESENTATION,
|
||||||
|
help_text="Please indicate your preferred talk length in the private abstract field below."
|
||||||
|
)
|
||||||
|
|
||||||
|
ticket_acknowledgement = models.BooleanField(
|
||||||
|
default=False,
|
||||||
|
help_text="I understand that I will be required to purchase a conference ticket "
|
||||||
|
"and arrange my own travel and accommodation, as linux.conf.au miniconfs are unfunded community run events."
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
|
||||||
|
class CopyleftComplianceProposal(MiniconfSessionProposal):
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Copyleft and Compliance talk proposal"
|
||||||
|
|
||||||
|
|
||||||
|
class MemberProjectProposal(MiniconfSessionProposal):
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "SFC Member Project talk proposal"
|
||||||
|
|
|
@ -363,6 +363,8 @@ CONFERENCE_ID = 1
|
||||||
PROPOSAL_FORMS = {
|
PROPOSAL_FORMS = {
|
||||||
"talk": "pinaxcon.proposals.forms.TalkProposalForm",
|
"talk": "pinaxcon.proposals.forms.TalkProposalForm",
|
||||||
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
|
"tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
|
||||||
|
"copyleft-compliance": "pinaxcon.proposals.forms.CopyleftComplianceProposalForm",
|
||||||
|
"sfc-member-project": "pinaxcon.proposals.forms.MemberProjectProposalForm",
|
||||||
}
|
}
|
||||||
MAIN_CONFERENCE_PROPOSAL_KINDS = ("Talk",)
|
MAIN_CONFERENCE_PROPOSAL_KINDS = ("Talk",)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue