diff --git a/app_setup/setup.yml b/app_setup/setup.yml index c8598bd7bf..939baba8f2 100644 --- a/app_setup/setup.yml +++ b/app_setup/setup.yml @@ -47,7 +47,7 @@ service: name=postgresql state=restarted - name: configure python settings (with database password) - template: src=templates/settings.py.j2 dest=${working_dir}/lib/settings.py + template: src=templates/local_settings.py.j2 dest=${working_dir}/lib/settings/local_settings.py - name: sync django database django_manage: > diff --git a/app_setup/templates/local_settings.py.j2 b/app_setup/templates/local_settings.py.j2 new file mode 100644 index 0000000000..b546be54fa --- /dev/null +++ b/app_setup/templates/local_settings.py.j2 @@ -0,0 +1,70 @@ +# Local Django settings for Ansible Commander project. + +from defaults import * + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'acom', + 'USER': 'ansible_commander', + 'PASSWORD': '{{ database_password }}', + 'HOST': '', + 'PORT': '', + } +} + +# 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. +# On Unix systems, a value of None will cause Django to use the same +# timezone as the operating system. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'America/New_York' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en-us' + +# SECURITY WARNING: keep the secret key used in production secret! +# Hardcoded values can leak through source control. Consider loading +# the secret key from an environment variable or a file instead. +SECRET_KEY = 'p7z7g1ql4%6+(6nlebb6hdk7sd^&fnjpal308%n%+p^_e6vo1y' + +# Email address that error messages come from. +SERVER_EMAIL = 'root@localhost' + +# The email backend to use. For possible shortcuts see django.core.mail. +# The default is to use the SMTP backend. +# Third-party backends can be specified by providing a Python path +# to a module that defines an EmailBackend class. +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + +# Host for sending email. +EMAIL_HOST = 'localhost' + +# Port for sending email. +EMAIL_PORT = 25 + +# Optional SMTP authentication information for EMAIL_HOST. +EMAIL_HOST_USER = '' +EMAIL_HOST_PASSWORD = '' +EMAIL_USE_TLS = False + +# Default email address to use for various automated correspondence from +# the site managers. +DEFAULT_FROM_EMAIL = 'webmaster@localhost' + +# Subject-line prefix for email messages send with django.core.mail.mail_admins +# or ...mail_managers. Make sure to include the trailing space. +EMAIL_SUBJECT_PREFIX = '[ACOM] ' diff --git a/lib/settings/__init__.py b/lib/settings/__init__.py new file mode 100644 index 0000000000..9dd9112892 --- /dev/null +++ b/lib/settings/__init__.py @@ -0,0 +1,4 @@ +try: + from local_settings import * +except ImportError: + from defaults import * diff --git a/app_setup/templates/settings.py.j2 b/lib/settings/defaults.py similarity index 54% rename from app_setup/templates/settings.py.j2 rename to lib/settings/defaults.py index d8ff961ef4..1b91f361b0 100644 --- a/app_setup/templates/settings.py.j2 +++ b/lib/settings/defaults.py @@ -1,7 +1,18 @@ -# Django settings for acom project. +# Default Django settings for Ansible Commander project. +import os import sys +# Update this module's local settings from the global settings module. +from django.conf import global_settings +this_module = sys.modules[__name__] +for setting in dir(global_settings): + if setting == setting.upper(): + setattr(this_module, setting, getattr(global_settings, setting)) + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(__file__)) + DEBUG = True TEMPLATE_DEBUG = DEBUG @@ -13,12 +24,8 @@ MANAGERS = ADMINS DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'acom', - 'USER': 'ansible_commander', - 'PASSWORD': '{{ database_password }}', - 'HOST': '', - 'PORT': '', + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'acom.sqlite3'), } } @@ -27,6 +34,9 @@ if 'test' in sys.argv: 'ENGINE': 'django.db.backends.sqlite3' } +# Internationalization +# https://docs.djangoproject.com/en/dev/topics/i18n/ +# # 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. @@ -40,8 +50,6 @@ TIME_ZONE = 'America/New_York' # 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 @@ -50,57 +58,52 @@ USE_I18N = True # calendars according to the current locale USE_L10N = True +USE_TZ = True + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/dev/howto/static-files/ +STATIC_URL = '/static/' + # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = '' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # FIXME: Is this where we want it? # 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 = '' +MEDIA_URL = '/media/' -# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a -# trailing slash. -# Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = '/media/' +SITE_ID = 1 # Make this unique, and don't share it with anybody. SECRET_KEY = 'p7z7g1ql4%6+(6nlebb6hdk7sd^&fnjpal308%n%+p^_e6vo1y' -# 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', -# 'django.template.loaders.eggs.Loader', +# Hosts/domain names that are valid for this site; required if DEBUG is False +# See https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts +ALLOWED_HOSTS = [] + +TEMPLATE_CONTEXT_PROCESSORS += ( + 'django.core.context_processors.request', ) -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', +MIDDLEWARE_CLASSES += ( ) -ROOT_URLCONF = 'acom.urls' +ROOT_URLCONF = 'lib.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. -) +WSGI_APPLICATION = 'lib.wsgi.application' INSTALLED_APPS = ( + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', + 'django.contrib.messages', 'django.contrib.sessions', 'django.contrib.sites', - 'django.contrib.messages', + 'django.contrib.staticfiles', 'lib.main', 'south', - - # Uncomment the next line to enable the admin: - #'django.contrib.admin', - # Uncomment the next line to enable admin documentation: - # 'django.contrib.admindocs', + 'devserver', + 'tastypie', + 'django_extensions', )