common_settings.py 32.2 KB
Newer Older
Patrick Colmant's avatar
Patrick Colmant committed
1
# -*- coding: utf-8 -*-
Patrick's avatar
Patrick committed
2 3 4
import ConfigParser
import codecs
import logging
Patrick's avatar
Patrick committed
5 6 7 8 9

from django.utils.translation import get_language_info
from django.utils.translation import ugettext_lazy as _

from repanier.const import *
Patrick Colmant's avatar
Patrick Colmant committed
10 11
from settings import *

Patrick Colmant's avatar
Patrick Colmant committed
12
import os
Patrick's avatar
Patrick committed
13

Patrick Colmant's avatar
Patrick Colmant committed
14
gettext = lambda s: s
Patrick's avatar
Patrick committed
15

Patrick's avatar
Patrick committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

def get_allowed_mail_extension():
    allowed_mail_extension = "@%s" % DJANGO_SETTINGS_ALLOWED_HOSTS[0]
    cut_index = len(DJANGO_SETTINGS_ALLOWED_HOSTS[0]) - 1
    point_counter = 0
    while cut_index >= 0:
        if DJANGO_SETTINGS_ALLOWED_HOSTS[0][cut_index] == ".":
            point_counter += 1
            if point_counter == 2:
                allowed_mail_extension = "@%s" % DJANGO_SETTINGS_ALLOWED_HOSTS[0][cut_index + 1:]
                break
        cut_index -= 1
    if allowed_mail_extension.endswith("local"):
        allowed_mail_extension = "@repanier.be"
    return allowed_mail_extension

Patrick's avatar
Patrick committed
32
# os.path.realpath resolves symlinks and os.path.abspath doesn't.
Patrick Colmant's avatar
Patrick Colmant committed
33
PROJECT_DIR = os.path.realpath(os.path.dirname(__file__))
Patrick's avatar
Patrick committed
34
PROJECT_PATH = os.path.split(PROJECT_DIR)[0]
Patrick's avatar
Patrick committed
35 36
os.sys.path.insert(0, PROJECT_PATH)
MEDIA_ROOT = os.path.join(PROJECT_DIR, "media", "public")
Patrick's avatar
Patrick committed
37
MEDIA_URL = "%s%s%s" % (os.sep, "media", os.sep)
Patrick's avatar
Patrick committed
38
STATIC_ROOT = os.path.join(PROJECT_DIR, "collect-static")
Patrick's avatar
Patrick committed
39
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
40

Patrick's avatar
Patrick committed
41 42 43 44
# STATICFILES_DIRS = (
#     os.path.join(PROJECT_PATH, "repanier", "static"),
# )

Patrick's avatar
Patrick committed
45
DJANGO_SETTINGS_SITE_NAME = os.path.split(PROJECT_DIR)[-1]
Patrick's avatar
Patrick committed
46
config = ConfigParser.RawConfigParser(allow_no_value=True)
Patrick's avatar
Patrick committed
47
conf_file_name = '%s%s%s.ini' % (
Patrick's avatar
Patrick committed
48
            PROJECT_DIR,
Patrick's avatar
Patrick committed
49 50
            os.sep,
            DJANGO_SETTINGS_SITE_NAME
Patrick's avatar
Patrick committed
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
)
try:
    # Open the file with the correct encoding
    with codecs.open(conf_file_name, 'r', encoding='utf-8') as f:
        config.readfp(f)
    DJANGO_SETTINGS_ADMIN_EMAIL = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_ADMIN_EMAIL')
    DJANGO_SETTINGS_ADMIN_NAME = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_ADMIN_NAME')
    DJANGO_SETTINGS_DATABASE_HOST = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DATABASE_HOST')
    DJANGO_SETTINGS_DATABASE_NAME = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DATABASE_NAME')
    DJANGO_SETTINGS_DATABASE_PASSWORD = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DATABASE_PASSWORD')
    DJANGO_SETTINGS_DATABASE_PORT = config.getint('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DATABASE_PORT')
    DJANGO_SETTINGS_DATABASE_USER = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DATABASE_USER')
    DJANGO_SETTINGS_DEBUG = config.getboolean('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DEBUG')
    DJANGO_SETTINGS_DEMO = config.getboolean('DJANGO_SETTINGS', 'DJANGO_SETTINGS_DEMO')
    DJANGO_SETTINGS_EMAIL_HOST = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_HOST')
    DJANGO_SETTINGS_EMAIL_HOST_PASSWORD = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_HOST_PASSWORD')
    DJANGO_SETTINGS_EMAIL_HOST_USER = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_HOST_USER')
    DJANGO_SETTINGS_EMAIL_PORT = config.getint('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_PORT')
    DJANGO_SETTINGS_EMAIL_USE_SSL = config.getboolean('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_USE_TLS')
    DJANGO_SETTINGS_EMAIL_USE_TLS = config.getboolean('DJANGO_SETTINGS', 'DJANGO_SETTINGS_EMAIL_USE_TLS')
    DJANGO_SETTINGS_ENV = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_ENV')
    DJANGO_SETTINGS_LANGUAGE = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_LANGUAGE')
    DJANGO_SETTINGS_LOGGING = config.getboolean('DJANGO_SETTINGS', 'DJANGO_SETTINGS_LOGGING')
    DJANGO_SETTINGS_CACHE = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_CACHE')
    DJANGO_SETTINGS_SESSION = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_SESSION')
Patrick's avatar
Patrick committed
76
    DJANGO_SETTINGS_COUNTRY = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_COUNTRY')
77
    DJANGO_STATIC = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_STATIC')
Patrick's avatar
Patrick committed
78 79
    DJANGO_SETTINGS_ALLOWED_HOSTS = []
    for name in config.options('ALLOWED_HOSTS'):
