-
Notifications
You must be signed in to change notification settings - Fork 2
/
siteSettings.py
206 lines (167 loc) · 7 KB
/
siteSettings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
# __BEGIN_LICENSE__
# Copyright (C) 2008-2010 United States Government as represented by
# the Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
# __END_LICENSE__
# siteSettings.py -- site default settings
#
# This contains the default settings for the site-level django app. This will
# override any application-default settings and define the default set of
# installed applications. This should be a full settings.py file which needs
# minimal overrides by the settings.py file for the application to actually
# function.
#
# As a bare minimum, please edit INSTALLED_APPS!
#
# This file *should* be checked into git.
from django.conf import global_settings
DEBUG = True
TEMPLATE_DEBUG = DEBUG
import os
import sys
#APP = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
#PROJ_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJ_ROOT = os.path.abspath(os.path.dirname(__file__))
SCRIPT_NAME = os.environ['DJANGO_SCRIPT_NAME'] # set in sourceme.sh
USING_DJANGO_DEV_SERVER = ('runserver' in sys.argv)
if USING_DJANGO_DEV_SERVER:
# django dev server deployment won't work with other SCRIPT_NAME settings
SCRIPT_NAME = '/'
USE_STATIC_SERVE = USING_DJANGO_DEV_SERVER
# Python path is agnostic to what the site-level dir is. It also prefers the
# checked-out version of an app over the standard python install locations.
sys.path.append(PROJ_ROOT)
ADMINS = (
# ('mfsmith3', '[email protected]'),
)
MANAGERS = ADMINS
# 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.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Los_Angeles'
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'
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
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = os.path.join(PROJ_ROOT, "data", "")
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = SCRIPT_NAME + "data/"
# Absolute path to the directory that holds data. This is different than media
# in that it's uploaded/processed data that's not needed for the operation of
# the site, but may need to be network-accessible, or be linked to from the
# database. Examples: images, generate kml files, etc.
# Example: "/data/"
DATA_ROOT = os.path.join(PROJ_ROOT, "data", "")
DATA_DIR = DATA_ROOT # some legacy modules use the DATA_DIR name
# URL that handles the data served from DATA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://data.lawrence.com", "http://example.com/data/"
DATA_URL = SCRIPT_NAME + "data/"
STATIC_ROOT = os.path.join(PROJ_ROOT, "build", "static", "")
STATIC_URL = SCRIPT_NAME + 'static/'
# Awesome. Needed in Django 1.3 but causes deprecation warning in Django 1.4.
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
# List of callables that know how to import templates from various sources.
#TEMPLATE_LOADERS = global_settings.TEMPLATE_LOADERS + (
#)
MIDDLEWARE_CLASSES = (
'geocamUtil.middleware.LogErrorsMiddleware',
) + global_settings.MIDDLEWARE_CLASSES + (
'django.middleware.gzip.GZipMiddleware',
'geocamUtil.middleware.SecurityMiddleware',
)
ROOT_URLCONF = 'urls'
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
# Note: the order of INSTALLED_APPS affects the search order for
# templates. We suggest putting your apps above standard apps
# so your apps can override templates as needed.
INSTALLED_APPS = (
'mapFastenApp',
'geocamTiePoint',
'geocamUtil',
'django_digest',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
)
GEOCAM_UTIL_SECURITY_ENABLED = False # not USING_DJANGO_DEV_SERVER
GEOCAM_UTIL_SECURITY_SSL_REQUIRED_BY_DEFAULT = False
GEOCAM_UTIL_SECURITY_REQUIRE_ENCRYPTED_PASSWORDS = False
GEOCAM_UTIL_SECURITY_LOGIN_REQUIRED_BY_DEFAULT = 'write'
GEOCAM_UTIL_SECURITY_ACCEPT_AUTH_TYPES = ('basic',)
# note: LOGIN_URL and LOGOUT_URL will not be respected on app engine when using
# google's integrated auth system. LOGIN_REDIRECT_URL is respected.
LOGIN_URL = SCRIPT_NAME + 'accounts/login/'
LOGOUT_URL = SCRIPT_NAME + 'accounts/logout/'
LOGIN_REDIRECT_URL = SCRIPT_NAME
SITE_TITLE = 'MapFasten'
GEOCAM_UTIL_INSTALLER_USE_SYMLINKS = True
USING_APP_ENGINE_DEV_SERVER = (os.getenv('SERVER_SOFTWARE', '').startswith('Development/')
or os.getenv('SETTINGS_MODE') == 'devappengine')
USING_APP_ENGINE_REAL = (os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine')
or os.getenv('SETTINGS_MODE') == 'appengine')
USING_APP_ENGINE = USING_APP_ENGINE_DEV_SERVER or USING_APP_ENGINE_REAL
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS
if USING_APP_ENGINE:
# sqlite doesn't work in real app engine environment, use google cloud sql
DATABASES = {
'default': {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': 'mapfasten1:mapfasten', # the cloud sql "instance name"
'NAME': 'make your own dev sandbox and overwrite this value in settings.py',
}
}
else:
# use local sqlite database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(PROJ_ROOT, 'dev.db')
}
}
if USING_APP_ENGINE_REAL:
DATABASES['default']['NAME'] = 'mapfasten'
if USING_APP_ENGINE:
DEFAULT_FILE_STORAGE = 'geocamAppEngine.storage.BlobStorage'
MIDDLEWARE_CLASSES += (
'geocamAppEngine.middleware.AuthenticationMiddleware',
'mapFastenApp.middleware.ClosedBetaMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS += (
'geocamAppEngine.context_processors.AuthUrlsContextProcessor',
)
else:
TEMPLATE_CONTEXT_PROCESSORS += (
'geocamUtil.context_processors.AuthUrlsContextProcessor.AuthUrlsContextProcessor',
)
# easy zero-install caching setup, fine with django dev server
SIMPLE_CACHE_ = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT': 0
}
}
# real caching setup, works better in multi-process environment
MEMCACHED_CACHE_ = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
'TIMEOUT': 0
}
}
CACHES = SIMPLE_CACHE_