From 60b4197a9b7bba4d257066a011a5f1c5cb7ab6d1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 4 Oct 2016 19:45:47 +0200 Subject: Reorganize django files to have a more common conf --- .gitignore | 7 +- .../local_settings.py.gitlab-ci | 17 - .../local_settings.py.pip.sample | 42 --- chimere_example_project/local_settings.py.sample | 36 -- chimere_example_project/manage.py | 13 - chimere_example_project/settings.py | 393 --------------------- chimere_example_project/wsgi.py | 11 - local_settings.py.gitlab-ci | 17 + local_settings.py.pip.sample | 42 +++ local_settings.py.sample | 36 ++ manage.py | 12 + settings.py | 390 ++++++++++++++++++++ wsgi.py | 11 + 13 files changed, 510 insertions(+), 517 deletions(-) delete mode 100644 chimere_example_project/local_settings.py.gitlab-ci delete mode 100644 chimere_example_project/local_settings.py.pip.sample delete mode 100644 chimere_example_project/local_settings.py.sample delete mode 100755 chimere_example_project/manage.py delete mode 100644 chimere_example_project/settings.py delete mode 100644 chimere_example_project/wsgi.py create mode 100644 local_settings.py.gitlab-ci create mode 100644 local_settings.py.pip.sample create mode 100644 local_settings.py.sample create mode 100755 manage.py create mode 100644 settings.py create mode 100644 wsgi.py diff --git a/.gitignore b/.gitignore index 909e469..6321dcd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,11 +4,8 @@ *.mo *.ignore Makefile -example_project/settings.py -example_project/static/icons/* -example_project/static/upload/* -example_project/media/* -example_project/local_settings.py +media/* +local_settings.py chimere_env/ docs/en/build/ docs/fr/build/ diff --git a/chimere_example_project/local_settings.py.gitlab-ci b/chimere_example_project/local_settings.py.gitlab-ci deleted file mode 100644 index 5abd801..0000000 --- a/chimere_example_project/local_settings.py.gitlab-ci +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -SECRET_KEY = "Not so secret..." - -DATABASES = { - 'default': { - 'ENGINE': 'django.contrib.gis.db.backends.postgis', - 'NAME': 'gis', - 'USER': 'gis', - 'PASSWORD': 'gis', - 'HOST': 'iggdrasil-postgis-1.5', - 'PORT': '5432', - }, -} - -LOG_PATH = '/tmp/' diff --git a/chimere_example_project/local_settings.py.pip.sample b/chimere_example_project/local_settings.py.pip.sample deleted file mode 100644 index 747427f..0000000 --- a/chimere_example_project/local_settings.py.pip.sample +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# rename this file to local_settings.py and overload settings in this file - - -ROOT_URLCONF = 'chimere_example_project.urls' - -STATIC_URL = '/static/' - -CHIMERE_OSM_API_URL = 'api06.dev.openstreetmap.org' # test URL -CHIMERE_OSM_USER = 'osm_user' -CHIMERE_OSM_PASSWORD = 'osm_pass' - -# Make this string unique, and don't share it with anybody. -SECRET_KEY = '' - -ADMINS = ( - # ('Your Name', 'your_email@domain.com'), -) - -MANAGERS = ADMINS - -DATABASES = { - 'default': { - 'NAME': 'chimere', - 'ENGINE': 'django.contrib.gis.db.backends.postgis', - 'HOST': 'localhost', - 'PORT': '5432', - 'USER': 'postgres', - 'PASSWORD': '', - }, -} - -# if you want to use tinymce provide an URL or a relative path to find it -TINYMCE_URL = '' -JQUERY_JS_URLS = ( - '%sjquery/jquery.js' % STATIC_URL, - 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js') -JQUERY_CSS_URLS = ( - 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/' - 'base/jquery-ui.css',) diff --git a/chimere_example_project/local_settings.py.sample b/chimere_example_project/local_settings.py.sample deleted file mode 100644 index 33a4989..0000000 --- a/chimere_example_project/local_settings.py.sample +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# rename this file to local_settings.py and overload settings in this file - - -ROOT_URLCONF = 'chimere_example_project.urls' - -STATIC_URL = '/static/' - -CHIMERE_OSM_API_URL = 'api06.dev.openstreetmap.org' # test URL -CHIMERE_OSM_USER = 'osm_user' -CHIMERE_OSM_PASSWORD = 'osm_pass' - -# if you want to use tinymce provide an URL or a relative path to find it -TINYMCE_URL = '' - -# Make this string unique, and don't share it with anybody. -SECRET_KEY = '' - -ADMINS = ( - # ('Your Name', 'your_email@domain.com'), -) - -MANAGERS = ADMINS - -DATABASES = { - 'default': { - 'NAME': 'chimere', - 'ENGINE': 'django.contrib.gis.db.backends.postgis', - 'HOST': 'localhost', - 'PORT': '5432', - 'USER': 'postgres', - 'PASSWORD': '', - }, -} diff --git a/chimere_example_project/manage.py b/chimere_example_project/manage.py deleted file mode 100755 index 504c115..0000000 --- a/chimere_example_project/manage.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys - - -if __name__ == "__main__": - sys.path.insert(0, os.path.abspath('./../')) - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") - - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) diff --git a/chimere_example_project/settings.py b/chimere_example_project/settings.py deleted file mode 100644 index 09f5743..0000000 --- a/chimere_example_project/settings.py +++ /dev/null @@ -1,393 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Don't edit this file: -# overload all theses settings in your local_settings.py file - -import os -import sys -_ = 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/' - -STATICFILES_DIRS = ( - os.path.join(ROOT_PATH, "chimere_example_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"""

Attention

-

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.

""" - -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 = "

Attention

"\ - "

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.

" - -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' -] - -ROOT_URLCONF = 'chimere_example_project.urls' - -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 - -LOGFILE_NAME = "" -try: - from local_settings import * -except ImportError as e: - print('Unable to load local_settings.py:', e) - -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 'MAP_CSS_URLS' not in globals(): - global MAP_CSS_URLS - MAP_CSS_URLS = [STATIC_URL + "ol3/ol.css"] - -if 'MAP_JS_URLS' not in globals(): - global MAP_JS_URLS - if DEBUG: - MAP_JS_URLS = [STATIC_URL + "ol3/ol-debug.js"] - else: - MAP_JS_URLS = [STATIC_URL + "ol3/ol.js"] -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: - if '..' not in sys.path: - sys.path.insert(0, '..') - 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'], - } diff --git a/chimere_example_project/wsgi.py b/chimere_example_project/wsgi.py deleted file mode 100644 index 093cc8a..0000000 --- a/chimere_example_project/wsgi.py +++ /dev/null @@ -1,11 +0,0 @@ -import os, sys - -MAIN_PATH = os.path.realpath(os.path.dirname(__file__)) + "/.." -sys.path.append(MAIN_PATH) -if not "DJANGO_SETTINGS_MODULE" in os.environ or \ - not os.environ['DJANGO_SETTINGS_MODULE']: - # change with your project name - os.environ['DJANGO_SETTINGS_MODULE'] = 'mychimere_project.settings' -import django.core.handlers.wsgi -application = django.core.handlers.wsgi.WSGIHandler() - diff --git a/local_settings.py.gitlab-ci b/local_settings.py.gitlab-ci new file mode 100644 index 0000000..5abd801 --- /dev/null +++ b/local_settings.py.gitlab-ci @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +SECRET_KEY = "Not so secret..." + +DATABASES = { + 'default': { + 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'NAME': 'gis', + 'USER': 'gis', + 'PASSWORD': 'gis', + 'HOST': 'iggdrasil-postgis-1.5', + 'PORT': '5432', + }, +} + +LOG_PATH = '/tmp/' diff --git a/local_settings.py.pip.sample b/local_settings.py.pip.sample new file mode 100644 index 0000000..747427f --- /dev/null +++ b/local_settings.py.pip.sample @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# rename this file to local_settings.py and overload settings in this file + + +ROOT_URLCONF = 'chimere_example_project.urls' + +STATIC_URL = '/static/' + +CHIMERE_OSM_API_URL = 'api06.dev.openstreetmap.org' # test URL +CHIMERE_OSM_USER = 'osm_user' +CHIMERE_OSM_PASSWORD = 'osm_pass' + +# Make this string unique, and don't share it with anybody. +SECRET_KEY = '' + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +DATABASES = { + 'default': { + 'NAME': 'chimere', + 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'HOST': 'localhost', + 'PORT': '5432', + 'USER': 'postgres', + 'PASSWORD': '', + }, +} + +# if you want to use tinymce provide an URL or a relative path to find it +TINYMCE_URL = '' +JQUERY_JS_URLS = ( + '%sjquery/jquery.js' % STATIC_URL, + 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js') +JQUERY_CSS_URLS = ( + 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/' + 'base/jquery-ui.css',) diff --git a/local_settings.py.sample b/local_settings.py.sample new file mode 100644 index 0000000..33a4989 --- /dev/null +++ b/local_settings.py.sample @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# rename this file to local_settings.py and overload settings in this file + + +ROOT_URLCONF = 'chimere_example_project.urls' + +STATIC_URL = '/static/' + +CHIMERE_OSM_API_URL = 'api06.dev.openstreetmap.org' # test URL +CHIMERE_OSM_USER = 'osm_user' +CHIMERE_OSM_PASSWORD = 'osm_pass' + +# if you want to use tinymce provide an URL or a relative path to find it +TINYMCE_URL = '' + +# Make this string unique, and don't share it with anybody. +SECRET_KEY = '' + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +DATABASES = { + 'default': { + 'NAME': 'chimere', + 'ENGINE': 'django.contrib.gis.db.backends.postgis', + 'HOST': 'localhost', + 'PORT': '5432', + 'USER': 'postgres', + 'PASSWORD': '', + }, +} diff --git a/manage.py b/manage.py new file mode 100755 index 0000000..75c7cb7 --- /dev/null +++ b/manage.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 + +import os +import sys + + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") + + from django.core.management import execute_from_command_line + + execute_from_command_line(sys.argv) diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..7e7d85c --- /dev/null +++ b/settings.py @@ -0,0 +1,390 @@ +#!/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/' + +STATICFILES_DIRS = ( + os.path.join(ROOT_PATH, "chimere_example_project/chimere_example_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"""

Attention

+

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.

""" + +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 = "

Attention

"\ + "

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.

" + +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' +] + +ROOT_URLCONF = 'chimere_example_project.urls' + +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 + +LOGFILE_NAME = "" +try: + from local_settings import * +except ImportError as e: + print('Unable to load local_settings.py:', e) + +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 'MAP_CSS_URLS' not in globals(): + global MAP_CSS_URLS + MAP_CSS_URLS = [STATIC_URL + "ol3/ol.css"] + +if 'MAP_JS_URLS' not in globals(): + global MAP_JS_URLS + if DEBUG: + MAP_JS_URLS = [STATIC_URL + "ol3/ol-debug.js"] + else: + MAP_JS_URLS = [STATIC_URL + "ol3/ol.js"] +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'], + } diff --git a/wsgi.py b/wsgi.py new file mode 100644 index 0000000..093cc8a --- /dev/null +++ b/wsgi.py @@ -0,0 +1,11 @@ +import os, sys + +MAIN_PATH = os.path.realpath(os.path.dirname(__file__)) + "/.." +sys.path.append(MAIN_PATH) +if not "DJANGO_SETTINGS_MODULE" in os.environ or \ + not os.environ['DJANGO_SETTINGS_MODULE']: + # change with your project name + os.environ['DJANGO_SETTINGS_MODULE'] = 'mychimere_project.settings' +import django.core.handlers.wsgi +application = django.core.handlers.wsgi.WSGIHandler() + -- cgit v1.2.3