Patrick's avatar
Patrick committed
80 81 82 83
        allowed_host = config.get('ALLOWED_HOSTS', name)
        if allowed_host.startswith("demo"):
            DJANGO_SETTINGS_DEMO = True
        DJANGO_SETTINGS_ALLOWED_HOSTS.append(allowed_host)
Patrick's avatar
Patrick committed
84 85 86
    logging.info("Settings loaded from %s" % (conf_file_name,))
    print ("Settings loaded from %s" % (conf_file_name,))
    print(DJANGO_SETTINGS_ALLOWED_HOSTS)
Patrick's avatar
Patrick committed
87
    DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION = get_allowed_mail_extension()
Patrick's avatar
Patrick committed
88 89 90 91
except IOError:
    logging.exception("Unable to open %s settings" % (conf_file_name,))
    print ("Unable to open %s settings" % (conf_file_name,))
    raise SystemExit(-1)
Patrick's avatar
Patrick committed
92 93
DJANGO_SETTINGS_DATE = "%d-%m-%Y"
DJANGO_SETTINGS_DATETIME = "%d-%m-%Y %H:%M"
Patrick Colmant's avatar
Patrick Colmant committed
94

95 96
# If statics file change with same file name, a path change will force a reload on the client side -> DJANGO_STA
STATIC_URL = "%s%s%s" % (os.sep, DJANGO_STATIC, os.sep)
Patrick's avatar
Patrick committed
97

Patrick's avatar
Patrick committed
98
###################### DEBUG
Patrick's avatar
Patrick committed
99
DEBUG = DJANGO_SETTINGS_DEBUG
Patrick Colmant's avatar
Patrick Colmant committed
100
DEBUG_PROPAGATE_EXCEPTIONS = DEBUG
Patrick's avatar
Patrick committed
101 102
TEMPLATE_DEBUG = False

Patrick's avatar
Patrick committed
103 104
ADMINS = (
    (
Patrick's avatar
Patrick committed
105 106
        DJANGO_SETTINGS_ADMIN_NAME,
        DJANGO_SETTINGS_ADMIN_EMAIL
Patrick's avatar
Patrick committed
107 108
    ),
)
Patrick's avatar
Patrick committed
109
SERVER_EMAIL = "%s%s" % (DJANGO_SETTINGS_ADMIN_NAME, DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION)
Patrick's avatar
Patrick committed
110
######################
111 112 113

DATABASES = {
    'default': {
114
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
Patrick's avatar
Patrick committed
115 116 117 118 119
        'NAME': DJANGO_SETTINGS_DATABASE_NAME,  # Or path to database file if using sqlite3.
        'USER': DJANGO_SETTINGS_DATABASE_USER,
        'PASSWORD': DJANGO_SETTINGS_DATABASE_PASSWORD,
        'HOST': DJANGO_SETTINGS_DATABASE_HOST,
        'PORT': DJANGO_SETTINGS_DATABASE_PORT,  # Set to empty string for default.
120 121
    }
}
Patrick's avatar
Patrick committed
122 123 124 125 126 127
EMAIL_HOST = DJANGO_SETTINGS_EMAIL_HOST
EMAIL_HOST_USER = DJANGO_SETTINGS_EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = DJANGO_SETTINGS_EMAIL_HOST_PASSWORD
EMAIL_PORT = DJANGO_SETTINGS_EMAIL_PORT
EMAIL_USE_TLS = DJANGO_SETTINGS_EMAIL_USE_TLS
if EMAIL_USE_TLS:
Patrick Colmant's avatar
Patrick Colmant committed
128
    EMAIL_USE_SSL = False
Patrick's avatar
Patrick committed
129 130
else:
    EMAIL_USE_SSL =DJANGO_SETTINGS_EMAIL_USE_SSL
Patrick Colmant's avatar
Patrick Colmant committed
131 132 133
###################### I18N

TIME_ZONE = 'Europe/Brussels'
Patrick's avatar
Patrick committed
134 135 136 137 138 139
USE_TZ = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = True
THOUSAND_SEPARATOR = '.'
NUMBER_GROUPING = 3
DECIMAL_SEPARATOR = ','
Patrick Colmant's avatar
Patrick Colmant committed
140

Patrick's avatar
Patrick committed
141 142 143 144 145 146
SITE_ID = 1
ALLOWED_HOSTS = DJANGO_SETTINGS_ALLOWED_HOSTS
ROOT_URLCONF = '%s.urls' % (DJANGO_SETTINGS_SITE_NAME,)
WSGI_APPLICATION = '%s.wsgi.application' % (DJANGO_SETTINGS_SITE_NAME,)
EMAIL_SUBJECT_PREFIX = '[' + DJANGO_SETTINGS_ALLOWED_HOSTS[0] + ']'
# DEFAULT_FROM_EMAIL Used by PASSWORD RESET
Patrick's avatar
Patrick committed
147
DEFAULT_FROM_EMAIL = "no-reply%s" % DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION
Patrick Colmant's avatar
Patrick Colmant committed
148

Patrick's avatar
Patrick committed
149 150
USE_X_FORWARDED_HOST = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
Patrick's avatar
Patrick committed
151
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
Patrick's avatar
Patrick committed
152 153
SESSION_COOKIE_HTTPONLY = True
SESSION_FILE_PATH = DJANGO_SETTINGS_SESSION
Patrick Colmant's avatar
Patrick Colmant committed
154

Patrick's avatar
Patrick committed
155
##################### Django & Django CMS
Patrick Colmant's avatar
Patrick Colmant committed
156 157 158 159
LOCALE_PATHS = (
    os.path.join(PROJECT_DIR, "locale"),
)

