Changeset - 354825a85b56
[Not reviewed]
0 3 2
Ben Sturmfels (bsturmfels) - 14 months ago 2023-04-24 21:49:50
ben@sturm.com.au
Add Security track
5 files changed with 180 insertions and 0 deletions:
0 comments (0 inline, 0 general)
pinaxcon/proposals/forms.py
Show inline comments
...
 
@@ -70,100 +70,106 @@ class CopyleftComplianceProposalForm(MiniconfProposalForm):
 
    class Meta:
 
        model = models.CopyleftComplianceProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class MemberProjectProposalForm(MiniconfProposalForm):
 

	
 
    class Meta:
 
        model = models.MemberProjectProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class ContainerDaysProposalForm(MiniconfProposalForm):
 
    class Meta:
 
        model = models.ContainerDaysProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class SustainableOpenSourceBusinessProposalForm(MiniconfProposalForm):
 
    class Meta:
 
        model = models.SustainableOpenSourceBusinessProposal
 
        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 Meta:
 
        model = models.FOSSInDailyLifeProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class SecurityProposalForm(MiniconfProposalForm):
 
    class Meta:
 
        model = models.SecurityProposal
 
        fields = TALK_FORMAT_FIELDS
 

	
 

	
 
class WildCardProposalForm(MiniconfProposalForm):
 
    class Meta:
 
        model = models.WildCardProposal
 
        fields = TALK_FORMAT_FIELDS
pinaxcon/proposals/migrations/0011_auto_20230424_1449.py
Show inline comments
 
new file 100644
 
# 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 (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/'> CC BY-NC-SA 4.0</a>) licence.")),
 
                ('materials_release', models.BooleanField(default=True, help_text="I allow Software Freedom Conservancy to release any other material (such as slides) from presentations covered by this proposal, under the <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>")),
 
                ('primary_topic', models.IntegerField(choices=[(1, 'Linux'), (2, 'Software'), (3, 'Hardware'), (4, 'Firmware'), (5, 'System Administration / Operations'), (6, 'Security'), (7, 'Documentation'), (8, 'Community'), (9, 'Science & Data'), (10, 'Galleries, Libraries, Archives & Museums (GLAM)'), (11, 'Multimedia'), (12, 'Aerospace / UAV'), (13, 'Agriculture'), (14, 'Other')], help_text='What is the primary topic area for your session?', 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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
        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 <a href='https://creativecommons.org/licenses/by-sa/4.0/'> Creative Commons Attribution-ShareAlike 4.0 International</a>"),
 
        ),
 
    ]
pinaxcon/proposals/models.py
Show inline comments
...
 
@@ -147,99 +147,104 @@ class MiniconfSessionProposal(Proposal):
 
    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."
 
    )
 

	
 
    class Meta:
 
        abstract = True
 

	
 

	
 
class CopyleftComplianceProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "Copyleft and Compliance talk proposal"
 

	
 

	
 
class MemberProjectProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "SFC Member Project talk proposal"
 

	
 

	
 
class ContainerDaysProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "Container Days proposal"
 

	
 

	
 
