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",)