Patrick Colmant's avatar
Patrick Colmant committed
160
INSTALLED_APPS = (
Patrick's avatar
Patrick committed
161 162
    'repanier', # ! Important : for template precedence Repanier must be first INSTALLED_APPS after django.contrib
    'djangocms_admin_style',  # note this needs to be above the 'django.contrib.admin' entry
Patrick Colmant's avatar
Patrick Colmant committed
163 164 165
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
Patrick's avatar
Patrick committed
166 167
    'django.contrib.admin',
    'django.contrib.sites',
Patrick Colmant's avatar
Patrick Colmant committed
168
    'django.contrib.sitemaps',
Patrick's avatar
Patrick committed
169 170 171
    'django.contrib.staticfiles',
    'django.contrib.messages',

Patrick Colmant's avatar
Patrick Colmant committed
172
    'djangocms_text_ckeditor',  # note this needs to be above the 'cms' entry
Patrick's avatar
Patrick committed
173 174 175 176 177 178 179
    'django_select2',
    'cmsplugin_filer_file',
    'cmsplugin_filer_folder',
    'cmsplugin_filer_link',
    'cmsplugin_filer_image',
    'cmsplugin_filer_video',
    # 'cmsplugin_filer_utils',
Patrick's avatar
Patrick committed
180
    'cmsplugin_cascade',
Patrick's avatar
Patrick committed
181
    'cmsplugin_cascade.clipboard',  # optional
Patrick's avatar
Patrick committed
182 183
    'cmsplugin_cascade.extra_fields',  # optional
    'cmsplugin_cascade.sharable',  # optional
Patrick's avatar
Patrick committed
184
    'cmsplugin_cascade.segmentation',  # optiona
Patrick Colmant's avatar
Patrick Colmant committed
185
    'cms',
Patrick's avatar
Patrick committed
186
    # 'cms_bootstrap3',
Patrick Colmant's avatar
Patrick Colmant committed
187
    'menus',
Patrick's avatar
Patrick committed
188 189
    'treebeard',
    'filer',
Patrick Colmant's avatar
Patrick Colmant committed
190
    'easy_thumbnails',
Patrick's avatar
Patrick committed
191 192
    'easy_thumbnails.optimize',
    'sekizai',
Patrick's avatar
Patrick committed
193 194
    'mptt',
    'django_mptt_admin',
Patrick Colmant's avatar
Patrick Colmant committed
195
    'reversion',
Patrick's avatar
Patrick committed
196
    # 'aldryn_reversion',
Patrick Colmant's avatar
Patrick Colmant committed
197
    'parler',
Patrick's avatar
Patrick committed
198
    'import_export',
Patrick's avatar
Patrick committed
199 200
    'rest_framework',
    'easy_select2',
201
    'djng',
Patrick Colmant's avatar
Patrick Colmant committed
202 203
)

Patrick's avatar
Patrick committed
204 205 206
# https://docs.djangoproject.com/fr/1.9/ref/middleware/
# http://docs.django-cms.org/en/develop/how_to/caching.html

207
MIDDLEWARE = (
Patrick Colmant's avatar
Patrick Colmant committed
208
    'django.middleware.cache.UpdateCacheMiddleware',
Patrick's avatar
Patrick committed
209
    'cms.middleware.utils.ApphookReloadMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
210
    'django.contrib.sessions.middleware.SessionMiddleware',
Patrick's avatar
Patrick committed
211
    'django.middleware.csrf.CsrfViewMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
212 213 214
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.locale.LocaleMiddleware',
Patrick's avatar
Patrick committed
215
    'django.middleware.common.CommonMiddleware',
Patrick's avatar
Patrick committed
216
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
217
    'cms.middleware.user.CurrentUserMiddleware',
Patrick's avatar
Patrick committed
218
    'cms.middleware.page.CurrentPageMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
219
    'cms.middleware.toolbar.ToolbarMiddleware',
Patrick's avatar
Patrick committed
220
    'cms.middleware.language.LanguageCookieMiddleware',
Patrick's avatar
Cleanup  
Patrick committed
221
    'django.middleware.cache.FetchFromCacheMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
222
)
Patrick Colmant's avatar
Patrick Colmant committed
223

Patrick's avatar
Patrick committed
224 225 226 227 228 229
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        os.path.join(PROJECT_DIR, "templates"),
    ],
Patrick's avatar
Patrick committed
230
    # 'APP_DIRS': True,
Patrick's avatar
Patrick committed
231 232 233
    'OPTIONS': {
        'context_processors': [
            'django.contrib.auth.context_processors.auth',
Patrick's avatar
Patrick committed
234
            'django.contrib.messages.context_processors.messages',
Patrick's avatar
Patrick committed
235
            'django.template.context_processors.i18n',
Patrick's avatar
Patrick committed
236 237
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
Patrick's avatar
Patrick committed
238 239
            'django.template.context_processors.media',
            'django.template.context_processors.csrf',
Patrick's avatar
Patrick committed
240
            'django.template.context_processors.tz',
Patrick's avatar
Patrick committed
241
            'sekizai.context_processors.sekizai',
Patrick's avatar
Patrick committed
242 243
            'django.template.context_processors.static',
            'cms.context_processors.cms_settings'
Patrick's avatar
Patrick committed
244
        ],
Patrick's avatar
Patrick committed
245 246 247 248 249 250
        'loaders': [
            'django.template.loaders.filesystem.Loader',
            'django.template.loaders.app_directories.Loader',
            'django.template.loaders.eggs.Loader'
        ],
    },
Patrick's avatar
Patrick committed
251 252
},
]
Patrick Colmant's avatar
Patrick Colmant committed
253

254
CMS_PERMISSION = False  # When set to True, don't forget 'cms.middleware.user.CurrentUserMiddleware'
Patrick Colmant's avatar
Patrick Colmant committed
255
CMS_PUBLIC_FOR = 'all'
Patrick Colmant's avatar
Patrick Colmant committed
256
# CMS_PUBLIC_FOR = 'staff'
Patrick Colmant's avatar
Patrick Colmant committed
257 258 259 260 261 262
CMS_SHOW_START_DATE = False
CMS_SHOW_END_DATE = False
CMS_SEO_FIELDS = False
CMS_URL_OVERWRITE = True
CMS_MENU_TITLE_OVERWRITE = True
CMS_REDIRECTS = True
Patrick's avatar
Patrick committed
263

