Add LCA2020 Miniconfs
Setup proposals for miniconfs, including model, forms and admin.
This commit is contained in:
		
							parent
							
								
									87ecc83314
								
							
						
					
					
						commit
						246bbcb324
					
				
					 5 changed files with 565 additions and 12 deletions
				
			
		|  | @ -24,6 +24,19 @@ models_to_register = [ | |||
|     models.TalkProposal, | ||||
|     models.TutorialProposal, | ||||
|     models.MiniconfProposal, | ||||
|     ### LCA2020 Miniconfs | ||||
|     models.ContainersProposal, | ||||
|     models.CreativeArtsProposal, | ||||
|     models.DocsProposal, | ||||
|     models.FreeBsdProposal, | ||||
|     models.GamesProposal, | ||||
|     models.GlamProposal, | ||||
|     models.KernelProposal, | ||||
|     models.OpenEducationProposal, | ||||
|     models.OpenHardwareProposal, | ||||
|     models.OpenIsaProposal, | ||||
|     models.SecurityProposal, | ||||
|     models.SysAdminProposal, | ||||
| ] | ||||
| 
 | ||||
| for model in models_to_register: | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ import copy | |||
| from django import forms | ||||
| 
 | ||||
| from pinaxcon.proposals.fields import HelpTextField | ||||
| from pinaxcon.proposals.models import TalkProposal, TutorialProposal, MiniconfProposal | ||||
| from pinaxcon.proposals import models | ||||
| 
 | ||||
| 
 | ||||
