diff options
Diffstat (limited to 'settings.py')
-rw-r--r-- | settings.py | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..39e7ceb --- /dev/null +++ b/settings.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Don't edit this file: +# overload all theses settings in your local_settings.py file + +import os +_ = lambda s: s + +DEBUG = False +TEMPLATE_DEBUG = DEBUG +MOBILE_TEST = False +DEBUG_TOOLBAR = False +SQL_DEBUG = False + + +# Django settings for chimere project. +PROJECT_NAME = 'Chimere' +ROOT_PATH = os.path.realpath(os.path.dirname(__file__)) + "/" + +EMAIL_HOST = 'localhost' +CONTACT_EMAIL = '' +STATIC_URL = '/static/' +STATIC_ROOT = ROOT_PATH + 'static/' + +TINYMCE_URL = '' +JQUERY_JS_URLS = ('/javascript/jquery/jquery.js', + '/javascript/jquery-ui/jquery-ui.js',) +JQUERY_CSS_URLS = ('/javascript/jquery-ui/css/smoothness/jquery-ui.css', + '/javascript/jquery-ui/themes/base/jquery.ui.all.css') + +GPSBABEL = '/usr/bin/gpsbabel' +# simplify with an error of 5 meters +GPSBABEL_OPTIONS = 'simplify,crosstrack,error=0.005k' +# GPSBABEL_OPTIONS = 'simplify,count=100' + +# # chimere specific ## +CHIMERE_DEFAULT_ZOOM = 10 +# center of the map +CHIMERE_DEFAULT_CENTER = (-1.679444, 48.114722) +# projection used by the main map +# most public map providers use spherical mercator : 900913 +CHIMERE_EPSG_PROJECTION = 900913 +# projection displayed to the end user by openlayers +# chimere use the same projection to save its data in the database +CHIMERE_EPSG_DISPLAY_PROJECTION = 4326 +# display of shortcuts for areas +CHIMERE_DISPLAY_AREAS = True +# number of day before an event to display +# if equal to 0: disable event management +# if you change this value from 0 to a value in a production environnement +# don't forget to run the upgrade.py script to create appropriate fields in +# the database +CHIMERE_DAYS_BEFORE_EVENT = 30 +# Dated events must usualy be checked as 'front page' to be displayed +# on front page - set CHIMERE_ALL_DATED_ARE_FRONT to True if you want to +# display all events on front page +CHIMERE_ALL_DATED_ARE_FRONT = True +# allow feeds +CHIMERE_FEEDS = True +# display a directory of items +CHIMERE_DIRECTORY = True + +# content inside the popup or on a specific window +CHIMERE_CONTENT_INSIDE_POPUP = False + +# display picture inside the description by default or inside a galery? +CHIMERE_MINIATURE_BY_DEFAULT = False + +# JS definition of the default map (for admin and when no map are defined in +# the application) +# cf. OpenLayers documentation for more details + +# OSM mapnik map +CHIMERE_DEFAULT_MAP_LAYER = """new ol.layer.Tile({ + style: 'Road', + source: new ol.source.OSM() +})""" + +CHIMERE_XAPI_URL = 'http://open.mapquestapi.com/xapi/api/0.6/' +CHIMERE_OSM_API_URL = 'api06.dev.openstreetmap.org' # test URL +CHIMERE_OSM_USER = 'test' +CHIMERE_OSM_PASSWORD = 'test' + +# encoding for shapefile import +CHIMERE_SHAPEFILE_ENCODING = 'ISO-8859-1' + +# as the web server need to be reloaded when property models are changed +# it could be a good idea to hide it to an admin who could'nt do that +CHIMERE_HIDE_PROPERTYMODEL = False + +# clustering of markers +CHIMERE_ENABLE_CLUSTERING = False + +# enable routing in Chimere +CHIMERE_ENABLE_ROUTING = False + +CHIMERE_ROUTING_TRANSPORT = (('foot', _(u"Foot")), + ('bicycle', _(u"Bicycle")), + ('motorcar', _(u"Motorcar")), + ) + +CHIMERE_ROUTING_SPEEDS = { + 'foot': ((3, _(u"You are walking slowly")), + (6, _(u"You are walking pretty quickly")),), + 'bicycle': ((16, _(u"You are riding pretty slowly")), + (22, _(u"You are riding pretty quickly")),) +} + +# available routing engine: 'routino' +CHIMERE_ROUTING_ENGINE = { + 'ENGINE': 'routino', + 'PATH': '/usr/local/src/web/bin/router', + 'DB_PATH': '/var/local/routino/', +} + +CHIMERE_ROUTING_FAIL_MESSAGE = u"""<h3 class='warn'>Attention</h3> +<p>Le moteur de routage a echoue dans sa recherche de trajet. Les points de +depart ou d'arrivee sont peut-etre trop loin d'une voie existante ou le trajet +est trop dangereux.</p>""" + +NOMINATIM_URL = 'http://nominatim.openstreetmap.org/search' + +# Fields used to geolocate with nominatim +# (http://wiki.openstreetmap.org/wiki/Nominatim#Search) +# from external sources. Key must be a valid parameters for Nominatim. If given +# value are property slugs use the corresponding value otherwise use it as a +# fixed value +# e.g : {'street':'address', 'city':'city', 'country':u'France'} + +CHIMERE_NOMINATIM_FIELDS = {'street': 'address', 'city': 'city', + 'country': u'France'} +MOBILE_TEST = False +MOBILE_DOMAINS = [] + +# thumbnail +CHIMERE_THUMBS_SCALE_HEIGHT = 250 +CHIMERE_THUMBS_SCALE_WIDTH = None + +# search engine +CHIMERE_SEARCH_ENGINE = False +HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', + 'URL': 'http://127.0.0.1:8080/solr', + 'INCLUDE_SPELLING': True, + }, +} +HAYSTACK_SEARCH_RESULTS_PER_PAGE = 12 +HAYSTACK_AUTOCOMPLETE = False + +# length of short description +CHIMERE_SHORT_DESC_LENGTH = 400 + +CHIMERE_MODIF_EMAIL = _(u"Hello, I would like to propose you a modification " + u"about this item: ") + +CHIMERE_ROUTING_WARN_MESSAGE = "<h3 class='warn'>Attention</h3>"\ + "<p>Cet itinéraire comporte des passages dangereux, nous vous conseillons"\ + " de modifier votre recherche, en ajoutant par exemple un ou des points "\ + "d'étape à votre parcours pour éviter les zones de danger.</p>" + +CHIMERE_CSV_ENCODING = 'ISO-8859-1' + +CHIMERE_DEFAULT_ACTIONS = ['view', 'contribute'] +CHIMERE_DEFAULT_ACTION_LABEL = [u"Cartes", u"Ajouter un element"] +# generic contact email +CONTACT_EMAIL = '' + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +DATABASES = { + 'default': { + 'NAME': 'chimere', + 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'HOST': 'postgres', + 'PORT': '5432', + 'USER': 'chimere', + 'PASSWORD': 'chimere', + }, +} + + +# Local time zone for this installation. Choices can be found here: +# http://www.postgresql.org/docs/8.1/static/datetime-keywords.html +# #DATETIME-TIMEZONE-SET-TABLE +# although not all variations may be possible on all operating systems. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'Europe/Paris' + +# Language code for this installation. All choices can be found here: +# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes +# http://blogs.law.harvard.edu/tech/stories/storyReader$15 +LANGUAGE_CODE = 'fr-FR' + +SITE_ID = 1 + +# If you set this to False, Django will make some optimizations so as not +# to load the internationalization machinery. +USE_I18N = True +USE_L10N = True + +# Absolute path to the directory that holds media. +# Example: "/home/media/media.lawrence.com/" +MEDIA_ROOT = ROOT_PATH + 'media/' + +# URL that handles the media served from MEDIA_ROOT. +# Example: "http://media.lawrence.com" +MEDIA_URL = '/media/' + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', +) + +MIDDLEWARE_CLASSES = [ + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.admindocs.middleware.XViewMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware' +] + +TEMPLATE_DIRS = [ + ROOT_PATH + 'templates', +] + +TEMPLATE_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.contrib.messages.context_processors.messages", + "django.core.context_processors.request", +) + +INSTALLED_APPS = [ + 'django.contrib.auth', + 'django.contrib.admin', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'django.contrib.gis', + 'django.contrib.staticfiles', +] + +# celery +try: + import djcelery + djcelery.setup_loader() + BROKER_URL = 'django://' + INSTALLED_APPS += ['kombu.transport.django', + 'djcelery'] +except ImportError: + # some import and export will not be available + pass + +INSTALLED_APPS += [ + 'chimere', +] + +LOG_PATH = '/var/log/django/' +MOBILE_DOMAINS = [] # if you have specific domains for mobile access + +PROJECT_APP = 'chimere_example_project' + +LOGFILE_NAME = "" +try: + from local_settings import * +except ImportError as e: + print('Unable to load local_settings.py:', e) + + +ROOT_URLCONF = PROJECT_APP + '.urls' + +INSTALLED_APPS.insert(INSTALLED_APPS.index('chimere'), PROJECT_APP) + +if CHIMERE_SEARCH_ENGINE: + INSTALLED_APPS.append('haystack') + +if 'LOGGING' not in globals(): + global LOGGING + LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + # Include the default Django email handler for errors + # This is what you'd get without configuring logging at all. + 'mail_admins': { + 'class': 'django.utils.log.AdminEmailHandler', + 'level': 'ERROR', + # But the emails are plain text by default - HTML is nicer + 'include_html': True, + }, + # Log to a text file that can be rotated by logrotate + 'logfile': { + 'class': 'logging.handlers.WatchedFileHandler', + 'filename': LOG_PATH + 'chimere.log' + }, + }, + 'loggers': { + # Again, default Django configuration to email unhandled exceptions + 'django.request': { + 'handlers': ['mail_admins'], + 'level': 'ERROR', + 'propagate': True, + }, + # Might as well log any errors anywhere else in Django + 'django': { + 'handlers': ['logfile'], + 'level': 'ERROR', + 'propagate': False, + }, + # Your own app + # this assumes all your logger names start with "myapp." + 'chimere': { + 'handlers': ['logfile'], + 'level': 'WARNING', # Or maybe INFO or DEBUG + 'propogate': False + }, + }, + } + +if LOGFILE_NAME: + LOGGING['handlers']['logfile']['filename'] = LOGFILE_NAME + +if 'CHIMERE_SHARE_NETWORKS' not in globals(): + # after the locals to get the right STATIC_URL + + # share with + global CHIMERE_SHARE_NETWORKS + CHIMERE_SHARE_NETWORKS = ( + ("Email", 'mailto:?subject=%(text)s&body=%(url)s', + STATIC_URL + 'chimere/img/email.png'), + ("Facebook", 'http://www.facebook.com/sharer.php?t=%(text)s&u=%(url)s', + STATIC_URL + 'chimere/img/facebook.png'), + ("Twitter", 'http://twitter.com/home?status=%(text)s %(url)s', + STATIC_URL + 'chimere/img/twitter.png'), + ) + +if 'OSM_MOBILE_JS_URLS' not in globals(): + global OSM_MOBILE_URLS + OSM_JS_MOBILE_URLS = [ + STATIC_URL + "openlayers/OpenLayers.mobile.js", + STATIC_URL + "openlayers/SimplePanZoom.js", + "http://www.openstreetmap.org/openlayers/OpenStreetMap.js"] + +if DEBUG_TOOLBAR: + global DEBUG_TOOLBAR_PANELS + global DEBUG_TOOLBAR_CONFIG + MIDDLEWARE_CLASSES += ['debug_toolbar.middleware.DebugToolbarMiddleware'] + INSTALLED_APPS += ['debug_toolbar'] + 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} + + +if SQL_DEBUG: + LOGGING['loggers']['django.db.backends'] = { + 'level': 'DEBUG', + 'handlers': ['console'], + } |