Patrick's avatar
Patrick committed
264
CKEDITOR_SETTINGS = {
265
    'language': '{{ language }}',
Patrick Colmant's avatar
Patrick Colmant committed
266 267 268
    'toolbar_CMS': [
        ['Undo', 'Redo'],
        ['cmsplugins', '-', 'ShowBlocks'],
269
        ['Format',],
Patrick Colmant's avatar
Patrick Colmant committed
270 271 272 273 274 275 276 277 278 279 280 281
        ['TextColor', 'BGColor', '-', 'PasteText'],
        ['Maximize', ''],
        '/',
        ['Bold', 'Italic', 'Underline', '-', 'Subscript', 'Superscript', '-', 'RemoveFormat'],
        ['JustifyLeft', 'JustifyCenter', 'JustifyRight'],
        ['HorizontalRule'],
        ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Table'],
        ['Source']
    ],
    'toolbar_HTMLField': [
        ['Format', 'Bold', 'Italic', 'TextColor', '-', 'NumberedList', 'BulletedList', 'RemoveFormat'],
        ['Preview', 'Cut', 'Copy', 'PasteText', 'Link', '-', 'Undo', 'Redo'],
Patrick's avatar
Patrick committed
282
        ['Source']
Patrick Colmant's avatar
Patrick Colmant committed
283 284
    ],
    'forcePasteAsPlainText': 'true',
Patrick's avatar
Cleanup  
Patrick committed
285
    'skin': 'moono',
286
    # 'stylesSet' : 'my_styles:%sjs/ckeditor-styles.js' % STATIC_URL,
Patrick Colmant's avatar
Patrick Colmant committed
287
    'format_tags': 'p;h4;h5;blockquote;mutted;success;info;danger;heart;pushpin',
288 289 290 291 292 293 294 295 296 297 298 299 300 301
    'format_blockquote': {'element': 'blockquote', 'name': 'Blockquote'},
    'format_heart': {'element': 'span', 'attributes': {'class': 'glyphicon glyphicon-heart-empty'}},
    'format_infosign': {'element': 'span', 'attributes': {'class': 'glyphicon glyphicon-info-sign'}},
    'format_warningsign': {'element': 'span', 'attributes': {'class': 'glyphicon glyphicon-warning-sign'}},
    'format_pushpin': {'element': 'span', 'attributes': {'class': 'glyphicon glyphicon-pushpin'}},
    'format_mutted': {'element': 'p', 'attributes': {'class': 'text-muted'}, 'name': 'Mutted'},
    'format_success': {'element': 'p', 'attributes': {'class': 'bg-success'}, 'name': 'Success'},
    'format_info': {'element': 'p', 'attributes': {'class': 'bg-info'}, 'name': 'Info'},
    'format_danger': {'element': 'p', 'attributes': {'class': 'bg-danger'}, 'name': 'Danger'},
    # format_p = { element: 'p', attributes: { 'class': 'normalPara' } };
    # format_test = { element : 'span', attributes : { 'class' : 'test' }, styles: { color: 'blue'} };
    # 'contentsCss' : '//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css',
    'contentsCss': '%sbootstrap/css/bootstrap.css' % STATIC_URL,
    # 'extraAllowedContent' : '*(*)',
302 303 304 305 306
    # 'extraAllowedContent' : 'iframe[*]',
    # NOTE: Some versions of CKEditor will pre-sanitize your text before
    # passing it to the web server, rendering the above settings useless.
    # To ensure this does not happen, you may need to add
    # the following parameters to CKEDITOR_SETTINGS:
Patrick Colmant's avatar
Patrick Colmant committed
307 308
    'basicEntities': False,
    'entities': False,
Patrick's avatar
Patrick committed
309
    'enterMode' : 2,
310
    # Do not dispaly the HTML Path below the edit window
Patrick Colmant's avatar
Patrick Colmant committed
311 312 313 314 315 316 317
    'removePlugins': 'elementspath',
}

CKEDITOR_SETTINGS_MODEL2 = {
    'language': '{{ language }}',
    'toolbar_HTMLField': [
        ['Format', 'Bold', 'Italic', 'TextColor', '-', 'NumberedList', 'BulletedList', 'RemoveFormat'],
318 319
        # ['Preview', 'Cut', 'Copy', 'PasteText', 'Image', 'Simplebox', 'Link', '-', 'Undo', 'Redo'],
        ['Preview', 'Cut', 'Copy', 'PasteText', 'Simplebox', 'Link', '-', 'Undo', 'Redo'],
Patrick's avatar
Patrick committed
320 321
        ['Source']
        # ['Maximize', '']
Patrick Colmant's avatar
Patrick Colmant committed
322
    ],
323
    'extraPlugins': 'simplebox',
Patrick Colmant's avatar
Patrick Colmant committed
324 325 326 327
    'forcePasteAsPlainText': 'true',
    'skin': 'moono',
    'format_tags': 'p;h4;h5',
    'contentsCss': '%sbootstrap/css/bootstrap.css' % STATIC_URL,
Patrick's avatar
Patrick committed
328
    'removeFormatTags': 'iframe,big,code,del,dfn,em,font,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,u,var',
Patrick Colmant's avatar
Patrick Colmant committed
329 330
    'basicEntities': False,
    'entities': False,
331
    'enterMode': 2,
Patrick Colmant's avatar
Patrick Colmant committed
332
    'removePlugins': 'elementspath',
Patrick's avatar
Patrick committed
333 334
}

335
# Drag & Drop Images
Patrick's avatar
Cleanup  
Patrick committed
336
# TEXT_SAVE_IMAGE_FUNCTION = 'djangocms_text_ckeditor.picture_save.create_picture_plugin'
Patrick's avatar
Patrick committed
337