| DEFAULT_FIELDS =  [ | ||||
|  | @ -20,6 +20,7 @@ DEFAULT_FIELDS =  [ | |||
| 
 | ||||
| TALK_FORMAT_FIELDS = copy.copy(DEFAULT_FIELDS) | ||||
| TALK_FORMAT_FIELDS.insert(2, "talk_format") | ||||
| TALK_FORMAT_FIELDS.append("ticket_acknowledgement") | ||||
| 
 | ||||
| class ProposalForm(forms.ModelForm): | ||||
| 
 | ||||
|  | @ -37,7 +38,7 @@ class ProposalForm(forms.ModelForm): | |||
| class TalkProposalForm(ProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = TalkProposal | ||||
|         model = models.TalkProposal | ||||
|         fields = [ | ||||
|             "title", | ||||
|             "target_audience", | ||||
|  | @ -55,7 +56,7 @@ class TalkProposalForm(ProposalForm): | |||
| class TutorialProposalForm(ProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = TutorialProposal | ||||
|         model = models.TutorialProposal | ||||
|         fields = [ | ||||
|             "title", | ||||
|             "target_audience", | ||||
|  | @ -73,7 +74,7 @@ class TutorialProposalForm(ProposalForm): | |||
| class MiniconfProposalForm(ProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = MiniconfProposal | ||||
|         model = models.MiniconfProposal | ||||
|         fields = [ | ||||
|             "title", | ||||
|             "abstract", | ||||
|  | @ -82,3 +83,96 @@ class MiniconfProposalForm(ProposalForm): | |||
|             "recording_release", | ||||
|             "materials_release", | ||||
|         ] | ||||
| 
 | ||||
| 
 | ||||
| ### LCA2020 Miniconfs | ||||
| 
 | ||||
| class MiniconfProposalForm(ProposalForm): | ||||
| 
 | ||||
|     def __init__(self, *a, **k): | ||||
|         super(MiniconfProposalForm, self).__init__(*a, **k) | ||||
|         self.fields['ticket_acknowledgement'].required = True | ||||
| 
 | ||||
| 
 | ||||
| class ContainersProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.ContainersProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class CreativeArtsProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.CreativeArtsProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class DocsProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.DocsProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class FreeBsdProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.FreeBsdProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class GamesProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.GamesProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class GlamProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.GlamProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class KernelProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.KernelProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class OpenEducationProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.OpenEducationProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class OpenHardwareProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.OpenHardwareProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class OpenIsaProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.OpenIsaProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class SecurityProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.SecurityProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
| 
 | ||||
| 
 | ||||
| class SysAdminProposalForm(MiniconfProposalForm): | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = models.SysAdminProposal | ||||
|         fields = TALK_FORMAT_FIELDS | ||||
|  |  | |||
							
								
								
									
										197
									
								
								pinaxcon/proposals/migrations/0017_lca2020_miniconfs.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								pinaxcon/proposals/migrations/0017_lca2020_miniconfs.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,197 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # Generated by Django 1.11.22 on 2019-09-29 09:56 | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| import django.db.models.deletion | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('symposion_proposals', '0003_auto_20170702_2250'), | ||||
|         ('proposals', '0016_auto_20190624_2328'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.CreateModel( | ||||
|             name='ContainersProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('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.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Containers Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='CreativeArtsProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (15 min)'), (2, 'Medium Presentation (30 min)'), (3, 'Long Presentation (60 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Creative Arts Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='DocsProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('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.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Documentation Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='FreeBsdProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (25 min)'), (3, 'Presentation (30 min)')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'FreeBSD Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='GamesProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Presentation (short)'), (3, 'Presentation (long)'), (4, 'Demonstration'), (5, 'Other')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Games and FOSS Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='GlamProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('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.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'GO GLAM Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         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')), | ||||
|                 ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (25 min)'), (3, 'Presentation (45 min)')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Kernel Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='OpenEducationProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('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.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Open Education Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='OpenHardwareProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Lightning Talks (5 min)'), (3, 'Presentation (25 min)')], default=3, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Open Hardware Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         migrations.CreateModel( | ||||
|             name='OpenIsaProposal', | ||||
|             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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, '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.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'OpenISA (RISC-V, OpenPOWER, etc) 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')), | ||||
|                 ('target_audience', models.IntegerField(choices=[(1, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Overview (15 min)'), (2, 'Primer (30 min)'), (3, 'Presentation (45 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'Security, Identity and Privacy Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|         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, 'User'), (2, 'Business'), (3, 'Community'), (4, 'Developer')])), | ||||
|                 ('recording_release', models.BooleanField(default=True, help_text="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="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>")), | ||||
|                 ('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.')), | ||||
|                 ('talk_format', models.IntegerField(choices=[(1, 'Short Presentation (5-10 min)'), (2, 'Medium Presentation (15-20 min)'), (3, 'Long Presentation (25-30 min)')], default=1, help_text='Please indicate your preferred talk length in the private abstract field below.')), | ||||
|             ], | ||||
|             options={ | ||||
|                 'verbose_name': 'System Administration Miniconf Proposal', | ||||
|             }, | ||||
|             bases=('symposion_proposals.proposalbase',), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -59,3 +59,248 @@ class MiniconfProposal(Proposal): | |||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "miniconf proposal" | ||||
| 
 | ||||
| 
 | ||||
| ### LCA2020 Miniconfs | ||||
| 
 | ||||
| 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 ContainersProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Containers Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class CreativeArtsProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (15 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Medium Presentation (30 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Long Presentation (60 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Creative Arts Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class DocsProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Documentation Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class FreeBsdProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (30 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "FreeBSD Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class GamesProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Presentation (short)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (long)"), | ||||
|         (MiniconfSessionProposal.FORMAT_DEMONSTRATION, "Demonstration"), | ||||
|         (MiniconfSessionProposal.FORMAT_OTHER, "Other"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Games and FOSS Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class GlamProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "GO GLAM Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class KernelProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Kernel Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class OpenEducationProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talk (5-10 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Short Presentation (20-25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Open Education Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class OpenHardwareProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Lightning Talks (5 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (25 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Open Hardware Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class OpenIsaProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (20-25 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (40-45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "OpenISA (RISC-V, OpenPOWER, etc) Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class SecurityProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Overview (15 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Primer (30 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Presentation (45 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "Security, Identity and Privacy Miniconf Proposal" | ||||
| 
 | ||||
| 
 | ||||
| class SysAdminProposal(MiniconfSessionProposal): | ||||
| 
 | ||||
|     TALK_FORMATS = [ | ||||
|         (MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, "Short Presentation (5-10 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_MEDIUM_PRESENTATION, "Medium Presentation (15-20 min)"), | ||||
|         (MiniconfSessionProposal.FORMAT_LONG_PRESENTATION, "Long Presentation (25-30 min)"), | ||||
|     ] | ||||
| 
 | ||||
|     talk_format = models.IntegerField( | ||||
|         choices=TALK_FORMATS, | ||||
|         default=MiniconfSessionProposal.FORMAT_SHORT_PRESENTATION, | ||||
|         help_text="Please indicate your preferred talk length in the private abstract field below." | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         verbose_name = "System Administration Miniconf Proposal" | ||||
|  |  | |||
|  | @ -337,15 +337,19 @@ PROPOSAL_FORMS = { | |||
|     "talk": "pinaxcon.proposals.forms.TalkProposalForm", | ||||
|     "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm", | ||||
|     "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm", | ||||
|     "sysadmin-miniconf": "pinaxcon.proposals.forms.SysadminProposalForm", | ||||
|     "games-miniconf": "pinaxcon.proposals.forms.GamesProposalForm", | ||||
|     "openhardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm", | ||||
|     "kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm", | ||||
|     "opened-miniconf": "pinaxcon.proposals.forms.OpenEdProposalForm", | ||||
|     "devdev-miniconf": "pinaxcon.proposals.forms.DevDevProposalForm", | ||||
|     "arttech-miniconf": "pinaxcon.proposals.forms.ArtTechProposalForm", | ||||
|     ### LCA2020 Miniconfs | ||||
|     "containers-miniconf": "pinaxcon.proposals.forms.ContainersProposalForm", | ||||
|     "creative-arts-miniconf": "pinaxcon.proposals.forms.CreativeArtsProposalForm", | ||||
|     "docs-miniconf": "pinaxcon.proposals.forms.DocsProposalForm", | ||||
|     "security-identity-privacy-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm" | ||||
|     "freebsd-miniconf": "pinaxcon.proposals.forms.FreeBsdProposalForm", | ||||
|     "games-miniconf": "pinaxcon.proposals.forms.GamesProposalForm", | ||||
|     "glam-miniconf": "pinaxcon.proposals.forms.GlamProposalForm", | ||||
|     "kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm", | ||||
|     "open-education-miniconf": "pinaxcon.proposals.forms.OpenEducationProposalForm", | ||||
|     "open-hardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm", | ||||
|     "open-isa-miniconf": "pinaxcon.proposals.forms.OpenIsaProposalForm", | ||||
|     "security-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm", | ||||
|     "sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm", | ||||
| } | ||||
| 
 | ||||
| # Registrasion bits: | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Joel Addison
						Joel Addison