diff --git a/pinaxcon/proposals/forms.py b/pinaxcon/proposals/forms.py
index 9a1cd2ff..5977fbca 100644
--- a/pinaxcon/proposals/forms.py
+++ b/pinaxcon/proposals/forms.py
@@ -163,6 +163,12 @@ class FOSSInDailyLifeProposalForm(MiniconfProposalForm):
fields = TALK_FORMAT_FIELDS
+class SecurityProposalForm(MiniconfProposalForm):
+ class Meta:
+ model = models.SecurityProposal
+ fields = TALK_FORMAT_FIELDS
+
+
class WildCardProposalForm(MiniconfProposalForm):
class Meta:
model = models.WildCardProposal
diff --git a/pinaxcon/proposals/migrations/0011_auto_20230424_1449.py b/pinaxcon/proposals/migrations/0011_auto_20230424_1449.py
new file mode 100644
index 00000000..a390b4ba
--- /dev/null
+++ b/pinaxcon/proposals/migrations/0011_auto_20230424_1449.py
@@ -0,0 +1,130 @@
+# Generated by Django 2.2.28 on 2023-04-24 21:49
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('symposion_proposals', '0003_auto_20170702_2250'),
+ ('proposals', '0010_auto_20230423_1620'),
+ ]
+
+ operations = [
+ 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=[(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': 'Security',
+ },
+ bases=('symposion_proposals.proposalbase',),
+ ),
+ migrations.AlterField(
+ model_name='aarch64arm64proposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='bsdunixproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='communityproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='containerdaysproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='copyleftcomplianceproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='diversityequityinclusionproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='fossatplayproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='fossforeducationproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='fossindailylifeproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='memberprojectproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='opensourcaidataproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='openworkproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='scienceofcommunityproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='softwareworkercoopsproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='sustainableopensourcebusinessproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='talkproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='tutorialproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='wildcardproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ migrations.AlterField(
+ model_name='xmppproposal',
+ name='materials_release',
+ field=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"),
+ ),
+ ]
diff --git a/pinaxcon/proposals/models.py b/pinaxcon/proposals/models.py
index 43ec5f26..2d7b6a06 100644
--- a/pinaxcon/proposals/models.py
+++ b/pinaxcon/proposals/models.py
@@ -240,6 +240,11 @@ class FOSSInDailyLifeProposal(MiniconfSessionProposal):
verbose_name = "FOSS in Daily Life proposal"
+class SecurityProposal(MiniconfSessionProposal):
+ class Meta:
+ verbose_name = "Security"
+
+
class WildCardProposal(MiniconfSessionProposal):
class Meta:
verbose_name = "Wild card"
diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py
index 136e542d..858681a1 100644
--- a/pinaxcon/settings.py
+++ b/pinaxcon/settings.py
@@ -381,6 +381,7 @@ PROPOSAL_FORMS = {
"aarch64-arm64": "pinaxcon.proposals.forms.AArch64ARM64ProposalForm",
"foss-for-education": "pinaxcon.proposals.forms.FOSSForEducationProposalForm",
"foss-in-daily-life": "pinaxcon.proposals.forms.FOSSInDailyLifeProposalForm",
+ "security": "pinaxcon.proposals.forms.SecurityForm",
"wildcard": "pinaxcon.proposals.forms.WildCardProposalForm",
}
MAIN_CONFERENCE_PROPOSAL_KINDS = ("Talk",)
diff --git a/vendor/registrasion/registrasion/migrations/0009_auto_20230424_1449.py b/vendor/registrasion/registrasion/migrations/0009_auto_20230424_1449.py
new file mode 100644
index 00000000..fac479cf
--- /dev/null
+++ b/vendor/registrasion/registrasion/migrations/0009_auto_20230424_1449.py
@@ -0,0 +1,38 @@
+# Generated by Django 2.2.28 on 2023-04-24 21:49
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('registrasion', '0008_auto_20170930_1843'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='category',
+ name='required',
+ field=models.BooleanField(blank=True, help_text='If enabled, a user must select an item from this category.'),
+ ),
+ migrations.AlterField(
+ model_name='speakerdiscount',
+ name='is_copresenter',
+ field=models.BooleanField(blank=True, help_text='This condition is met if the user is a copresenter of a presentation.'),
+ ),
+ migrations.AlterField(
+ model_name='speakerdiscount',
+ name='is_presenter',
+ field=models.BooleanField(blank=True, help_text='This condition is met if the user is the primary presenter of a presentation.'),
+ ),
+ migrations.AlterField(
+ model_name='speakerflag',
+ name='is_copresenter',
+ field=models.BooleanField(blank=True, help_text='This condition is met if the user is a copresenter of a presentation.'),
+ ),
+ migrations.AlterField(
+ model_name='speakerflag',
+ name='is_presenter',
+ field=models.BooleanField(blank=True, help_text='This condition is met if the user is the primary presenter of a presentation.'),
+ ),
+ ]