338 339 340 341 342 343 344 345
# djangocms-text-ckeditor uses html5lib to sanitize HTML
# to avoid security issues and to check for correct HTML code.
# Sanitisation may strip tags usesful for some use cases such as iframe;
# you may customize the tags and attributes allowed by overriding
# the TEXT_ADDITIONAL_TAGS and TEXT_ADDITIONAL_ATTRIBUTES settings:
TEXT_ADDITIONAL_TAGS = ('span', 'iframe',)
TEXT_ADDITIONAL_ATTRIBUTES = ('class', 'scrolling', 'allowfullscreen', 'frameborder')
TEXT_HTML_SANITIZE = True
Patrick Colmant's avatar
Patrick Colmant committed
346 347 348

FILER_ENABLE_LOGGING = False
FILER_IMAGE_USE_ICON = True
Patrick's avatar
Patrick committed
349 350
FILER_ALLOW_REGULAR_USERS_TO_ADD_ROOT_FOLDERS = True
FILER_ENABLE_PERMISSIONS = False
Patrick Colmant's avatar
Patrick Colmant committed
351 352
FILER_IS_PUBLIC_DEFAULT = True
FILER_SUBJECT_LOCATION_IMAGE_DEBUG = True
Patrick's avatar
Patrick committed
353
FILER_DUMP_PAYLOAD = True
Patrick Colmant's avatar
Patrick Colmant committed
354
FILER_DEBUG = False
Patrick Colmant's avatar
Patrick Colmant committed
355 356 357 358 359 360

THUMBNAIL_PROCESSORS = (
    'easy_thumbnails.processors.colorspace',
    'easy_thumbnails.processors.autocrop',
    'filer.thumbnail_processors.scale_and_crop_with_subject_location',
    'easy_thumbnails.processors.filters',
Patrick's avatar
Patrick committed
361
    'easy_thumbnails.processors.background',
Patrick Colmant's avatar
Patrick Colmant committed
362
)
Patrick Colmant's avatar
Patrick Colmant committed
363
THUMBNAIL_HIGH_RESOLUTION = True
Patrick's avatar
Patrick committed
364 365
THUMBNAIL_PROGRESSIVE = 100
THUMBNAIL_PRESERVE_EXTENSIONS = True
Patrick Colmant's avatar
Patrick Colmant committed
366

Patrick's avatar
Patrick committed
367 368 369 370 371 372
THUMBNAIL_OPTIMIZE_COMMAND = {
    'png': '/usr/bin/optipng {filename}',
    'gif': '/usr/bin/optipng {filename}',
    'jpeg': '/usr/bin/jpegoptim {filename}',
}
THUMBNAIL_DEBUG = FILER_DEBUG
Patrick Colmant's avatar
Patrick Colmant committed
373 374

##################### Repanier
375
AUTH_USER_MODEL = 'auth.User'
Patrick Colmant's avatar
Patrick Colmant committed
376
AUTHENTICATION_BACKENDS = ('repanier.auth_backend.RepanierCustomBackend',)
Patrick's avatar
Patrick committed
377
# ADMIN_LOGIN = 'pi'
378
# ADMIN_PASSWORD = 'raspberry'
Patrick Colmant's avatar
Patrick Colmant committed
379 380 381
LOGIN_URL = "/repanier/go_repanier/"
LOGIN_REDIRECT_URL = "/"
LOGOUT_URL = "/repanier/leave_repanier/"
Patrick Colmant's avatar
Patrick Colmant committed
382

Patrick Colmant's avatar
Patrick Colmant committed
383 384 385 386
##### From : django/conf/global_settings.py
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
Patrick's avatar
Patrick committed
387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409
)

################# Django_sass_compressor

# INSTALLED_APPS += (
#     'sass_processor',
# )

# STATICFILES_FINDERS += (
#     'sass_processor.finders.CssFinder',
# )

# SASS_PROCESSOR_AUTO_INCLUDE = False
# SASS_PRECISION = 8
# SASS_PROCESSOR_INCLUDE_DIRS = [
#     os.path.join(PROJECT_PATH, "bootstrap-sass-3.3.7", "assets", "stylesheets"),
# ]


################# Django_compressor

INSTALLED_APPS += (
    'compressor',
Patrick Colmant's avatar
Patrick Colmant committed
410 411
)

Patrick Colmant's avatar
Patrick Colmant committed
412
STATICFILES_FINDERS += (
413
    'compressor.finders.CompressorFinder',
Patrick Colmant's avatar
Patrick Colmant committed
414 415
)

Patrick Colmant's avatar
Patrick Colmant committed
416 417 418 419 420 421
COMPRESS_ENABLED = True
COMPRESS_OUTPUT_DIR = "compressor"
COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage'
COMPRESS_PARSER = "compressor.parser.HtmlParser"
COMPRESS_OFFLINE = False

Patrick's avatar
Patrick committed
422 423 424 425
# COMPRESS_PRECOMPILERS = (
#     ('text/x-scss', 'django_libsass.SassCompiler'),
# )

Patrick Colmant's avatar
Patrick Colmant committed
426 427 428
###################### Django : Cache setup (https://docs.djangoproject.com/en/dev/topics/cache/)

CACHE_MIDDLEWARE_ALIAS = 'default'
Patrick's avatar
Patrick committed
429
CACHE_MIDDLEWARE_SECONDS = 3600
Patrick Colmant's avatar
Patrick Colmant committed
430

Patrick's avatar
Patrick committed
431 432 433 434 435 436 437 438 439 440 441
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION': os.path.join(DJANGO_SETTINGS_CACHE, ALLOWED_HOSTS[0]),
        'TIMEOUT': 300,
        'OPTIONS': {
            'MAX_ENTRIES': 1000,
            'CULL_FREQUENCY': 3
        }
    }
}
Patrick Colmant's avatar
Patrick Colmant committed
442 443

