Files @ 0fddbf9f9bbd
Branch filter:

Location: symposion_app/pinaxcon/settings.py - annotation

Sachi King
flake8 again
04f246d85071
37a9b37499d8
37a9b37499d8
a239d12e2d8f
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
39b556b7ac4f
04f246d85071
04f246d85071
cfbf547dd916
cfbf547dd916
cfbf547dd916
6c94eb9e91ee
04f246d85071
04f246d85071
ff16f71df6e8
ff16f71df6e8
ff16f71df6e8
ff16f71df6e8
ff16f71df6e8
ff16f71df6e8
ff16f71df6e8
a239d12e2d8f
04f246d85071
a239d12e2d8f
ff16f71df6e8
ff16f71df6e8
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
187d900d813d
1759a07630a8
04f246d85071
187d900d813d
187d900d813d
187d900d813d
187d900d813d
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
a239d12e2d8f
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
ac7228ec5030
04f246d85071
04f246d85071
2cdb554623e5
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
3a686ab1a82e
ac7228ec5030
8d68cca01f87
37a9b37499d8
37a9b37499d8
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
fdfe3c704550
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
6c94eb9e91ee
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
6c94eb9e91ee
39b556b7ac4f
a3474fd9cd4c
6c94eb9e91ee
04f246d85071
04f246d85071
6c94eb9e91ee
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
e8e20dd6d399
39b556b7ac4f
e8e20dd6d399
04f246d85071
04f246d85071
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
ac7228ec5030
01c5292653cc
ac7228ec5030
42ebbd06a1ea
04f246d85071
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
a239d12e2d8f
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
04f246d85071
04f246d85071
42ebbd06a1ea
39b556b7ac4f
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
04f246d85071
04f246d85071
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
42ebbd06a1ea
04f246d85071
6fa996f18357
6fa996f18357
6fa996f18357
6fa996f18357
6fa996f18357
42ebbd06a1ea
42ebbd06a1ea
a239d12e2d8f
42ebbd06a1ea
42ebbd06a1ea
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
04f246d85071
a239d12e2d8f
2cdb554623e5
04f246d85071
37a9b37499d8
37a9b37499d8
37a9b37499d8
04f246d85071
04f246d85071
37a9b37499d8
37a9b37499d8
37a9b37499d8
04f246d85071
04f246d85071
04f246d85071
4c458fd584d3
4c458fd584d3
57ed5e546b34
52d443790fdb
57ed5e546b34
57ed5e546b34
57ed5e546b34
57ed5e546b34
df808d52f3fc
35bb7102503c
35bb7102503c
35bb7102503c
b66db0a4a89b
04f246d85071
57ed5e546b34
39b556b7ac4f
39b556b7ac4f
fdfe3c704550
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
a3474fd9cd4c
6c94eb9e91ee
e8e20dd6d399
6eef5efcfb3c
6eef5efcfb3c
6eef5efcfb3c
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
e8e20dd6d399
6b7618cc5420
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
37a9b37499d8
6b7618cc5420
6b7618cc5420
7c5ca8d3993c
7c5ca8d3993c
7c5ca8d3993c
39b556b7ac4f
7c5ca8d3993c
6eef5efcfb3c
import os
import saml2
import saml2.saml
from django.utils.crypto import get_random_string


PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
BASE_DIR = PACKAGE_ROOT

DEBUG = True  # bool(int(os.environ.get("DEBUG", "1")))

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": os.path.join(PROJECT_ROOT, "dev.db"),
    }
}

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    }
}


ALLOWED_HOSTS = ['lca2018.org']

TIME_ZONE = "Australia/Sydney"
DATE_FORMAT = "j F Y"
LANGUAGE_CODE = "en-au"

SITE_ID = int(os.environ.get("SITE_ID", 1))
USE_I18N = True
USE_L10N = True
USE_TZ = True

MEDIA_ROOT = os.path.join(PACKAGE_ROOT, "site_media", "media")
MEDIA_URL = "/site_media/media/"

STATIC_ROOT = os.path.join(PROJECT_ROOT, "static", "distx")
STATIC_URL = "/static/dist/"

STATICFILES_DIRS = [
    os.path.join(PROJECT_ROOT, "static", "dist"),
]

STATICFILES_FINDERS = [
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
]

SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", get_random_string(length=64))

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [
            os.path.join(PACKAGE_ROOT, "templates"),
        ],
        "APP_DIRS": True,
        "OPTIONS": {
            "debug": DEBUG,
            "context_processors": [
                "django.contrib.auth.context_processors.auth",
                "django.core.context_processors.debug",
                "django.core.context_processors.i18n",
                "django.core.context_processors.media",
                "django.core.context_processors.static",
                "django.core.context_processors.tz",
                "django.core.context_processors.request",
                "django.contrib.messages.context_processors.messages",
                "pinax_theme_bootstrap.context_processors.theme",
                "symposion.reviews.context_processors.reviews",
            ],
        },
    },
]

MIDDLEWARE_CLASSES = [
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.auth.middleware.SessionAuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "debug_toolbar.middleware.DebugToolbarMiddleware",
    "reversion.middleware.RevisionMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    'pinaxcon.monkey_patch.MonkeyPatchMiddleware',
]

