|
|
@ -0,0 +1,205 @@ |
|
|
|
#!/usr/bin/env python |
|
|
|
# vim: ai ts=4 sts=4 et sw=4 |
|
|
|
# encoding=utf-8 |
|
|
|
|
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
# MAIN CONFIGURATION # |
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
|
|
|
|
|
|
|
|
# you should configure your database here before doing any real work. |
|
|
|
# see: http://docs.djangoproject.com/en/dev/ref/settings/#databases |
|
|
|
DATABASES = { |
|
|
|
"default": { |
|
|
|
"ENGINE": "django.db.backends.postgresql_psycopg2", |
|
|
|
"NAME": "smsbest", |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# the rapidsms backend configuration is designed to resemble django's |
|
|
|
# database configuration, as a nested dict of (name, configuration). |
|
|
|
# |
|
|
|
# the ENGINE option specifies the module of the backend; the most common |
|
|
|
# backend types (for a GSM modem or an SMPP server) are bundled with |
|
|
|
# rapidsms, but you may choose to write your own. |
|
|
|
# |
|
|
|
# all other options are passed to the Backend when it is instantiated, |
|
|
|
# to configure it. see the documentation in those modules for a list of |
|
|
|
# the valid options for each. |
|
|
|
INSTALLED_BACKENDS = { |
|
|
|
#"att": { |
|
|
|
# "ENGINE": "rapidsms.backends.gsm", |
|
|
|
# "PORT": "/dev/ttyUSB0" |
|
|
|
#}, |
|
|
|
#"verizon": { |
|
|
|
# "ENGINE": "rapidsms.backends.gsm, |
|
|
|
# "PORT": "/dev/ttyUSB1" |
|
|
|
#}, |
|
|
|
"atlas": { |
|
|
|
"ENGINE": "rapidsms.backends.http", |
|
|
|
"host": "0.0.0.0", |
|
|
|
"port": 8086, |
|
|
|
"gateway_url": "http://atlas.gnowledge.org:8001/gateway/send", |
|
|
|
"params_outgoing": "secret=something+secret&to=%(phone_number)s&txt=%(message)s", |
|
|
|
"params_incoming": "from=%(phone_number)s&txt=%(message)s" |
|
|
|
|
|
|
|
}, |
|
|
|
"message_tester": { |
|
|
|
"ENGINE": "rapidsms.backends.bucket", |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# to help you get started quickly, many django/rapidsms apps are enabled |
|
|
|
# by default. you may wish to remove some and/or add your own. |
|
|
|
INSTALLED_APPS = [ |
|
|
|
|
|
|
|
# the essentials. |
|
|
|
"django_nose", |
|
|
|
"djtables", |
|
|
|
"rapidsms", |
|
|
|
|
|
|
|
# common dependencies (which don't clutter up the ui). |
|
|
|
"rapidsms.contrib.handlers", |
|
|
|
"rapidsms.contrib.ajax", |
|
|
|
|
|
|
|
# enable the django admin using a little shim app (which includes |
|
|
|
# the required urlpatterns), and a bunch of undocumented apps that |
|
|
|
# the AdminSite seems to explode without. |
|
|
|
"django.contrib.sites", |
|
|
|
"django.contrib.auth", |
|
|
|
"django.contrib.admin", |
|
|
|
"django.contrib.sessions", |
|
|
|
"django.contrib.contenttypes", |
|
|
|
|
|
|
|
# the rapidsms contrib apps. |
|
|
|
# "rapidsms.contrib.default", |
|
|
|
# "rapidsms.contrib.export", |
|
|
|
"rapidsms.contrib.httptester", |
|
|
|
# "rapidsms.contrib.locations", |
|
|
|
"rapidsms.contrib.messagelog", |
|
|
|
"rapidsms.contrib.messaging", |
|
|
|
"rapidsms.contrib.registration", |
|
|
|
# "rapidsms.contrib.scheduler", |
|
|
|
# "rapidsms.contrib.echo", |
|
|
|
|
|
|
|
"mumbai" |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# this rapidsms-specific setting defines which views are linked by the |
|
|
|
# tabbed navigation. when adding an app to INSTALLED_APPS, you may wish |
|
|
|
# to add it here, also, to expose it in the rapidsms ui. |
|
|
|
RAPIDSMS_TABS = [ |
|
|
|
("rapidsms.contrib.messagelog.views.message_log", "Message Log"), |
|
|
|
("rapidsms.contrib.registration.views.registration", "Registration"), |
|
|
|
("rapidsms.contrib.messaging.views.messaging", "Messaging"), |
|
|
|
# ("rapidsms.contrib.locations.views.locations", "Map"), |
|
|
|
# ("rapidsms.contrib.scheduler.views.index", "Event Scheduler"), |
|
|
|
("rapidsms.contrib.httptester.views.generate_identity", "Message Tester"), |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
# BORING CONFIGURATION # |
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
|
|
|
|
|
|
|
|
# debug mode is turned on as default, since rapidsms is under heavy |
|
|
|
# development at the moment, and full stack traces are very useful |
|
|
|
# when reporting bugs. don't forget to turn this off in production. |
|
|
|
DEBUG = TEMPLATE_DEBUG = True |
|
|
|
|
|
|
|
|
|
|
|
# after login (which is handled by django.contrib.auth), redirect to the |
|
|
|
# dashboard rather than 'accounts/profile' (the default). |
|
|
|
LOGIN_REDIRECT_URL = "/" |
|
|
|
|
|
|
|
|
|
|
|
# use django-nose to run tests. rapidsms contains lots of packages and |
|
|
|
# modules which django does not find automatically, and importing them |
|
|
|
# all manually is tiresome and error-prone. |
|
|
|
TEST_RUNNER = "django_nose.NoseTestSuiteRunner" |
|
|
|
|
|
|
|
|
|
|
|
# for some reason this setting is blank in django's global_settings.py, |
|
|
|
# but it is needed for static assets to be linkable. |
|
|
|
MEDIA_URL = "/static/" |
|
|
|
|
|
|
|
|
|
|
|
# this is required for the django.contrib.sites tests to run, but also |
|
|
|
# not included in global_settings.py, and is almost always ``1``. |
|
|
|
# see: http://docs.djangoproject.com/en/dev/ref/contrib/sites/ |
|
|
|
SITE_ID = 1 |
|
|
|
|
|
|
|
|
|
|
|
# the default log settings are very noisy. |
|
|
|
LOG_LEVEL = "DEBUG" |
|
|
|
LOG_FILE = "rapidsms.log" |
|
|
|
LOG_FORMAT = "[%(name)s]: %(message)s" |
|
|
|
LOG_SIZE = 8192 # 8192 bits = 8 kb |
|
|
|
LOG_BACKUPS = 256 # number of logs to keep |
|
|
|
|
|
|
|
|
|
|
|
# these weird dependencies should be handled by their respective apps, |
|
|
|
# but they're not, so here they are. most of them are for django admin. |
|
|
|
TEMPLATE_CONTEXT_PROCESSORS = [ |
|
|
|
"django.core.context_processors.auth", |
|
|
|
"django.core.context_processors.debug", |
|
|
|
"django.core.context_processors.i18n", |
|
|
|
"django.core.context_processors.media", |
|
|
|
"django.core.context_processors.request", |
|
|
|
] |
|
|
|
|
|
|
|
# template loaders load templates from various places. |
|
|
|
# for djtables to work properly, the egg loader needs to be |
|
|
|
# included, the others are fairly standard. |
|
|
|
TEMPLATE_LOADERS = ( |
|
|
|
'django.template.loaders.filesystem.Loader', |
|
|
|
'django.template.loaders.app_directories.Loader', |
|
|
|
'django.template.loaders.eggs.Loader' |
|
|
|
) |
|
|
|
|
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
# HERE BE DRAGONS! # |
|
|
|
# these settings are pure hackery, and will go away soon # |
|
|
|
# -------------------------------------------------------------------- # |
|
|
|
|
|
|
|
|
|
|
|
# these apps should not be started by rapidsms in your tests, however, |
|
|
|
# the models and bootstrap will still be available through django. |
|
|
|
TEST_EXCLUDED_APPS = [ |
|
|
|
"django.contrib.sessions", |
|
|
|
"django.contrib.contenttypes", |
|
|
|
"django.contrib.auth", |
|
|
|
"rapidsms", |
|
|
|
"rapidsms.contrib.ajax", |
|
|
|
"rapidsms.contrib.httptester", |
|
|
|
] |
|
|
|
|
|
|
|
# the project-level url patterns |
|
|
|
ROOT_URLCONF = "urls" |
|
|
|
|
|
|
|
# import local_settings.py |
|
|
|
try: |
|
|
|
from local_settings import * |
|
|
|
except: |
|
|
|
pass |
|
|
|
|
|
|
|
# since we might hit the database from any thread during testing, the |
|
|
|
# in-memory sqlite database isn't sufficient. it spawns a separate |
|
|
|
# virtual database for each thread, and syncdb is only called for the |
|
|
|
# first. this leads to confusing "no such table" errors. We create |
|
|
|
# a named temporary instance instead. |
|
|
|
import os |
|
|
|
import tempfile |
|
|
|
import sys |
|
|
|
|
|
|
|
if 'test' in sys.argv: |
|
|
|
for db_name in DATABASES: |
|
|
|
DATABASES[db_name]['TEST_NAME'] = os.path.join( |
|
|
|
tempfile.gettempdir(), |
|
|
|
"%s.rapidsms.test.sqlite3" % db_name) |
|
|
|
|