CMS_CACHE_DURATIONS = {
444 445 446 447 448
    'content': 300,  # default 60
    'menus': 3600,  # default 3600
    'permissions': 3600  # default: 3600
}

Patrick Colmant's avatar
Patrick Colmant committed
449 450 451 452 453
##################### DECIMAL
from decimal import getcontext, ROUND_HALF_UP

getcontext().rounding = ROUND_HALF_UP

Patrick's avatar
Patrick committed
454 455 456 457 458
##################### DJANGO REST_FRAMEWORK
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
    'PAGE_SIZE': 10
}
Patrick's avatar
Patrick committed
459 460 461 462 463

##################### DJANGO IMPORT EXPORT
IMPORT_EXPORT_USE_TRANSACTIONS = True


Patrick's avatar
Patrick committed
464 465
DATE_INPUT_FORMATS = (DJANGO_SETTINGS_DATE, "%d/%m/%Y", "%Y-%m-%d")
DATETIME_INPUT_FORMATS = (DJANGO_SETTINGS_DATETIME,)
Patrick's avatar
Patrick committed
466

Patrick's avatar
Patrick committed
467
if DJANGO_SETTINGS_LOGGING:
Patrick's avatar
Patrick committed
468 469 470 471 472 473 474 475 476 477 478 479 480
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'filters': {
            'require_debug_false': {
                '()': 'django.utils.log.RequireDebugFalse'
            }
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'filters': ['require_debug_false'],
                'class': 'django.utils.log.AdminEmailHandler'
Patrick's avatar
Patrick committed
481 482 483
            },
            'console': {
                'level': 'INFO',
Patrick's avatar
Patrick committed
484 485 486 487 488 489 490 491
                'class': 'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
Patrick's avatar
Patrick committed
492 493
            },
            'django.db.backends': {
Patrick's avatar
Patrick committed
494 495 496 497 498 499
                'level': 'DEBUG',
                'handlers': ['console'],
            },
        }
    }

500

Patrick's avatar
Patrick committed
501
CMS_TEMPLATES = (
Patrick's avatar
Patrick committed
502 503 504 505 506
    ('cms_page.html', gettext("Internal page")),
    ('cms_subpage.html', gettext("Internal page with menu on left")),
    ('cms_home.html', gettext("Home page")),
    ('cms_bootstrap_page.html', gettext("Bootstrap page")),
    ('cms_bootstrap_subpage.html', gettext("Bootstrap page with menu on left"))
Patrick's avatar
Patrick committed
507
)
508

Patrick's avatar
Patrick committed
509 510 511 512
if DJANGO_SETTINGS_LANGUAGE == 'fr':

    LANGUAGE_CODE = 'fr'
    LANGUAGES = [
Patrick's avatar
Patrick committed
513
        ('fr', get_language_info('fr')['name_local']),
Patrick's avatar
Patrick committed
514 515 516 517 518
    ]
    CMS_LANGUAGES = {
        SITE_ID: [
            {
            'code': 'fr',
Patrick's avatar
Patrick committed
519
            'name': get_language_info('fr')['name'],
Patrick's avatar
Patrick committed
520 521 522 523 524 525 526 527
            'public': True,
            'hide_untranslated': False,
            },
        ]
    }
    PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
    PARLER_LANGUAGES = {
        SITE_ID: (
Patrick's avatar
Patrick committed
528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555
            {'code': LANGUAGE_CODE,},
        ),
        'default': {
            'fallbacks'        : [LANGUAGE_CODE],
            'hide_untranslated': False,
        },
    }

elif DJANGO_SETTINGS_LANGUAGE == 'es':

    LANGUAGE_CODE = 'es'
    LANGUAGES = [
        ('es', get_language_info('es')['name_local']),
    ]
    CMS_LANGUAGES = {
        SITE_ID: [
            {
            'code': 'es',
            'name': get_language_info('es')['name'],
            'public': True,
            'hide_untranslated': False,
            },
        ]
    }
    PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
    PARLER_LANGUAGES = {
        SITE_ID: (
            {'code': LANGUAGE_CODE,},
Patrick's avatar
Patrick committed
556
        ),
Patrick's avatar
Patrick committed
557 558 559 560
        'default': {
            'fallbacks'        : [LANGUAGE_CODE],
            'hide_untranslated': False,
        },
Patrick's avatar
Patrick committed
561 562 563 564 565 566
    }

elif DJANGO_SETTINGS_LANGUAGE == 'fr-nl-en':

    LANGUAGE_CODE = 'fr'
    LANGUAGES = [
Patrick's avatar
Patrick committed
567 568 569
        ('fr', get_language_info('fr')['name_local']),
        ('nl', get_language_info('nl')['name_local']),
        ('en', get_language_info('en')['name_local']),
Patrick's avatar
Patrick committed
570 571 572 573 574
    ]
    CMS_LANGUAGES = {
        SITE_ID: [
            {
                'code': 'fr',
Patrick's avatar
Patrick committed
575
                'name': get_language_info('fr')['name'],
Patrick's avatar
Patrick committed
576 577 578 579 580 581
                'public': True,
                'redirect_on_fallback':False,
                'hide_untranslated': False,
            },
            {
                'code': 'nl',
Patrick's avatar
Patrick committed
582
                'name': get_language_info('nl')['name'],
Patrick's avatar
Patrick committed
583 584 585 586 587
                'fallbacks': ['en', 'fr'],
                'public': True,
            },
            {
                'code': 'en',
Patrick's avatar
Patrick committed
588 589
                'name': get_language_info('en')['name'],
                'fallbacks': [LANGUAGE_CODE],
Patrick's avatar
Patrick committed
590 591 592 593 594 595 596 597 598 599 600 601
                'public': True,
            },
        ]
    }
    PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
    PARLER_LANGUAGES = {
        SITE_ID: (
            {'code': 'fr',},
            {'code': 'nl',},
            {'code': 'en',},
        ),
        'default': {
Patrick's avatar
Patrick committed
602
                'fallbacks': [LANGUAGE_CODE],
Patrick's avatar
Patrick committed
603 604 605
                'hide_untranslated': False,
        },
    }