class SustainableOpenSourceBusinessProposal(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"
 

	
 

	
 
class FOSSInDailyLifeProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "FOSS in Daily Life proposal"
 

	
 

	
 
class SecurityProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "Security"
 

	
 

	
 
class WildCardProposal(MiniconfSessionProposal):
 
    class Meta:
 
        verbose_name = "Wild card"
pinaxcon/settings.py
Show inline comments
...
 
@@ -288,192 +288,193 @@ DEBUG_TOOLBAR_PANELS = [
 
    'debug_toolbar.panels.signals.SignalsPanel',
 
    'debug_toolbar.panels.logging.LoggingPanel',
 
    'debug_toolbar.panels.templates.TemplatesPanel',
 
    'debug_toolbar.panels.redirects.RedirectsPanel',
 
]
 

	
 
DEBUG_TOOLBAR_CONFIG = {
 
    'INTERCEPT_REDIRECTS': False,
 
}
 

	
 
INTERNAL_IPS = [
 
    '127.0.0.1',
 
]
 

	
 
from debug_toolbar.panels.logging import collector
 
LOGGING = {
 
    'version': 1,
 
    'disable_existing_loggers': False,
 
    'formatters': {
 
        'verbose': {
 
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
 
        },
 
        'simple': {
 
            'format': '%(asctime)s %(levelname)s $(module)s %(message)s'
 
        },
 
    },
 
    'filters': {
 
        'require_debug_false': {
 
            '()': 'django.utils.log.RequireDebugFalse'
 
        }
 
    },
 
    'handlers': {
 
        'console': {
 
            'level': 'DEBUG',
 
            'class': 'logging.StreamHandler',
 
            'formatter': 'simple'
 
        },
 
        'mail_admins': {
 
            'level': 'ERROR',
 
            'filters': ['require_debug_false'],
 
            'class': 'django.utils.log.AdminEmailHandler',
 
        },
 
        'djdt_log': {
 
            'level': 'DEBUG',
 
            'class': 'debug_toolbar.panels.logging.ThreadTrackingHandler',
 
            'collector': collector,
 
        },
 
    },
 
    'loggers': {
 
        'django.request': {
 
            'handlers': ['mail_admins'],
 
            'level': 'ERROR',
 
            'propagate': True,
 
        },
 
        'symposion.request': {
 
            'handlers': ['mail_admins'],
 
            'level': 'DEBUG',
 
            'propagate': True,
 
        },
 
    },
 
    'root': {
 
        'handlers': ['console', 'djdt_log'],
 
        'level': 'DEBUG'
 
    },
 
}
 
FIXTURE_DIRS = [
 
    os.path.join(PROJECT_ROOT, "fixtures"),
 
]
 

	
 
AUTHENTICATION_BACKENDS = [
 
    'symposion.teams.backends.TeamPermissionsBackend',
 
    'django.contrib.auth.backends.ModelBackend',
 
    'djangosaml2.backends.Saml2Backend',
 
]
 

	
 
LOGIN_URL = '/account/login/'
 
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
 

	
 
CONFERENCE_ID = 2
 
PROPOSAL_FORMS = {
 
    "copyleft-compliance": "pinaxcon.proposals.forms.CopyleftComplianceProposalForm",
 
    "sfc-member-project": "pinaxcon.proposals.forms.MemberProjectProposalForm",
 
    "container-days": "pinaxcon.proposals.forms.ContainerDaysProposalForm",
 
    "sustainable-open-source-business": "pinaxcon.proposals.forms.SustainableOpenSourceBusinessProposalForm",
 
    "software-worker-coops": "pinaxcon.proposals.forms.SoftwareWorkerCoopsProposalForm",
 
    "diversity-equity-inclusion": "pinaxcon.proposals.forms.DiversityEquityInclusionProposalForm",
 
    "foss-at-play": "pinaxcon.proposals.forms.FOSSAtPlayProposalForm",
 
    "open-source-ai-data": "pinaxcon.proposals.forms.OpenSourcAIDataProposalForm",
 
    "open-work": "pinaxcon.proposals.forms.OpenWorkProposalForm",
 
    "community": "pinaxcon.proposals.forms.CommunityProposalForm",
 
    "bsd-unix": "pinaxcon.proposals.forms.BSDUnixProposalForm",
 
    "xmpp": "pinaxcon.proposals.forms.XMPPProposalForm",
 
    "science-of-community": "pinaxcon.proposals.forms.ScienceOfCommunityProposalForm",
 
    "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",)
 

	
 
# Registrasion bits:
 
ATTENDEE_PROFILE_MODEL = "pinaxcon.registrasion.models.AttendeeProfile"
 
ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
 
INVOICE_CURRENCY = "USD"
 
GST_RATE =  Decimal('0')
 
TICKET_PRODUCT_CATEGORY = 1
 
TERMS_PRODUCT_CATEGORY = 2
 
ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
 

	
 
#REGIDESK
 
REGIDESK_BOARDING_GROUP = "Ready For Boarding"
 

	
 
# CSRF custom error screen
 
CSRF_FAILURE_VIEW = "pinaxcon.csrf_view.csrf_failure"
 

	
 
# Use nose to run all tests
 
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
 

	
 
# Tell nose to measure coverage on the 'foo' and 'bar' apps
 
NOSE_ARGS = [
 
    '--with-coverage',
 
    '--cover-package=registrasion.controllers,registrasion.models',
 
]
 

	
 
SASS_PROCESSOR_INCLUDE_DIRS = [
 
    os.path.join(PROJECT_ROOT, 'static/src/bootstrap/scss'),
 
    os.path.join(PROJECT_ROOT, 'static/src/scss'),
 
]
 

	
 
xmlsec_binary = '/usr/bin/xmlsec1'
 
if not os.path.isfile(xmlsec_binary):
 
        sys.exit('ERROR: xmlsec1 binary missing, EXITING')
 

	
 
SAML_ATTRIBUTE_MAPPING = {
 
    'uid': ('username', ),
 
    'mail': ('email', ),
 
    'givenName': ('first_name', ),
 
    'sn': ('last_name', ),
 
}
 
SAML_CONFIG = {
 
    'xmlsec_binary': xmlsec_binary,
 
    'entityid': saml2_entityid,
 
    'attribute_map_dir': os.path.join(PACKAGE_ROOT, 'saml2/attribute-maps'),
 
    'service': {
 
        'sp': {
 
            'name': saml2_sp_name,
 
            'endpoints': {
 
                'assertion_consumer_service': [
 
                    saml2_sp_assertion_service,
 
                    ],
 
                'single_logout_service': [
 
                    (saml2_sp_slo_rdir, saml2.BINDING_HTTP_REDIRECT),
 
                    (saml2_sp_slo_post, saml2.BINDING_HTTP_POST),
 
                    ],
 
                },
 
            'logout_requests_signed': True,
 
            'required_attributes': ['uid', 'mail', 'givenName', 'sn'],
 
            'allow_unsolicited': True, # Avoid issues with SameSite cookies for now.
 
            },
 
        },
 
    'metadata': saml2_idp_metadata,
 
    'debug': 0,
 
    'key_file': saml2_signing_key,
 
    'cert_file': saml2_signing_crt,
 
    'encryption_keypairs': [{
 
        'key_file': saml2_encr_key,
 
        'cert_file': saml2_encr_crt,
 
    }],
 
    'contact_person': saml2_contact,
 
    'valid_for': 10,
 
}
 

	
 
if 'SAML_CONFIG_LOADER' in os.environ:
 
    SAML_CONFIG_LOADER = os.environ.get('SAML_CONFIG_LOADER')
 

	
 
DEFAULT_FILE_STORAGE = os.environ.get('DEFAULT_FILE_STORAGE', 'gapc_storage.storage.GoogleCloudStorage')
 
GAPC_STORAGE = {
 
    'num_retries': 2,
 
}
 

	
 
SETTINGS_EXPORT = [
 
    'DEBUG',
 
    'ANALYTICS_KEY',
 
    'TIME_ZONE',
 
    'CONF_START',
 
    'CONFERENCE_EMAIL',
 
]
 

	
 
if DEV_MODE and DEV_MODE == "LAPTOP":
 
    print("ENABLING LAPTOP MODE")
 
    from .devmode_settings import *
 

	
vendor/registrasion/registrasion/migrations/0009_auto_20230424_1449.py
Show inline comments
 
new file 100644
 
# 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.'),
 
        ),
 
    ]
0 comments (0 inline, 0 general)