text: # -*- coding: utf-8 -*-
  """
  Django settings for fifo project.
  
  For more information on this file, see
  https://docs.djangoproject.com/en/dev/topics/settings/
  
  For the full list of settings and their values, see
  https://docs.djangoproject.com/en/dev/ref/settings/
  """
  from __future__ import absolute_import, unicode_literals
  
  import environ
  
  ROOT_DIR = environ.Path(__file__) - 3  # (/a/b/myfile.py - 3 = /)
  APPS_DIR = ROOT_DIR.path('fifo')
  
  env = environ.Env()
  
  # APP CONFIGURATION
  # ------------------------------------------------------------------------------
  DJANGO_APPS = (
      # Default Django apps:
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.sites',
      'django.contrib.messages',
      'django.contrib.staticfiles',
  
      # Useful template tags:
      # 'django.contrib.humanize',
  
      # Admin
      'django.contrib.admin',
  )
  THIRD_PARTY_APPS = (
      'crispy_forms',  # Form layouts
      'allauth',  # registration
      'allauth.account',  # registration
      'allauth.socialaccount',  # registration
      'rest_framework', # rest framework
  )
  
  # Apps specific for this project go here.
  LOCAL_APPS = (
      'fifo.users',  # custom users app
      'fifo.queues', # queues app
      'fifo.entries', # entries app
  )
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
  INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS
  
  # MIDDLEWARE CONFIGURATION
  # ------------------------------------------------------------------------------
  MIDDLEWARE_CLASSES = (
      # Make sure djangosecure.middleware.SecurityMiddleware is listed first
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.middleware.common.CommonMiddleware',
      'django.middleware.csrf.CsrfViewMiddleware',
      'django.contrib.auth.middleware.AuthenticationMiddleware',
      'django.contrib.messages.middleware.MessageMiddleware',
      'django.middleware.clickjacking.XFrameOptionsMiddleware',
  )
  
  # MIGRATIONS CONFIGURATION
  # ------------------------------------------------------------------------------
  MIGRATION_MODULES = {
      'sites': 'fifo.contrib.sites.migrations'
  }
  
  # DEBUG
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#debug
  DEBUG = env.bool('DJANGO_DEBUG', False)
  
  # FIXTURE CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FIXTURE_DIRS
  FIXTURE_DIRS = (
      str(APPS_DIR.path('fixtures')),
  )
  
  # EMAIL CONFIGURATION
  # ------------------------------------------------------------------------------
  EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.smtp.EmailBackend')
  
  # MANAGER CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#admins
  ADMINS = (
      ("""Carl-Philip Majgaard""", 'c.majgaard@gmail.com'),
  )
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#managers
  MANAGERS = ADMINS
  
  # DATABASE CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#databases
  # DATABASES = {
  #     # Raises ImproperlyConfigured exception if DATABASE_URL not in os.environ
  #     'default': env.db('DATABASE_URL', default='postgres:///fifo'),
  # }
  
  DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.postgresql',
          'NAME': 'fifodb',
          'USER': 'fifouser',
          'PASSWORD': '7xkKBfRbkMg9dk',
          'HOST': '127.0.0.1',
          'PORT': '5432',
      }
  }
  
  
  DATABASES['default']['ATOMIC_REQUESTS'] = True
  
  
  # GENERAL CONFIGURATION
  # ------------------------------------------------------------------------------
  # Local time zone for this installation. Choices can be found here:
  # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
  # although not all choices may be available on all operating systems.
  # In a Windows environment this must be set to your system time zone.
  TIME_ZONE = 'EST5EDT'
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#language-code
  LANGUAGE_CODE = 'en-us'
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#site-id
  SITE_ID = 1
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-i18n
  USE_I18N = True
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-l10n
  USE_L10N = True
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz
  USE_TZ = True
  
  # TEMPLATE CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#templates
  TEMPLATES = [
      {
          # See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATES-BACKEND
          'BACKEND': 'django.template.backends.django.DjangoTemplates',
          # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-dirs
          'DIRS': [
              str(APPS_DIR.path('templates')),
          ],
          'OPTIONS': {
              # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-debug
              'debug': DEBUG,
              # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-loaders
              # https://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types
              'loaders': [
                  'django.template.loaders.filesystem.Loader',
                  'django.template.loaders.app_directories.Loader',
              ],
              # See: https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors
              'context_processors': [
                  'django.template.context_processors.debug',
                  'django.template.context_processors.request',
                  'django.contrib.auth.context_processors.auth',
                  'django.template.context_processors.i18n',
                  'django.template.context_processors.media',
                  'django.template.context_processors.static',
                  'django.template.context_processors.tz',
                  'django.contrib.messages.context_processors.messages',
                  # Your stuff: custom template context processors go here
              ],
          },
      },
  ]
  
  # See: http://django-crispy-forms.readthedocs.org/en/latest/install.html#template-packs
  CRISPY_TEMPLATE_PACK = 'bootstrap3'
  
  # STATIC FILE CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#static-root
  STATIC_ROOT = str(ROOT_DIR('staticfiles'))
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url
  STATIC_URL = '/static/'
  
  # See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS
  STATICFILES_DIRS = (
      str(APPS_DIR.path('static')),
  )
  
  # See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-finders
  STATICFILES_FINDERS = (
      'django.contrib.staticfiles.finders.FileSystemFinder',
      'django.contrib.staticfiles.finders.AppDirectoriesFinder',
  )
  
  # MEDIA CONFIGURATION
  # ------------------------------------------------------------------------------
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root
  MEDIA_ROOT = str(APPS_DIR('media'))
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#media-url
  MEDIA_URL = '/media/'
  
  # URL Configuration
  # ------------------------------------------------------------------------------
  ROOT_URLCONF = 'config.urls'
  
  # See: https://docs.djangoproject.com/en/dev/ref/settings/#wsgi-application
  WSGI_APPLICATION = 'config.wsgi.application'
  
  # AUTHENTICATION CONFIGURATION
  # ------------------------------------------------------------------------------
  AUTHENTICATION_BACKENDS = (
      'django.contrib.auth.backends.ModelBackend',
      'allauth.account.auth_backends.AuthenticationBackend',
  )
  
  # Some really nice defaults
  ACCOUNT_AUTHENTICATION_METHOD = 'email'
  ACCOUNT_EMAIL_REQUIRED = True
  ACCOUNT_EMAIL_VERIFICATION = 'none'
  ACCOUNT_UNIQUE_EMAIL = True
  ACCOUNT_USERNAME_REQUIRED = False
  
  ACCOUNT_ALLOW_REGISTRATION = env.bool('DJANGO_ACCOUNT_ALLOW_REGISTRATION', True)
  ACCOUNT_ADAPTER = 'fifo.users.adapters.AccountAdapter'
  SOCIALACCOUNT_ADAPTER = 'fifo.users.adapters.SocialAccountAdapter'
  ACCOUNT_SIGNUP_FORM_CLASS = 'fifo.users.forms.SignupForm'
  
  # Custom user app defaults
  # Select the correct user model
  AUTH_USER_MODEL = 'users.User'
  LOGIN_REDIRECT_URL = 'home'
  LOGIN_URL = 'home'
  
  # SLUGLIFIER
  AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'
  
  
  # Location of root django.contrib.admin URL, use {% url 'admin:index' %}
  ADMIN_URL = r'^admin/'
  
  # Your common stuff: Below this line define 3rd party library settings
  
  
  # REST_FRAMEWORK = {
  #     # Use Django's standard `django.contrib.auth` permissions,
  #     # or allow read-only access for unauthenticated users.
  #     'DEFAULT_PERMISSION_CLASSES': [
  #         'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
  #     ]
  # }
  