Patrick's avatar
Patrick committed
606
elif DJANGO_SETTINGS_LANGUAGE == 'fr-en':
Patrick's avatar
Patrick committed
607

Patrick's avatar
Patrick committed
608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659
    LANGUAGE_CODE = 'fr'
    LANGUAGES = [
        ('fr', get_language_info('fr')['name_local']),
        ('en', get_language_info('en')['name_local']),
    ]
    CMS_LANGUAGES = {
        SITE_ID: [
            {
                'code': 'fr',
                'name': get_language_info('fr')['name'],
                'public': True,
                'redirect_on_fallback':False,
                'hide_untranslated': False,
            },
            {
                'code': 'en',
                'name': get_language_info('en')['name'],
                'fallbacks': [LANGUAGE_CODE],
                'public': True,
            },
        ]
    }
    PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
    PARLER_LANGUAGES = {
        SITE_ID: (
            {'code': 'fr',},
            {'code': 'en',},
        ),
        'default': {
                'fallbacks': [LANGUAGE_CODE],
                'hide_untranslated': False,
        },
    }

##################### DJANGOCMS-CASCADE
CMSPLUGIN_CASCADE_PLUGINS = (
    'cmsplugin_cascade.generic',
    'cmsplugin_cascade.link',
    'cmsplugin_cascade.sharable',
    'cmsplugin_cascade.bootstrap3',
    'cmsplugin_cascade.segmentation',
)

from cmsplugin_cascade.extra_fields.config import PluginExtraFieldsConfig
CMSPLUGIN_CASCADE = {
    'plugins_with_extra_fields': {
        'BootstrapRowPlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Margins': ['margin-top', 'margin-bottom'],
            'extra_units:Margins': 'px,em'}),
        'BootstrapJumbotronPlugin': PluginExtraFieldsConfig(inline_styles={
            'extra_fields:Margins': ['padding-top', 'padding-bottom', 'margin-bottom'],
            'extra_units:Margins': 'px,em'}),
Patrick's avatar
Patrick committed
660
    },
Patrick's avatar
Patrick committed
661 662 663 664 665 666 667 668 669 670 671 672
    'bootstrap3': (
        ('xs', (768, 'mobile', _("mobile phones"), 750, 768)),
        ('sm', (768, 'tablet', _("tablets"), 750, 992)),
        ('md', (992, 'laptop', _("laptops"), 970, 1200)),
        ('lg', (1200, 'desktop', _("large desktops"), 1170, 2500)),
    ),
    'segmentation_mixins': (
        (
            'cmsplugin_cascade.segmentation.mixins.EmulateUserModelMixin',
            'cmsplugin_cascade.segmentation.mixins.EmulateUserAdminMixin',
        ),
    ),
Patrick's avatar
Patrick committed
673 674 675 676 677 678 679 680 681
}

CMS_PLACEHOLDER_CONF = {
    'home-hero': {
        'name': gettext('Hero'),
        'plugins': [
            'TextPlugin',
        ],
        'text_only_plugins': [
682 683
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
684 685 686
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709
        ],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        """
                        <h3>Lorem ipsum</h3>
                        <p>Lorem ipsum.</p>
                        <p class="text-muted"><span class="glyphicon glyphicon-pushpin"></span>&nbsp;Lorem ipsum.</p>
                        <h3>Lorem ipsum</h3>
                        <p class="text-muted">Lorem ipsum.</p>
                        """
                },
            },
        ]
    },
    'home-col-1': {
        'name': gettext('Column 1'),
        'plugins': [
            'TextPlugin',
        ],
        'text_only_plugins': [
710 711
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
712 713 714
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737
        ],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        """
                        <div class="panel panel-info">
                        <div class="panel-heading"><h4>Lorem ipsum</h4></div>
                        <div class="panel-body">
                        <ul class="list-group">
                        <li class="list-group-item">Lorem ipsum.</li>
                        <li class="list-group-item">Lorem ipsum.</li>
                        </ul>
                        </div>
                        </div>
                        """
                },
            },
        ]
    },
    'home-col-2': {
        'name': gettext('Column 2'),
Patrick's avatar
Patrick committed
738
        'plugins'          : [
Patrick's avatar
Patrick committed
739 740 741
            'TextPlugin',
        ],
        'text_only_plugins': [
742 743
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
744 745 746
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769
        ],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        """
                        <div class="panel panel-danger">
                        <div class="panel-heading"><h4>Lorem ipsum</h4></div>
                        <div class="panel-body">
                        <ul class="list-group">
                        <li class="list-group-item">Lorem ipsum.</li>
                        <li class="list-group-item">Lorem ipsum.</li>
                        </ul>
                        </div>
                        </div>
                        """
                },
            },
        ]
    },
    'home-col-3': {
        'name': gettext('Column 3'),
Patrick's avatar
Patrick committed
770
        'plugins'          : [
Patrick's avatar
Patrick committed
771 772 773
            'TextPlugin',
        ],
        'text_only_plugins': [
774 775
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
776 777 778
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801
        ],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        """
                        <div class="panel panel-warning">
                        <div class="panel-heading"><h4>Lorem ipsum</h4></div>
                        <div class="panel-body">
                        <ul class="list-group">
                        <li class="list-group-item">Lorem ipsum.</li>
                        <li class="list-group-item">Lorem ipsum.</li>
                        </ul>
                        </div>
                        </div>
                        """
                },
            },
        ]
    },
    'subpage_content': {
        'name': gettext('Content'),
Patrick's avatar
Patrick committed
802
        'plugins'          : [
Patrick's avatar
Patrick committed
803 804 805
            'TextPlugin',
        ],
        'text_only_plugins': [
Patrick's avatar
Patrick committed
806
            'TextLinkPlugin',
807
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
808 809 810
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
811 812 813 814 815 816 817 818 819 820 821 822 823 824 825
        ],
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        """
                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed luctus tortor quis imperdiet egestas. Proin mollis sem ipsum, nec facilisis nibh cursus eu. Sed convallis cursus venenatis. Maecenas rutrum, elit ut ornare lobortis, mi dolor placerat elit, at laoreet sapien urna vitae arcu. Phasellus consectetur tincidunt ullamcorper. Sed et enim at lacus cursus rhoncus. Vestibulum porttitor velit non ante ullamcorper, ut gravida ipsum vestibulum. Aenean sed condimentum nisi. Quisque sagittis mauris non leo tincidunt vulputate. Ut euismod ante purus, sed pulvinar nisl volutpat quis. Maecenas consequat mi vitae libero egestas varius. Nam in tempor augue, sit amet pulvinar purus.</p>
                        <p>Vestibulum sed elit mollis, dapibus ligula in, ultricies purus. Proin fermentum blandit ultrices. Suspendisse vitae nisi mollis, viverra ipsum vitae, adipiscing lorem. Curabitur vestibulum orci felis, nec pretium arcu elementum a. Curabitur blandit fermentum tellus at consequat. Sed eget tempor elit. Donec in elit purus.</p>
                        <p>Morbi vulputate dolor sed nibh ullamcorper, eget molestie justo adipiscing. Fusce faucibus vel quam eu ultrices. Sed aliquet fringilla tristique. Vestibulum sit amet nunc tincidunt turpis tristique ullamcorper. Nam tempor mi felis, ac vulputate quam varius eget. Nunc blandit nulla vel metus lacinia, sit amet posuere lectus viverra. Praesent vel tortor facilisis, imperdiet orci sed, auctor erat.</p>
                        """
                },
            },
        ]
    },
