Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
275 lines (234 sloc) 9.13 KB
"""
Django settings for hypermap project.
For more information on this file, see
https://docs.djangoproject.com/en/1.6/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.6/ref/settings/
"""
# Build paths inside the project like this: os.path.join(PROJECT_DIR, ...)
import os
import os.path
import sys
from distutils.util import strtobool
import dj_database_url
import django_cache_url
TESTING = len(sys.argv) > 1 and sys.argv[1] == 'test'
PROJECT_DIR = os.path.abspath(os.path.join(__file__, os.pardir))
BASE_URL = os.getenv('BASE_URL', 'localhost')
BASE_PORT = os.getenv('BASE_PORT', '8000')
SITE_URL = os.getenv('SITE_URL', 'http://%s:%s' % (BASE_URL, BASE_PORT))
ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', [BASE_URL, ])
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.getenv('SECRET_KEY',
'mc0+7x(mor+4-acs$m-w6qj(i&^*6uiyb+6v^)i4w(fo*8qgu5')
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = strtobool(os.getenv('DEBUG', 'False'))
DEBUG = True
TEMPLATE_DEBUG = strtobool(os.getenv('TEMPLATE_DEBUG', 'False'))
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django_celery_results',
'django_celery_beat',
'taggit',
'django_extensions',
'djmp',
'hypermap.aggregator',
'hypermap.dynasty',
'hypermap.search',
'hypermap.search_api',
'rest_framework',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.static',
"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.request",
'hypermap.context_processors.resource_urls',
)
ROOT_URLCONF = 'hypermap.urls'
WSGI_APPLICATION = 'hypermap.wsgi.application'
DATABASE_URL = os.getenv('DATABASE_URL', 'sqlite:///development.db')
DATABASES = {}
DATABASES['default'] = dj_database_url.parse(DATABASE_URL, conn_max_age=600)
# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/
LANGUAGE_CODE = 'it'
LANGUAGES = (
('en', 'English'),
('it', 'Italiano'),
('zh', 'Chinese'),
)
LOCALE_PATHS = (
os.path.join(PROJECT_DIR, "hypermap/locale"),
)
TIME_ZONE = os.getenv('TIME_ZONE', 'UTC')
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/
STATIC_ROOT = os.getenv('STATIC_ROOT', os.path.join(PROJECT_DIR, 'static_root'))
STATIC_URL = os.getenv('STATIC_URL', '/static/')
STATICFILES_DIRS = os.getenv('STATICFILES_DIRS',
(os.path.join(PROJECT_DIR, "static"),)
)
# media files
MEDIA_ROOT = os.getenv('MEDIA_ROOT', os.path.join(PROJECT_DIR, 'media'))
MEDIA_URL = os.getenv('MEDIA_URL', '/media/')
CELERY_ALWAYS_EAGER = strtobool(os.getenv('CELERY_ALWAYS_EAGER', 'False'))
CELERY_DEFAULT_EXCHANGE = os.getenv('CELERY_DEFAULT_EXCHANGE', 'hypermap')
# Celery and RabbitMQ stuff
CELERY_RESULT_BACKEND = os.getenv('CELERY_RESULT_BACKEND', 'django-db')
CELERY_CACHE_BACKEND = os.getenv('CELERY_CACHE_BACKEND', 'memory')
CELERYD_PREFETCH_MULTIPLIER = int(os.getenv('CELERYD_PREFETCH_MULTIPLIER', '25'))
CELERY_TIMEZONE = os.getenv('CELERY_TIMEZONE', 'UTC')
BROKER_URL = os.getenv('BROKER_URL', 'amqp://guest:guest@localhost:5672//')
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(message)s',
},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'null': {
'level': 'ERROR',
'class': 'django.utils.log.NullHandler',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'mail_admins': {
'level': 'ERROR', 'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
},
'celery': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
},
"loggers": {
"django": {
"handlers": ["console"], "level": "ERROR", },
"hypermap": {
"handlers": ["console"], "level": "DEBUG", },
"owslib": {
"handlers": ["console"], "level": "ERROR", },
"celery": {
"handlers": ["console"], "level": "DEBUG", },
"pycsw": {
"handlers": ["console"], "level": "DEBUG", },
}
}
# taggit
TAGGIT_CASE_INSENSITIVE = strtobool(os.getenv('TAGGIT_CASE_INSENSITIVE', 'True'))
# pycsw settings
REGISTRY_PYCSW = {
'server': {
# 'home': '.',
'url': '%s/search/csw' % SITE_URL.rstrip('/'),
'encoding': 'UTF-8',
'language': LANGUAGE_CODE,
'maxrecords': '10',
'pretty_print': 'true',
# 'domainquerytype': 'range',
'domaincounts': 'true',
'profiles': 'apiso'
},
'manager': {
# authentication/authorization is handled by Django
'transactions': 'false',
'allowed_ips': '*',
# 'csw_harvest_pagesize': '10',
},
'repository': {
'source': 'hypermap.search.pycsw_plugin.HHypermapRepository',
'mappings': 'hypermap.search.pycsw_local_mappings',
},
'metadata:main': {
'identification_title': 'HHypermap Catalogue',
'identification_abstract': (
'HHypermap (Harvard Hypermap) Supervisor is an application that manages '
'OWS, Esri REST, and other types of map service harvesting, and maintains uptime statistics for '
'services and layers.'
),
'identification_keywords': 'sdi,catalogue,discovery,metadata,HHypermap',
'identification_keywords_type': 'theme',
'identification_fees': 'None',
'identification_accessconstraints': 'None',
'provider_name': 'Organization Name',
'provider_url': SITE_URL,
'contact_name': 'Lastname, Firstname',
'contact_position': 'Position Title',
'contact_address': 'Mailing Address',
'contact_city': 'City',
'contact_stateorprovince': 'Administrative Area',
'contact_postalcode': 'Zip or Postal Code',
'contact_country': 'Country',
'contact_phone': '+xx-xxx-xxx-xxxx',
'contact_fax': '+xx-xxx-xxx-xxxx',
'contact_email': 'Email Address',
'contact_url': 'Contact URL',
'contact_hours': 'Hours of Service',
'contact_instructions': 'During hours of service. Off on weekends.',
'contact_role': 'pointOfContact'
}
}
# we need to get rid of this once we figure out how to bypass the broker in tests
REGISTRY_SKIP_CELERY = strtobool(os.getenv('REGISTRY_SKIP_CELERY', 'False'))
# For csw-transactions is not necessary to harvest layers for created services.
REGISTRY_HARVEST_SERVICES = strtobool(os.getenv('REGISTRY_HARVEST_SERVICES', 'True'))
# WorldMap Service credentials (override this in local_settings or _ubuntu in production)
REGISTRY_WORLDMAP_USERNAME = os.getenv('REGISTRY_WORLDMAP_USERNAME', 'hypermap')
REGISTRY_WORLDMAP_PASSWORD = os.getenv('REGISTRY_WORLDMAP_PASSWORD', 'secret')
# hypermap registry settings
# If it's > 0, only reads n layers from service, for debugging.
REGISTRY_LIMIT_LAYERS = int(os.getenv('REGISTRY_LIMIT_LAYERS', '-1'))
REGISTRY_MAPPING_PRECISION = os.getenv("REGISTRY_MAPPING_PRECISION", "500m")
MAPPROXY_CACHE_DIR = os.getenv('MAPPROXY_CACHE_DIR', '/tmp/mapproxy/')
MAPPROXY_CONFIG = os.path.join(MEDIA_ROOT, 'mapproxy_config')
# REGISTRY_SEARCH_URL Examples:
# solr+http://127.0.0.1:8983/solr/search
# elasticsearch+http://localhost:9200/
# elasticsearch+https://user:pass/domain:port/
REGISTRY_SEARCH_URL = os.getenv('REGISTRY_SEARCH_URL', 'solr+http://solr:8983')
REGISTRY_SEARCH_BATCH_SIZE = int(os.getenv('REGISTRY_SEARCH_BATCH_SIZE', 50))
SEARCH_TYPE = REGISTRY_SEARCH_URL.split('+')[0]
SEARCH_URL = REGISTRY_SEARCH_URL.split('+')[1]
# Read cache information from CACHE_URL
CACHES = {'default': django_cache_url.config()}
CACHES['default']['TIMEOUT'] = None
# other hhypermap settings
PAGINATION_DEFAULT_PAGINATION = int(os.getenv('PAGINATION_DEFAULT_PAGINATION', 10))
You can’t perform that action at this time.