From 6557e60bfcde3c3fc3b2654bddc67d1adbe4a4eb Mon Sep 17 00:00:00 2001 From: Ben Sturmfels Date: Wed, 15 May 2024 22:29:33 +1000 Subject: [PATCH] Add FOSSY 2024 CFP --- pinaxcon/proposals/admin.py | 30 ++- pinaxcon/proposals/forms.py | 138 +++++------ .../migrations/0013_auto_20240515_0500.py | 218 ++++++++++++++++++ pinaxcon/proposals/models.py | 118 ++++------ pinaxcon/settings.py | 26 +-- 5 files changed, 348 insertions(+), 182 deletions(-) create mode 100644 pinaxcon/proposals/migrations/0013_auto_20240515_0500.py diff --git a/pinaxcon/proposals/admin.py b/pinaxcon/proposals/admin.py index 6fa34d09..f27dff6c 100644 --- a/pinaxcon/proposals/admin.py +++ b/pinaxcon/proposals/admin.py @@ -21,24 +21,22 @@ class CategoryAdmin(admin.ModelAdmin): models_to_register = [ - models.CopyleftComplianceProposal, - models.MemberProjectProposal, - models.ContainerDaysProposal, - models.SustainableOpenSourceBusinessProposal, - models.SoftwareWorkerCoopsProposal, - models.DiversityEquityInclusionProposal, - models.FOSSAtPlayProposal, - models.OpenSourcAIDataProposal, - models.OpenWorkProposal, - models.CommunityProposal, - models.BSDUnixProposal, - models.XMPPProposal, - models.ScienceOfCommunityProposal, - models.AArch64ARM64Proposal, - models.FOSSForEducationProposal, + models.AIAndMachineLearningProposal, + models.DiversityEquityAndInclusionProposal, + models.FOSSAndARM64Proposal, + models.FOSSFundingandEconomicsProposal, models.FOSSInDailyLifeProposal, + models.FOSSInEducationProposal, + models.LicensingAndLegalIssuesProposal, + models.MobileDeviceUserFreedomProposal, + models.ReproducibilityProposal, + models.RightToRepairProposal, + models.ScienceOfCommunityProposal, + models.MemberProjectsProposal, + models.SupportingUserGroupsProposal, + models.XMPPProposal, + models.WildCardProposal, ] - for model in models_to_register: admin.site.register(model, CategoryAdmin, list_display = [ diff --git a/pinaxcon/proposals/forms.py b/pinaxcon/proposals/forms.py index 25625032..d3892f87 100644 --- a/pinaxcon/proposals/forms.py +++ b/pinaxcon/proposals/forms.py @@ -61,117 +61,91 @@ class MiniconfProposalForm(ProposalForm): pass -class CopyleftComplianceProposalForm(MiniconfProposalForm): - +class AIAndMachineLearningForm(MiniconfProposalForm): class Meta: - model = models.CopyleftComplianceProposal + model = models.AIAndMachineLearningProposal fields = TALK_FORMAT_FIELDS -class MemberProjectProposalForm(MiniconfProposalForm): - +class DiversityEquityAndInclusionForm(MiniconfProposalForm): class Meta: - model = models.MemberProjectProposal + model = models.DiversityEquityAndInclusionProposal fields = TALK_FORMAT_FIELDS -class ContainerDaysProposalForm(MiniconfProposalForm): +class FOSSAndARM64Form(MiniconfProposalForm): class Meta: - model = models.ContainerDaysProposal + model = models.FOSSAndARM64Proposal fields = TALK_FORMAT_FIELDS -class SustainableOpenSourceBusinessProposalForm(MiniconfProposalForm): +class FOSSFundingandEconomicsForm(MiniconfProposalForm): class Meta: - model = models.SustainableOpenSourceBusinessProposal + model = models.FOSSFundingandEconomicsProposal fields = TALK_FORMAT_FIELDS -class SoftwareWorkerCoopsProposalForm(MiniconfProposalForm): - class Meta: - model = models.SoftwareWorkerCoopsProposal - fields = TALK_FORMAT_FIELDS - - -class DiversityEquityInclusionProposalForm(MiniconfProposalForm): - class Meta: - model = models.DiversityEquityInclusionProposal - fields = TALK_FORMAT_FIELDS - - -class FOSSAtPlayProposalForm(MiniconfProposalForm): - class Meta: - model = models.FOSSAtPlayProposal - fields = TALK_FORMAT_FIELDS - - -class OpenSourcAIDataProposalForm(MiniconfProposalForm): - class Meta: - model = models.OpenSourcAIDataProposal - fields = TALK_FORMAT_FIELDS - - -class OpenWorkProposalForm(MiniconfProposalForm): - class Meta: - model = models.OpenWorkProposal - fields = TALK_FORMAT_FIELDS - - -class CommunityProposalForm(MiniconfProposalForm): - class Meta: - model = models.CommunityProposal - fields = TALK_FORMAT_FIELDS - - -class BSDUnixProposalForm(MiniconfProposalForm): - class Meta: - model = models.BSDUnixProposal - fields = TALK_FORMAT_FIELDS - - -class XMPPProposalForm(MiniconfProposalForm): - class Meta: - model = models.XMPPProposal - fields = TALK_FORMAT_FIELDS - - -class ScienceOfCommunityProposalForm(MiniconfProposalForm): - class Meta: - model = models.ScienceOfCommunityProposal - fields = TALK_FORMAT_FIELDS - - -class AArch64ARM64ProposalForm(MiniconfProposalForm): - class Meta: - model = models.AArch64ARM64Proposal - fields = TALK_FORMAT_FIELDS - - -class FOSSForEducationProposalForm(MiniconfProposalForm): - class Meta: - model = models.FOSSForEducationProposal - fields = TALK_FORMAT_FIELDS - - -class FOSSInDailyLifeProposalForm(MiniconfProposalForm): +class FOSSInDailyLifeForm(MiniconfProposalForm): class Meta: model = models.FOSSInDailyLifeProposal fields = TALK_FORMAT_FIELDS -class SecurityProposalForm(MiniconfProposalForm): +class FOSSInEducationForm(MiniconfProposalForm): class Meta: - model = models.SecurityProposal + model = models.FOSSInEducationProposal fields = TALK_FORMAT_FIELDS -class WildCardProposalForm(MiniconfProposalForm): +class LicensingAndLegalIssuesForm(MiniconfProposalForm): class Meta: - model = models.WildCardProposal + model = models.LicensingAndLegalIssuesProposal fields = TALK_FORMAT_FIELDS -class RightToRepairProposalForm(MiniconfProposalForm): +class MobileDeviceUserFreedomForm(MiniconfProposalForm): + class Meta: + model = models.MobileDeviceUserFreedomProposal + fields = TALK_FORMAT_FIELDS + + +class ReproducibilityForm(MiniconfProposalForm): + class Meta: + model = models.ReproducibilityProposal + fields = TALK_FORMAT_FIELDS + + +class RightToRepairForm(MiniconfProposalForm): class Meta: model = models.RightToRepairProposal fields = TALK_FORMAT_FIELDS + + +class ScienceOfCommunityForm(MiniconfProposalForm): + class Meta: + model = models.ScienceOfCommunityProposal + fields = TALK_FORMAT_FIELDS + + +class MemberProjectsForm(MiniconfProposalForm): + class Meta: + model = models.MemberProjectsProposal + fields = TALK_FORMAT_FIELDS + + +class SupportingUserGroupsForm(MiniconfProposalForm): + class Meta: + model = models.SupportingUserGroupsProposal + fields = TALK_FORMAT_FIELDS + + +class XMPPForm(MiniconfProposalForm): + class Meta: + model = models.XMPPProposal + fields = TALK_FORMAT_FIELDS + + +class WildCardForm(MiniconfProposalForm): + class Meta: + model = models.WildCardProposal + fields = TALK_FORMAT_FIELDS diff --git a/pinaxcon/proposals/migrations/0013_auto_20240515_0500.py b/pinaxcon/proposals/migrations/0013_auto_20240515_0500.py new file mode 100644 index 00000000..263739bc --- /dev/null +++ b/pinaxcon/proposals/migrations/0013_auto_20240515_0500.py @@ -0,0 +1,218 @@ +# Generated by Django 2.2.28 on 2024-05-15 05:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('symposion_schedule', '0009_presentation_videos'), + ('symposion_proposals', '0003_auto_20170702_2250'), + ('symposion_speakers', '0012_auto_20230420_0018'), + ('symposion_reviews', '0001_initial'), + ('proposals', '0012_righttorepairproposal'), + ] + + operations = [ + migrations.CreateModel( + name='FOSSFundingandEconomicsProposal', + 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 Software Freedom Conservancy 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 ( CC BY-NC-SA 4.0) licence.")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Software Freedom Conservancy to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-ShareAlike 4.0 International")), + ('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?', null=True)), + ('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, 'Long 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.')), + ], + options={ + 'verbose_name': 'FOSS Funding and Economics talk proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='MobileDeviceUserFreedomProposal', + 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 Software Freedom Conservancy 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 ( CC BY-NC-SA 4.0) licence.")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Software Freedom Conservancy to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-ShareAlike 4.0 International")), + ('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?', null=True)), + ('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, 'Long 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.')), + ], + options={ + 'verbose_name': 'Mobile Device User Freedom talk proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='ReproducibilityProposal', + 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 Software Freedom Conservancy 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 ( CC BY-NC-SA 4.0) licence.")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Software Freedom Conservancy to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-ShareAlike 4.0 International")), + ('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?', null=True)), + ('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, 'Long 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.')), + ], + options={ + 'verbose_name': 'Reproducability talk proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.CreateModel( + name='SupportingUserGroupsProposal', + 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 Software Freedom Conservancy 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 ( CC BY-NC-SA 4.0) licence.")), + ('materials_release', models.BooleanField(default=True, help_text="I allow Software Freedom Conservancy to release any other material (such as slides) from presentations covered by this proposal, under the Creative Commons Attribution-ShareAlike 4.0 International")), + ('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?', null=True)), + ('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, 'Long 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.')), + ], + options={ + 'verbose_name': 'Supporting User Groups talk proposal', + }, + bases=('symposion_proposals.proposalbase',), + ), + migrations.RenameModel( + old_name='OpenSourcAIDataProposal', + new_name='AIAndMachineLearningProposal', + ), + migrations.RenameModel( + old_name='DiversityEquityInclusionProposal', + new_name='DiversityEquityAndInclusionProposal', + ), + migrations.RenameModel( + old_name='AArch64ARM64Proposal', + new_name='FOSSAndARM64Proposal', + ), + migrations.RenameModel( + old_name='FOSSForEducationProposal', + new_name='FOSSInEducationProposal', + ), + migrations.RenameModel( + old_name='CopyleftComplianceProposal', + new_name='LicensingAndLegalIssuesProposal', + ), + migrations.RenameModel( + old_name='MemberProjectProposal', + new_name='MemberProjectsProposal', + ), + migrations.RemoveField( + model_name='communityproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='containerdaysproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='fossatplayproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='openworkproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='securityproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='softwareworkercoopsproposal', + name='proposalbase_ptr', + ), + migrations.RemoveField( + model_name='sustainableopensourcebusinessproposal', + name='proposalbase_ptr', + ), + migrations.AlterModelOptions( + name='aiandmachinelearningproposal', + options={'verbose_name': 'AI and Machine Learning talk proposal'}, + ), + migrations.AlterModelOptions( + name='diversityequityandinclusionproposal', + options={'verbose_name': 'Diversity Equity and Inclusion and FOSS talk proposal'}, + ), + migrations.AlterModelOptions( + name='fossandarm64proposal', + options={'verbose_name': 'FOSS and ARM64; from the Cloud to the Edge talk proposal'}, + ), + migrations.AlterModelOptions( + name='fossindailylifeproposal', + options={'verbose_name': 'FOSS in Daily Life talk proposal'}, + ), + migrations.AlterModelOptions( + name='fossineducationproposal', + options={'verbose_name': 'FOSS in Education talk proposal'}, + ), + migrations.AlterModelOptions( + name='licensingandlegalissuesproposal', + options={'verbose_name': 'Licensing and Legal Issues talk proposal'}, + ), + migrations.AlterModelOptions( + name='memberprojectsproposal', + options={'verbose_name': 'SFC Member Projects talk proposal'}, + ), + migrations.AlterModelOptions( + name='righttorepairproposal', + options={'verbose_name': 'Right to Repair talk proposal'}, + ), + migrations.AlterModelOptions( + name='scienceofcommunityproposal', + options={'verbose_name': 'Science of Community talk proposal'}, + ), + migrations.AlterModelOptions( + name='wildcardproposal', + options={'verbose_name': 'Wild card talk proposal'}, + ), + migrations.AlterModelOptions( + name='xmppproposal', + options={'verbose_name': 'XMPP talk proposal'}, + ), + migrations.DeleteModel( + name='BSDUnixProposal', + ), + migrations.DeleteModel( + name='CommunityProposal', + ), + migrations.DeleteModel( + name='ContainerDaysProposal', + ), + migrations.DeleteModel( + name='FOSSAtPlayProposal', + ), + migrations.DeleteModel( + name='OpenWorkProposal', + ), + migrations.DeleteModel( + name='SecurityProposal', + ), + migrations.DeleteModel( + name='SoftwareWorkerCoopsProposal', + ), + migrations.DeleteModel( + name='SustainableOpenSourceBusinessProposal', + ), + ] diff --git a/pinaxcon/proposals/models.py b/pinaxcon/proposals/models.py index 8a69c012..5fbd26d7 100644 --- a/pinaxcon/proposals/models.py +++ b/pinaxcon/proposals/models.py @@ -160,96 +160,76 @@ class MiniconfSessionProposal(Proposal): abstract = True -class CopyleftComplianceProposal(MiniconfSessionProposal): +class AIAndMachineLearningProposal(MiniconfSessionProposal): class Meta: - verbose_name = "Copyleft and Compliance talk proposal" + verbose_name = "AI and Machine Learning talk proposal" -class MemberProjectProposal(MiniconfSessionProposal): +class DiversityEquityAndInclusionProposal(MiniconfSessionProposal): class Meta: - verbose_name = "SFC Member Project talk proposal" + verbose_name = "Diversity Equity and Inclusion and FOSS talk proposal" -class ContainerDaysProposal(MiniconfSessionProposal): +class FOSSAndARM64Proposal(MiniconfSessionProposal): class Meta: - verbose_name = "Container Days proposal" + verbose_name = "FOSS and ARM64; from the Cloud to the Edge talk proposal" -class SustainableOpenSourceBusinessProposal(MiniconfSessionProposal): +class FOSSFundingandEconomicsProposal(MiniconfSessionProposal): class Meta: - verbose_name = "Sustainable Open Source Business proposal" - - -class SoftwareWorkerCoopsProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Software Worker Co-ops proposal" - - -class DiversityEquityInclusionProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Diversity Equity and Inclusion and FOSS proposal" - - -class FOSSAtPlayProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "FOSS at Play: Games, creative development, and open technology proposal" - - -class OpenSourcAIDataProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Open Source AI + Data proposal" - - -class OpenWorkProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Issues in Open Work; Common Challenges and Best Practices in the Open Source Industry, Open Scholarship, and Government proposal" - - -class CommunityProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Community: Open Source in Practice proposal" - - -class BSDUnixProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "BSD Unix proposal" - - -class XMPPProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "XMPP proposal" - - -class ScienceOfCommunityProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "Science of Community proposal" - - -class AArch64ARM64Proposal(MiniconfSessionProposal): - class Meta: - verbose_name = "AArch64/ARM64 Servers and Open Source- The Who, What, Why, and How proposal" - - -class FOSSForEducationProposal(MiniconfSessionProposal): - class Meta: - verbose_name = "FOSS For Education proposal" + verbose_name = "FOSS Funding and Economics talk proposal" class FOSSInDailyLifeProposal(MiniconfSessionProposal): class Meta: - verbose_name = "FOSS in Daily Life proposal" + verbose_name = "FOSS in Daily Life talk proposal" -class SecurityProposal(MiniconfSessionProposal): +class FOSSInEducationProposal(MiniconfSessionProposal): class Meta: - verbose_name = "Security" + verbose_name = "FOSS in Education talk proposal" -class WildCardProposal(MiniconfSessionProposal): +class LicensingAndLegalIssuesProposal(MiniconfSessionProposal): class Meta: - verbose_name = "Wild card" + verbose_name = "Licensing and Legal Issues talk proposal" + + +class MobileDeviceUserFreedomProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "Mobile Device User Freedom talk proposal" + + +class ReproducibilityProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "Reproducability talk proposal" class RightToRepairProposal(MiniconfSessionProposal): class Meta: - verbose_name = "Right to Repair" + verbose_name = "Right to Repair talk proposal" + + +class ScienceOfCommunityProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "Science of Community talk proposal" + + +class MemberProjectsProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "SFC Member Projects talk proposal" + + +class SupportingUserGroupsProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "Supporting User Groups talk proposal" + + +class XMPPProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "XMPP talk proposal" + + +class WildCardProposal(MiniconfSessionProposal): + class Meta: + verbose_name = "Wild card talk proposal" diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py index 356914ab..b4bbcff6 100644 --- a/pinaxcon/settings.py +++ b/pinaxcon/settings.py @@ -371,25 +371,21 @@ SESSION_EXPIRE_AT_BROWSER_CLOSE = True CONFERENCE_ID = 3 PROPOSAL_FORMS = { - "aarch64-arm64": "pinaxcon.proposals.forms.AArch64ARM64ProposalForm", - "bsd-unix": "pinaxcon.proposals.forms.BSDUnixProposalForm", - "community": "pinaxcon.proposals.forms.CommunityProposalForm", - "container-days": "pinaxcon.proposals.forms.ContainerDaysProposalForm", - "copyleft-compliance": "pinaxcon.proposals.forms.CopyleftComplianceProposalForm", - "diversity-equity-inclusion": "pinaxcon.proposals.forms.DiversityEquityInclusionProposalForm", - "foss-at-play": "pinaxcon.proposals.forms.FOSSAtPlayProposalForm", - "foss-for-education": "pinaxcon.proposals.forms.FOSSForEducationProposalForm", + "ai-and-machine-learning": "pinaxcon.proposals.forms.AIAndMachineLearningProposalForm", + "diversity-equity-and-inclusion": "pinaxcon.proposals.forms.DiversityEquityAndInclusionProposalForm", + "foss-and-arm64": "pinaxcon.proposals.forms.FOSSAndARM64ProposalForm", + "foss-funding-and-economics": "pinaxcon.proposals.forms.FOSSFundingandEconomicsProposalForm", "foss-in-daily-life": "pinaxcon.proposals.forms.FOSSInDailyLifeProposalForm", - "open-source-ai-data": "pinaxcon.proposals.forms.OpenSourcAIDataProposalForm", - "open-work": "pinaxcon.proposals.forms.OpenWorkProposalForm", + "foss-in-education": "pinaxcon.proposals.forms.FOSSInEducationProposalForm", + "licensing-and-legal-issues": "pinaxcon.proposals.forms.LicensingAndLegalIssuesProposalForm", + "mobile-device-user-freedom": "pinaxcon.proposals.forms.MobileDeviceUserFreedomProposalForm", + "reproducibility": "pinaxcon.proposals.forms.ReproducibilityProposalForm", "right-to-repair": "pinaxcon.proposals.forms.RightToRepairProposalForm", "science-of-community": "pinaxcon.proposals.forms.ScienceOfCommunityProposalForm", - "security": "pinaxcon.proposals.forms.SecurityProposalForm", - "sfc-member-project": "pinaxcon.proposals.forms.MemberProjectProposalForm", - "software-worker-coops": "pinaxcon.proposals.forms.SoftwareWorkerCoopsProposalForm", - "sustainable-open-source-business": "pinaxcon.proposals.forms.SustainableOpenSourceBusinessProposalForm", - "wildcard": "pinaxcon.proposals.forms.WildCardProposalForm", + "member-projects": "pinaxcon.proposals.forms.MemberProjectsProposalForm", + "supporting-user-groups": "pinaxcon.proposals.forms.SupportingUserGroupsProposalForm", "xmpp": "pinaxcon.proposals.forms.XMPPProposalForm", + "wildcard": "pinaxcon.proposals.forms.WildCardProposalForm", } MAIN_CONFERENCE_PROPOSAL_KINDS = ("Talk",)