ROOT_URLCONF = "pinaxcon.urls"

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = "pinaxcon.wsgi.application"

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.messages",
    "django.contrib.sessions",
    "django.contrib.sites",
    "django.contrib.staticfiles",
    "django.contrib.humanize",
    "debug_toolbar",

    'djangosaml2',

    # theme
    "bootstrapform",
    "pinax_theme_bootstrap",

    # external
    "easy_thumbnails",
    "taggit",
    "reversion",
    "metron",
    "sitetree",
    "pinax.eventlog",

    # symposion
    "symposion",
    "symposion.conference",
    "symposion.proposals",
    "symposion.reviews",
    "symposion.schedule",
    "symposion.speakers",
    "symposion.sponsorship",
    "symposion.teams",

    # Registrasion
    "registrasion",

    # Registrasion-stipe
    "pinax.stripe",
    "django_countries",
    "registripe",

    # admin - required by registrasion ??
    "nested_admin",

    # project
    "pinaxcon",
    "pinaxcon.proposals",
    "pinaxcon.registrasion",
    "jquery",
    "djangoformsetjs",

    # testing
    "django_nose",
]

DEBUG_TOOLBAR_PANELS = [
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.request.RequestPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
]

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
    'SHOW_TOOLBAR_CALLBACK': lambda x: DEBUG,
}

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',
            'include_html': True,
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'symposion.request': {
            'handlers': ['mail_admins'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'DEBUG'
    },
}
FIXTURE_DIRS = [
    os.path.join(PROJECT_ROOT, "fixtures"),
]

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"

THEME_CONTACT_EMAIL = "team@lca2018.org"

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

LOGIN_URL = '/saml2/login/'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

CONFERENCE_ID = 1
PROPOSAL_FORMS = {
    "talk": "pinaxcon.proposals.forms.TalkProposalForm",
    "tutorial": "pinaxcon.proposals.forms.TutorialProposalForm",
    "miniconf": "pinaxcon.proposals.forms.MiniconfProposalForm",
    "sysadmin-miniconf": "pinaxcon.proposals.forms.SysAdminProposalForm",
    "openradio-miniconf": "pinaxcon.proposals.forms.RadioProposalForm",
    "wootconf-miniconf": "pinaxcon.proposals.forms.WootconfProposalForm",
    "writethedocs-miniconf": "pinaxcon.proposals.forms.WriteTheDocsProposalForm",
    "security-miniconf": "pinaxcon.proposals.forms.SecurityProposalForm",
    "kernel-miniconf": "pinaxcon.proposals.forms.KernelProposalForm",
    "games-miniconf": "pinaxcon.proposals.forms.GamesProposalForm",
    "testing-miniconf": "pinaxcon.proposals.forms.TestingProposalForm",
    "knowledge-miniconf": "pinaxcon.proposals.forms.KnowledgeProposalForm",
    "lawpolicy-miniconf": "pinaxcon.proposals.forms.LawProposalForm",
    "openhardware-miniconf": "pinaxcon.proposals.forms.OpenHardwareProposalForm",
}

# PINAX_PAGES_HOOKSET = "pinaxcon.hooks.PinaxPagesHookSet"
# PINAX_BOXES_HOOKSET = "pinaxcon.hooks.PinaxBoxesHookSet"

# Registrasion bits:
ATTENDEE_PROFILE_MODEL = "pinaxcon.registrasion.models.AttendeeProfile"
ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"
INVOICE_CURRENCY = "AUD"
PINAX_STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "your test public key")
PINAX_STRIPE_SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "your test secret key")
PINAX_STRIPE_SEND_EMAIL_RECEIPTS = False

ATTENDEE_PROFILE_FORM = "pinaxcon.registrasion.forms.ProfileForm"

# 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',
]

BASEDIR = os.path.dirname(os.path.abspath(__file__))
BASEDIR = os.path.join(BASEDIR, 'saml2')
SAML_ATTRIBUTE_MAPPING = {
    'uid': ('username', ),
    'mail': ('email', ),
    'givenName': ('first_name', ),
    'sn': ('last_name', ),
}
SAML_CONFIG = {
    'xmlsec_binary': '/usr/bin/xmlsec1',
    'entityid': 'http://example.com/saml2/metadata/',
    'attribute_map_dir': os.path.join(BASEDIR, 'attribute-maps'),
    'service': {
        'sp': {
            'name': 'Federated Django sample SP',
            'endpoints': {
                'assertion_consumer_service': [
                    'http://example.com/saml2/acs/',
                    ],
                'single_logout_service': [
                    ('http://example.com/saml2/ls/',
                     saml2.BINDING_HTTP_REDIRECT),
                    ('http://example.com/saml2/ls/post',
                     saml2.BINDING_HTTP_POST),
                    ],
                },
            'logout_requests_signed': True,
            'required_attributes': ['uid', 'mail', 'givenName', 'sn'],
            },
        },
    'metadata': {
        'local': [os.path.join(BASEDIR, 'remote_metadata.xml')],
        },
    'debug': 1,
    'key_file': os.path.join(BASEDIR, 'cert.key'),
    'cert_file': os.path.join(BASEDIR, 'cert.pem'),
    'encryption_keypairs': [{
        'key_file': os.path.join(BASEDIR, 'enc.key'),
        'cert_file': os.path.join(BASEDIR, 'enc.cert'),
    }],
    'contact_person': [
        {'given_name': os.environ.get("META_GIVEN_NAME", 'Bastard'),
         'sur_name': os.environ.get('META_FAM_NAME', 'Operator'),
         'company': os.environ.get('META_COMPANY', 'Corp1'),
         'email_address': os.environ.get('META_EMAIL', 'op@example.com'),
         'contact_type': 'technical'},
        ],
    'valid_for': 1,
}

# Production settings have their own file to override stuff here
try:
    LOCAL_SETTINGS
except NameError:
    try:
        from local_settings import *  # noqa: F401,F403
    except ImportError:
        pass