new website using base project default_v3_py3
website template: repo=git@github.com:aldryn/project-template.git hash=7c69ca419989c530ca1768e6af73c54a67af19e2standalone
commit
0f724d3f2f
@ -0,0 +1,6 @@
|
||||
*.pyc
|
||||
*.pyo
|
||||
/.env
|
||||
/data
|
||||
/static_collected
|
||||
/node_modules
|
||||
@ -0,0 +1,3 @@
|
||||
DEBUG=True
|
||||
STAGE=local
|
||||
DATABASE_URL=postgres://postgres@postgres:5432/db
|
||||
@ -0,0 +1,24 @@
|
||||
# <DEFAULT> # Warning: text inside the DEFAULT tags is auto-generated. Manual changes will be overwritten.
|
||||
# OS generated
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
*~
|
||||
|
||||
# Python
|
||||
*.pyc
|
||||
*.pyo
|
||||
|
||||
# Aldryn
|
||||
/.env
|
||||
/.env-local
|
||||
.aldryn
|
||||
/data
|
||||
/data.tar.gz
|
||||
/static_collected
|
||||
/node_modules
|
||||
# </DEFAULT>
|
||||
@ -0,0 +1,23 @@
|
||||
# <WARNING>
|
||||
# </WARNING>
|
||||
|
||||
# <DOCKER_FROM>
|
||||
# </DOCKER_FROM>
|
||||
|
||||
# <NPM>
|
||||
# </NPM>
|
||||
|
||||
# <BOWER>
|
||||
# </BOWER>
|
||||
|
||||
# <PYTHON>
|
||||
# </PYTHON>
|
||||
|
||||
# <SOURCE>
|
||||
# </SOURCE>
|
||||
|
||||
# <GULP>
|
||||
# </GULP>
|
||||
|
||||
# <STATIC>
|
||||
# </STATIC>
|
||||
@ -0,0 +1,2 @@
|
||||
web: aldryn-django web
|
||||
migrate: aldryn-django migrate
|
||||
@ -0,0 +1,3 @@
|
||||
/*
|
||||
!/.gitignore
|
||||
!/.empty
|
||||
@ -0,0 +1 @@
|
||||
/.debug
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"package-name": "aldryn-addons"
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"package-name": "aldryn-django"
|
||||
}
|
||||
@ -0,0 +1,230 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
import sys
|
||||
from aldryn_client import forms
|
||||
|
||||
|
||||
class Form(forms.BaseForm):
|
||||
languages = forms.CharField('Languages', required=True, initial='["en", "de"]')
|
||||
|
||||
def to_settings(self, data, settings):
|
||||
import os
|
||||
import dj_database_url
|
||||
import warnings
|
||||
import yurl
|
||||
from functools import partial
|
||||
from aldryn_addons.utils import boolean_ish, djsenv
|
||||
env = partial(djsenv, settings=settings)
|
||||
|
||||
# BASE_DIR should already be set by aldryn-addons
|
||||
settings['BASE_DIR'] = env('BASE_DIR', required=True)
|
||||
settings['DATA_ROOT'] = env('DATA_ROOT', os.path.join(settings['BASE_DIR'], 'data'))
|
||||
settings['SECRET_KEY'] = env('SECRET_KEY', 'this-is-not-very-random')
|
||||
settings['DEBUG'] = boolean_ish(env('DEBUG', False))
|
||||
settings['TEMPLATE_DEBUG'] = boolean_ish(env('TEMPLATE_DEBUG', settings['DEBUG']))
|
||||
|
||||
settings['DATABASE_URL'] = env('DATABASE_URL')
|
||||
if settings['DATABASE_URL']:
|
||||
pass
|
||||
elif env('DJANGO_MODE') == 'build':
|
||||
settings['DATABASE_URL'] = 'sqlite://:memory:'
|
||||
else:
|
||||
settings['DATABASE_URL'] = 'sqlite:///{}'.format(
|
||||
os.path.join(settings['DATA_ROOT'], 'db.sqlite3')
|
||||
)
|
||||
warnings.warn(
|
||||
'no database configured. Falling back to DATABASE_URL={0}'.format(
|
||||
settings['DATABASE_URL']
|
||||
),
|
||||
RuntimeWarning,
|
||||
)
|
||||
settings['DATABASES']['default'] = dj_database_url.parse(settings['DATABASE_URL'])
|
||||
|
||||
settings['ROOT_URLCONF'] = env('ROOT_URLCONF', 'urls')
|
||||
settings['ADDON_URLS'].append('aldryn_django.urls')
|
||||
settings['ADDON_URLS_I18N'].append('aldryn_django.i18n_urls')
|
||||
|
||||
settings['WSGI_APPLICATION'] = 'wsgi.application'
|
||||
|
||||
settings['STATIC_URL'] = env('STATIC_URL', '/static/')
|
||||
settings['STATIC_URL_IS_ON_OTHER_DOMAIN'] = bool(yurl.URL(settings['STATIC_URL']).host)
|
||||
settings['STATIC_ROOT'] = env(
|
||||
'STATIC_ROOT',
|
||||
os.path.join(settings['BASE_DIR'], 'static_collected'),
|
||||
)
|
||||
settings['STATICFILES_DIRS'] = env(
|
||||
'STATICFILES_DIRS',
|
||||
[os.path.join(settings['BASE_DIR'], 'static'),]
|
||||
)
|
||||
|
||||
settings['MEDIA_URL'] = env('MEDIA_URL', '/media/')
|
||||
settings['MEDIA_URL_IS_ON_OTHER_DOMAIN'] = bool(yurl.URL(settings['MEDIA_URL']).host)
|
||||
settings['MEDIA_ROOT'] = env('MEDIA_ROOT', os.path.join(settings['DATA_ROOT'], 'media'))
|
||||
|
||||
settings['INSTALLED_APPS'].extend([
|
||||
'django.contrib.auth',
|
||||
'django.contrib.contenttypes',
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.sites',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.staticfiles',
|
||||
'aldryn_django',
|
||||
])
|
||||
if 'sqlite3' not in settings['DATABASES']['default']['ENGINE']:
|
||||
settings['INSTALLED_APPS'].append('south')
|
||||
|
||||
settings['TEMPLATE_CONTEXT_PROCESSORS'].extend([
|
||||
'django.core.context_processors.request',
|
||||
'aldryn_django.context_processors.debug',
|
||||
])
|
||||
settings['MIDDLEWARE_CLASSES'].extend([
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'aldryn_django.middleware.CurrentSiteMiddleware',
|
||||
])
|
||||
|
||||
settings['TEMPLATE_DIRS'] = env(
|
||||
'TEMPLATE_DIRS',
|
||||
[os.path.join(settings['BASE_DIR'], 'templates')],
|
||||
)
|
||||
settings['SITE_ID'] = env('SITE_ID', 1)
|
||||
|
||||
self.domain_settings(data, settings, env=env)
|
||||
self.server_settings(settings, env=env)
|
||||
self.logging_settings(settings, env=env)
|
||||
self.cache_settings(settings, env=env)
|
||||
self.storage_settings(settings, env=env)
|
||||
self.i18n_settings(data, settings, env=env)
|
||||
self.migration_settings(settings, env=env)
|
||||
return settings
|
||||
|
||||
def domain_settings(self, data, settings, env):
|
||||
settings['ALLOWED_HOSTS'] = env('ALLOWED_HOSTS', ['localhost', '*'])
|
||||
# will take a full config dict from ALDRYN_SITES_DOMAINS if available,
|
||||
# otherwise fall back to constructing the dict from DOMAIN,
|
||||
# DOMAIN_ALIASES and DOMAIN_REDIRECTS
|
||||
domains = env('ALDRYN_SITES_DOMAINS', {})
|
||||
domain = env('DOMAIN')
|
||||
if domain:
|
||||
settings['DOMAIN'] = domain
|
||||
domain_aliases = env('DOMAIN_ALIASES', '')
|
||||
domain_redirects = env('DOMAIN_REDIRECTS', '')
|
||||
if not domains and domain:
|
||||
domains = {
|
||||
1: {
|
||||
'domain': domain,
|
||||
'aliases': [d.strip() for d in domain_aliases.split(',') if d.strip()],
|
||||
'redirects': [d.strip() for d in domain_redirects.split(',') if d.strip()]
|
||||
}
|
||||
}
|
||||
settings['ALDRYN_SITES_DOMAINS'] = domains
|
||||
if domains and settings['SITE_ID'] in domains:
|
||||
settings['ALLOWED_HOSTS'].extend([
|
||||
domain for domain in domains[settings['SITE_ID']]['aliases']
|
||||
] + [
|
||||
domain for domain in domains[settings['SITE_ID']]['redirects']
|
||||
])
|
||||
|
||||
|
||||
settings['INSTALLED_APPS'].append('aldryn_sites')
|
||||
settings['MIDDLEWARE_CLASSES'].insert(
|
||||
settings['MIDDLEWARE_CLASSES'].index('django.middleware.common.CommonMiddleware'),
|
||||
'aldryn_sites.middleware.SiteMiddleware',
|
||||
)
|
||||
|
||||
def server_settings(self, settings, env):
|
||||
settings['PORT'] = env('PORT', 80)
|
||||
settings['BACKEND_PORT'] = env('BACKEND_PORT', 8000)
|
||||
settings['ENABLE_NGINX'] = env('ENABLE_NGINX', False)
|
||||
settings['ENABLE_PAGESPEED'] = env('ENABLE_PAGESPEED', False)
|
||||
settings['ENABLE_BROWSERCACHE'] = env('ENABLE_BROWSERCACHE', False)
|
||||
settings['BROWSERCACHE_MAX_AGE'] = env('BROWSERCACHE_MAX_AGE', 300)
|
||||
settings['NGINX_CONF_PATH'] = env('NGINX_CONF_PATH')
|
||||
settings['NGINX_PROCFILE_PATH'] = env('NGINX_PROCFILE_PATH')
|
||||
settings['DJANGO_WEB_WORKERS'] = env('DJANGO_WEB_WORKERS', 3)
|
||||
settings['DJANGO_WEB_MAX_REQUESTS'] = env('DJANGO_WEB_MAX_REQUESTS', 500)
|
||||
settings['DJANGO_WEB_TIMEOUT'] = env('DJANGO_WEB_TIMEOUT', 120)
|
||||
|
||||
def logging_settings(self, settings, env):
|
||||
settings['LOGGING'] = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'filters': {
|
||||
'require_debug_false': {
|
||||
'()': 'django.utils.log.RequireDebugFalse',
|
||||
},
|
||||
'require_debug_true': {
|
||||
'()': 'django.utils.log.RequireDebugTrue',
|
||||
},
|
||||
},
|
||||
'handlers': {
|
||||
'console': {
|
||||
'level': 'INFO',
|
||||
'class': 'logging.StreamHandler',
|
||||
'stream': sys.stdout,
|
||||
},
|
||||
'null': {
|
||||
'class': 'django.utils.log.NullHandler',
|
||||
},
|
||||
},
|
||||
'loggers': {
|
||||
'': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
},
|
||||
'django': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
},
|
||||
'django.request': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
'propagate': False,
|
||||
},
|
||||
'aldryn': {
|
||||
'handlers': ['console'],
|
||||
'level': 'INFO',
|
||||
},
|
||||
'py.warnings': {
|
||||
'handlers': ['console'],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
def cache_settings(self, settings, env):
|
||||
import django_cache_url
|
||||
cache_url = env('CACHE_URL')
|
||||
if cache_url:
|
||||
settings['CACHES']['default'] = django_cache_url.parse(cache_url)
|
||||
|
||||
def storage_settings(self, settings, env):
|
||||
from aldryn_django.storage import parse_storage_url
|
||||
if env('DEFAULT_STORAGE_DSN'):
|
||||
settings['DEFAULT_STORAGE_DSN'] = env('DEFAULT_STORAGE_DSN')
|
||||
|
||||
if 'DEFAULT_STORAGE_DSN' in settings:
|
||||
settings.update(parse_storage_url(settings['DEFAULT_STORAGE_DSN']))
|
||||
|
||||
def i18n_settings(self, data, settings, env):
|
||||
settings['ALL_LANGUAGES'] = list(settings['LANGUAGES'])
|
||||
settings['ALL_LANGUAGES_DICT'] = dict(settings['ALL_LANGUAGES'])
|
||||
languages = json.loads(data['languages'])
|
||||
settings['LANGUAGE_CODE'] = languages[0]
|
||||
settings['USE_L10N'] = True
|
||||
settings['USE_I18N'] = True
|
||||
settings['LANGUAGES'] = [
|
||||
(code, settings['ALL_LANGUAGES_DICT'][code])
|
||||
for code in languages
|
||||
]
|
||||
|
||||
def time_settings(self, settings, env):
|
||||
if env('TIME_ZONE'):
|
||||
settings['TIME_ZONE'] = env('TIME_ZONE')
|
||||
|
||||
def migration_settings(self, settings, env):
|
||||
settings.setdefault('MIGRATION_COMMANDS', [])
|
||||
mcmds = settings['MIGRATION_COMMANDS']
|
||||
|
||||
mcmds.append('python manage.py createcachetable django_dbcache; exit 0')
|
||||
mcmds.append('python manage.py syncdb --noinput')
|
||||
mcmds.append('python manage.py migrate --list --noinput && python manage.py migrate --noinput && python manage.py migrate --list --noinput')
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"languages": "[\"en\"]"
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
version: "2"
|
||||
|
||||
services:
|
||||
web:
|
||||
build: "."
|
||||
links:
|
||||
- "db:postgres"
|
||||
ports:
|
||||
- "8000:80"
|
||||
volumes:
|
||||
- ".:/app:rw"
|
||||
- "./data:/data:rw"
|
||||
command: python manage.py runserver 0.0.0.0:80
|
||||
env_file: .env-local
|
||||
|
||||
db:
|
||||
image: postgres:9.6-alpine
|
||||
environment:
|
||||
POSTGRES_DB: "db"
|
||||
volumes:
|
||||
- ".:/app:rw"
|
||||
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
from aldryn_django import startup
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
startup.manage(path=os.path.dirname(os.path.abspath(__file__)))
|
||||
@ -0,0 +1,2 @@
|
||||
# <INSTALLED_ADDONS> # Warning: text inside the INSTALLED_ADDONS tags is auto-generated. Manual changes will be overwritten.
|
||||
# </INSTALLED_ADDONS>
|
||||
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
INSTALLED_ADDONS = [
|
||||
# <INSTALLED_ADDONS> # Warning: this is auto-generated. Manual changes will be overwritten.
|
||||
'aldryn-addons',
|
||||
'aldryn-django',
|
||||
# </INSTALLED_ADDONS>'
|
||||
]
|
||||
|
||||
import aldryn_addons.settings
|
||||
aldryn_addons.settings.load(locals())
|
||||
|
||||
|
||||
# all django settings can be altered here
|
||||
|
||||
INSTALLED_APPS.extend([
|
||||
# add your project specific apps here
|
||||
])
|
||||
@ -0,0 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.conf.urls import url, include
|
||||
from aldryn_django.utils import i18n_patterns
|
||||
import aldryn_addons.urls
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
# add your own patterns here
|
||||
] + aldryn_addons.urls.patterns() + i18n_patterns(
|
||||
# add your own i18n patterns here
|
||||
*aldryn_addons.urls.i18n_patterns() # MUST be the last entry!
|
||||
)
|
||||
Loading…
Reference in New Issue