Patrick's avatar
Patrick committed
826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855
    'bootstrap_content': {
        'name'           : gettext('Bootstrap Content'),
        'plugins'        : [
            'BootstrapContainerPlugin',
            'BootstrapJumbotronPlugin',
        ],
        'text_only_plugins': [
            # 'FilerLinkPlugin',
            'TextLinkPlugin',
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
        ],
        'parent_classes' : {
            'BootstrapContainerPlugin': None,
            'BootstrapJumbotronPlugin': None,
        },
        'glossary': {
            'breakpoints': ['xs', 'sm', 'md', 'lg'],
            'container_max_widths': {'xs': 750, 'sm': 750, 'md': 970, 'lg': 1170},
            'fluid': False,
            'media_queries': {
                'xs': ['(max-width: 768px)'],
                'sm': ['(min-width: 768px)', '(max-width: 992px)'],
                'md': ['(min-width: 992px)', '(max-width: 1200px)'],
                'lg': ['(min-width: 1200px)'],
            },
        },
    },

Patrick's avatar
Patrick committed
856 857
    'footer': {
        'name': gettext('Footer'),
Patrick's avatar
Patrick committed
858
        'plugins': ['TextPlugin',  'FilerImagePlugin'],
Patrick's avatar
Patrick committed
859
        'text_only_plugins': ['TextLinkPlugin'],
Patrick's avatar
Patrick committed
860 861 862 863 864 865 866 867 868 869 870 871 872 873 874
        'limits': {
            'TextPlugin': 1,
        },
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        'Lorem ipsum dolor sit amet'

                },
            },
        ]
    },
}
Patrick's avatar
Patrick committed
875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943

##################### REPANIER VAT/RATE

if DJANGO_SETTINGS_COUNTRY == "ch":
    # Switzerland
    DICT_VAT_DEFAULT = VAT_325
    LUT_VAT = (
        (VAT_100, _('none')),
        (VAT_325, _('vat 2.5%')),
        (VAT_350, _('vat 3.8%')),
        (VAT_430, _('vat 8%')),
    )

    LUT_VAT_REVERSE = (
        (_('none'), VAT_100),
        (_('vat 2.5%'), VAT_325),
        (_('vat 3.8%'), VAT_350),
        (_('vat 8%'), VAT_430),
    )
elif DJANGO_SETTINGS_COUNTRY == "fr":
    # France
    DICT_VAT_DEFAULT = VAT_375
    LUT_VAT = (
        (VAT_100, _('none')),
        (VAT_315, _('vat 2.1%')),
        (VAT_375, _('vat 5.5%')),
        (VAT_460, _('vat 10%')),
        (VAT_590, _('vat 20%')),
    )

    LUT_VAT_REVERSE = (
        (_('none'), VAT_100),
        (_('vat 2.1%'), VAT_315),
        (_('vat 5.5%'), VAT_375),
        (_('vat 10%'), VAT_460),
        (_('vat 20%'), VAT_590),
    )
elif DJANGO_SETTINGS_COUNTRY == "es":
    # Espagne
    DICT_VAT_DEFAULT = VAT_460
    LUT_VAT = (
        (VAT_100, _('none')),
        (VAT_360, _('vat 4%')),
        (VAT_460, _('vat 10%')),
        (VAT_600, _('vat 21%')),
    )

    LUT_VAT_REVERSE = (
        (_('none'), VAT_100),
        (_('vat 4%'), VAT_360),
        (_('vat 10%'), VAT_460),
        (_('vat 21%'), VAT_600),
    )
else:
    # Belgium
    DICT_VAT_DEFAULT = VAT_400
    LUT_VAT = (
        (VAT_100, _('none')),
        (VAT_400, _('vat 6%')),
        (VAT_500, _('vat 12%')),
        (VAT_600, _('vat 21%')),
    )

    LUT_VAT_REVERSE = (
        (_('none'), VAT_100),
        (_('vat 6%'), VAT_400),
        (_('vat 12%'), VAT_500),
        (_('vat 21%'), VAT_600),
    )