common_settings.py 32.5 KB
Newer Older
Patrick Colmant's avatar
Patrick Colmant committed
1
# -*- coding: utf-8 -*-
Patrick's avatar
RC  
Patrick committed
2 3 4 5 6
try:
    import configparser
except:
    from six.moves import configparser

Patrick's avatar
Patrick committed
7 8
import codecs
import logging
Patrick's avatar
Patrick committed
9 10 11 12 13

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
14 15
from settings import *

Patrick Colmant's avatar
Patrick Colmant committed
16
import os
Patrick's avatar
Patrick committed
17

Patrick Colmant's avatar
Patrick Colmant committed
18
gettext = lambda s: s
Patrick's avatar
Patrick committed
19

Patrick's avatar
Patrick committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

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
36
# os.path.realpath resolves symlinks and os.path.abspath doesn't.
Patrick Colmant's avatar
Patrick Colmant committed
37
PROJECT_DIR = os.path.realpath(os.path.dirname(__file__))
Patrick's avatar
Patrick committed
38
PROJECT_PATH = os.path.split(PROJECT_DIR)[0]
Patrick's avatar
Patrick committed
39 40
os.sys.path.insert(0, PROJECT_PATH)
MEDIA_ROOT = os.path.join(PROJECT_DIR, "media", "public")
Patrick's avatar
Patrick committed
41
MEDIA_URL = "%s%s%s" % (os.sep, "media", os.sep)
Patrick's avatar
Patrick committed
42 43
STATIC_ROOT = os.path.join(PROJECT_DIR, "collect-static")

Patrick's avatar
Patrick committed
44
DJANGO_SETTINGS_SITE_NAME = os.path.split(PROJECT_DIR)[-1]
Patrick's avatar
RC  
Patrick committed
45
config = configparser.RawConfigParser(allow_no_value=True)
Patrick's avatar
Patrick committed
46
conf_file_name = '%s%s%s.ini' % (
Patrick's avatar
Patrick committed
47
            PROJECT_DIR,
Patrick's avatar
Patrick committed
48 49
            os.sep,
            DJANGO_SETTINGS_SITE_NAME
Patrick's avatar
Patrick committed
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
)
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
75
    DJANGO_SETTINGS_COUNTRY = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_COUNTRY')
76
    DJANGO_STATIC = config.get('DJANGO_SETTINGS', 'DJANGO_SETTINGS_STATIC')
Patrick's avatar
Patrick committed
77 78
    DJANGO_SETTINGS_ALLOWED_HOSTS = []
    for name in config.options('ALLOWED_HOSTS'):
Patrick's avatar
Patrick committed
79 80 81 82
        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
83 84 85
    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
86
    DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION = get_allowed_mail_extension()
Patrick's avatar
Patrick committed
87 88 89 90
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
91 92
DJANGO_SETTINGS_DATE = "%d-%m-%Y"
DJANGO_SETTINGS_DATETIME = "%d-%m-%Y %H:%M"
Patrick Colmant's avatar
Patrick Colmant committed
93

94 95
# 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)
96 97 98 99 100 101 102
if DJANGO_SETTINGS_DEBUG:
    # Activate ManifestStaticFilesStorage also when in debug mode
    STATICFILES_STORAGE = 'repanier.big_blind_static.BigBlindManifestStaticFilesStorage'
else:
    # Be carefull to install the patch vvvv before using ManifestStaticFilesStorage with django CMS 3.4.2
    # https://github.com/divio/django-cms/pull/5860
    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
Patrick's avatar
Patrick committed
103 104 105 106
# STATICFILES_DIRS = (
#     os.path.join(PROJECT_PATH, "repanier", "static"),
# )

Patrick's avatar
Patrick committed
107

Patrick's avatar
Patrick committed
108
###################### DEBUG
Patrick's avatar
Patrick committed
109
DEBUG = DJANGO_SETTINGS_DEBUG
Patrick Colmant's avatar
Patrick Colmant committed
110
DEBUG_PROPAGATE_EXCEPTIONS = DEBUG
Patrick's avatar
Patrick committed
111 112
TEMPLATE_DEBUG = False

Patrick's avatar
Patrick committed
113 114
ADMINS = (
    (
Patrick's avatar
Patrick committed
115 116
        DJANGO_SETTINGS_ADMIN_NAME,
        DJANGO_SETTINGS_ADMIN_EMAIL
Patrick's avatar
Patrick committed
117 118
    ),
)
Patrick's avatar
Patrick committed
119
SERVER_EMAIL = "%s%s" % (DJANGO_SETTINGS_ADMIN_NAME, DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION)
Patrick's avatar
Patrick committed
120
######################
121 122 123

DATABASES = {
    'default': {
124
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
Patrick's avatar
Patrick committed
125 126 127 128 129
        '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.
130 131
    }
}
Patrick's avatar
Patrick committed
132 133 134 135 136 137
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
138
    EMAIL_USE_SSL = False
Patrick's avatar
Patrick committed
139 140
else:
    EMAIL_USE_SSL =DJANGO_SETTINGS_EMAIL_USE_SSL
Patrick Colmant's avatar
Patrick Colmant committed
141 142 143
###################### I18N

TIME_ZONE = 'Europe/Brussels'
Patrick's avatar
Patrick committed
144 145 146 147 148 149
USE_TZ = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = True
THOUSAND_SEPARATOR = '.'
NUMBER_GROUPING = 3
DECIMAL_SEPARATOR = ','
Patrick Colmant's avatar
Patrick Colmant committed
150

Patrick's avatar
Patrick committed
151 152 153 154 155 156
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
157
DEFAULT_FROM_EMAIL = "no-reply%s" % DJANGO_SETTINGS_ALLOWED_MAIL_EXTENSION
Patrick Colmant's avatar
Patrick Colmant committed
158

Patrick's avatar
Patrick committed
159 160
USE_X_FORWARDED_HOST = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
Patrick's avatar
Patrick committed
161
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
Patrick's avatar
Patrick committed
162 163
SESSION_COOKIE_HTTPONLY = True
SESSION_FILE_PATH = DJANGO_SETTINGS_SESSION
Patrick Colmant's avatar
Patrick Colmant committed
164

Patrick's avatar
Patrick committed
165
##################### Django & Django CMS
Patrick Colmant's avatar
Patrick Colmant committed
166 167 168 169
LOCALE_PATHS = (
    os.path.join(PROJECT_DIR, "locale"),
)

Patrick Colmant's avatar
Patrick Colmant committed
170
INSTALLED_APPS = (
Patrick's avatar
Patrick committed
171 172
    '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
173 174 175
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
Patrick's avatar
Patrick committed
176 177
    'django.contrib.admin',
    'django.contrib.sites',
Patrick Colmant's avatar
Patrick Colmant committed
178
    'django.contrib.sitemaps',
Patrick's avatar
Patrick committed
179 180 181
    'django.contrib.staticfiles',
    'django.contrib.messages',

Patrick Colmant's avatar
Patrick Colmant committed
182
    'djangocms_text_ckeditor',  # note this needs to be above the 'cms' entry
Patrick's avatar
Patrick committed
183 184 185 186 187 188 189
    '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
190
    'cmsplugin_cascade',
Patrick's avatar
Patrick committed
191
    'cmsplugin_cascade.clipboard',  # optional
Patrick's avatar
Patrick committed
192 193
    'cmsplugin_cascade.extra_fields',  # optional
    'cmsplugin_cascade.sharable',  # optional
Patrick's avatar
Patrick committed
194
    'cmsplugin_cascade.segmentation',  # optiona
Patrick Colmant's avatar
Patrick Colmant committed
195
    'cms',
Patrick's avatar
Patrick committed
196
    # 'cms_bootstrap3',
Patrick Colmant's avatar
Patrick Colmant committed
197
    'menus',
Patrick's avatar
Patrick committed
198 199
    'treebeard',
    'filer',
Patrick Colmant's avatar
Patrick Colmant committed
200
    'easy_thumbnails',
Patrick's avatar
Patrick committed
201 202
    'easy_thumbnails.optimize',
    'sekizai',
Patrick's avatar
Patrick committed
203 204
    'mptt',
    'django_mptt_admin',
Patrick Colmant's avatar
Patrick Colmant committed
205
    'reversion',
Patrick's avatar
Patrick committed
206
    # 'aldryn_reversion',
Patrick Colmant's avatar
Patrick Colmant committed
207
    'parler',
Patrick's avatar
Patrick committed
208
    'import_export',
Patrick's avatar
Patrick committed
209 210
    'rest_framework',
    'easy_select2',
211
    'djng',
Patrick Colmant's avatar
Patrick Colmant committed
212 213
)

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

217
MIDDLEWARE = (
Patrick Colmant's avatar
Patrick Colmant committed
218
    'django.middleware.cache.UpdateCacheMiddleware',
Patrick's avatar
Patrick committed
219
    'cms.middleware.utils.ApphookReloadMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
220
    'django.contrib.sessions.middleware.SessionMiddleware',
Patrick's avatar
Patrick committed
221
    'django.middleware.csrf.CsrfViewMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
222 223 224
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.locale.LocaleMiddleware',
Patrick's avatar
Patrick committed
225
    'django.middleware.common.CommonMiddleware',
Patrick's avatar
Patrick committed
226
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
227
    'cms.middleware.user.CurrentUserMiddleware',
Patrick's avatar
Patrick committed
228
    'cms.middleware.page.CurrentPageMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
229
    'cms.middleware.toolbar.ToolbarMiddleware',
Patrick's avatar
Patrick committed
230
    'cms.middleware.language.LanguageCookieMiddleware',
Patrick's avatar
Patrick committed
231
    'django.middleware.cache.FetchFromCacheMiddleware',
Patrick Colmant's avatar
Patrick Colmant committed
232
)
Patrick Colmant's avatar
Patrick Colmant committed
233

Patrick's avatar
Patrick committed
234 235 236 237 238 239
TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        os.path.join(PROJECT_DIR, "templates"),
    ],
Patrick's avatar
Patrick committed
240
    # 'APP_DIRS': True,
Patrick's avatar
Patrick committed
241 242 243
    'OPTIONS': {
        'context_processors': [
            'django.contrib.auth.context_processors.auth',
Patrick's avatar
Patrick committed
244
            'django.contrib.messages.context_processors.messages',
Patrick's avatar
Patrick committed
245
            'django.template.context_processors.i18n',
Patrick's avatar
Patrick committed
246 247
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
Patrick's avatar
Patrick committed
248 249
            'django.template.context_processors.media',
            'django.template.context_processors.csrf',
Patrick's avatar
Patrick committed
250
            'django.template.context_processors.tz',
Patrick's avatar
Patrick committed
251
            'sekizai.context_processors.sekizai',
Patrick's avatar
Patrick committed
252 253
            'django.template.context_processors.static',
            'cms.context_processors.cms_settings'
Patrick's avatar
Patrick committed
254
        ],
Patrick's avatar
Patrick committed
255 256 257 258 259 260
        'loaders': [
            'django.template.loaders.filesystem.Loader',
            'django.template.loaders.app_directories.Loader',
            'django.template.loaders.eggs.Loader'
        ],
    },
Patrick's avatar
Patrick committed
261 262
},
]
Patrick Colmant's avatar
Patrick Colmant committed
263

264
CMS_PERMISSION = False  # When set to True, don't forget 'cms.middleware.user.CurrentUserMiddleware'
Patrick Colmant's avatar
Patrick Colmant committed
265
CMS_PUBLIC_FOR = 'all'
Patrick Colmant's avatar
Patrick Colmant committed
266
# CMS_PUBLIC_FOR = 'staff'
Patrick Colmant's avatar
Patrick Colmant committed
267 268 269 270 271 272
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
273

Patrick's avatar
Patrick committed
274
CKEDITOR_SETTINGS = {
275
    'language': '{{ language }}',
Patrick Colmant's avatar
Patrick Colmant committed
276 277 278
    'toolbar_CMS': [
        ['Undo', 'Redo'],
        ['cmsplugins', '-', 'ShowBlocks'],
279
        ['Format',],
Patrick Colmant's avatar
Patrick Colmant committed
280 281 282 283 284 285 286 287 288 289 290 291
        ['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
292
        ['Source']
Patrick Colmant's avatar
Patrick Colmant committed
293 294
    ],
    'forcePasteAsPlainText': 'true',
Patrick's avatar
Patrick committed
295
    'skin': 'moono',
296
    # 'stylesSet' : 'my_styles:%sjs/ckeditor-styles.js' % STATIC_URL,
Patrick Colmant's avatar
Patrick Colmant committed
297
    'format_tags': 'p;h4;h5;blockquote;mutted;success;info;danger;heart;pushpin',
298 299 300 301 302 303 304 305 306 307 308 309 310 311
    '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' : '*(*)',
312 313 314 315 316
    # '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
317 318
    'basicEntities': False,
    'entities': False,
Patrick's avatar
Patrick committed
319
    'enterMode' : 2,
320
    # Do not dispaly the HTML Path below the edit window
Patrick Colmant's avatar
Patrick Colmant committed
321 322 323 324 325 326 327
    'removePlugins': 'elementspath',
}

CKEDITOR_SETTINGS_MODEL2 = {
    'language': '{{ language }}',
    'toolbar_HTMLField': [
        ['Format', 'Bold', 'Italic', 'TextColor', '-', 'NumberedList', 'BulletedList', 'RemoveFormat'],
328 329
        # ['Preview', 'Cut', 'Copy', 'PasteText', 'Image', 'Simplebox', 'Link', '-', 'Undo', 'Redo'],
        ['Preview', 'Cut', 'Copy', 'PasteText', 'Simplebox', 'Link', '-', 'Undo', 'Redo'],
Patrick's avatar
Patrick committed
330 331
        ['Source']
        # ['Maximize', '']
Patrick Colmant's avatar
Patrick Colmant committed
332
    ],
333
    'extraPlugins': 'simplebox',
Patrick Colmant's avatar
Patrick Colmant committed
334 335 336 337
    'forcePasteAsPlainText': 'true',
    'skin': 'moono',
    'format_tags': 'p;h4;h5',
    'contentsCss': '%sbootstrap/css/bootstrap.css' % STATIC_URL,
Patrick's avatar
Patrick committed
338
    '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
339 340
    'basicEntities': False,
    'entities': False,
341
    'enterMode': 2,
Patrick Colmant's avatar
Patrick Colmant committed
342
    'removePlugins': 'elementspath',
Patrick's avatar
Patrick committed
343 344
}

345
# Drag & Drop Images
Patrick's avatar
Patrick committed
346
# TEXT_SAVE_IMAGE_FUNCTION = 'djangocms_text_ckeditor.picture_save.create_picture_plugin'
Patrick's avatar
Patrick committed
347

348 349 350 351 352 353 354 355
# 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
356 357 358

FILER_ENABLE_LOGGING = False
FILER_IMAGE_USE_ICON = True
Patrick's avatar
Patrick committed
359 360
FILER_ALLOW_REGULAR_USERS_TO_ADD_ROOT_FOLDERS = True
FILER_ENABLE_PERMISSIONS = False
Patrick Colmant's avatar
Patrick Colmant committed
361 362
FILER_IS_PUBLIC_DEFAULT = True
FILER_SUBJECT_LOCATION_IMAGE_DEBUG = True
Patrick's avatar
Patrick committed
363
FILER_DUMP_PAYLOAD = True
Patrick Colmant's avatar
Patrick Colmant committed
364
FILER_DEBUG = False
Patrick Colmant's avatar
Patrick Colmant committed
365 366 367 368 369 370

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
371
    'easy_thumbnails.processors.background',
Patrick Colmant's avatar
Patrick Colmant committed
372
)
Patrick Colmant's avatar
Patrick Colmant committed
373
THUMBNAIL_HIGH_RESOLUTION = True
Patrick's avatar
Patrick committed
374 375
THUMBNAIL_PROGRESSIVE = 100
THUMBNAIL_PRESERVE_EXTENSIONS = True
Patrick Colmant's avatar
Patrick Colmant committed
376

Patrick's avatar
Patrick committed
377 378 379 380 381 382
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
383 384

##################### Repanier
385
AUTH_USER_MODEL = 'auth.User'
Patrick Colmant's avatar
Patrick Colmant committed
386
AUTHENTICATION_BACKENDS = ('repanier.auth_backend.RepanierCustomBackend',)
Patrick's avatar
Patrick committed
387
# ADMIN_LOGIN = 'pi'
388
# ADMIN_PASSWORD = 'raspberry'
Patrick Colmant's avatar
Patrick Colmant committed
389 390 391
LOGIN_URL = "/repanier/go_repanier/"
LOGIN_REDIRECT_URL = "/"
LOGOUT_URL = "/repanier/leave_repanier/"
Patrick Colmant's avatar
Patrick Colmant committed
392

Patrick Colmant's avatar
Patrick Colmant committed
393 394 395 396
##### From : django/conf/global_settings.py
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
Patrick's avatar
Patrick committed
397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
)

################# 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
420 421
)

Patrick Colmant's avatar
Patrick Colmant committed
422
STATICFILES_FINDERS += (
423
    'compressor.finders.CompressorFinder',
Patrick Colmant's avatar
Patrick Colmant committed
424 425
)

Patrick Colmant's avatar
Patrick Colmant committed
426 427 428 429 430 431
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
432 433 434 435
# COMPRESS_PRECOMPILERS = (
#     ('text/x-scss', 'django_libsass.SassCompiler'),
# )

Patrick Colmant's avatar
Patrick Colmant committed
436 437 438
###################### Django : Cache setup (https://docs.djangoproject.com/en/dev/topics/cache/)

CACHE_MIDDLEWARE_ALIAS = 'default'
Patrick's avatar
Patrick committed
439
CACHE_MIDDLEWARE_SECONDS = 3600
Patrick Colmant's avatar
Patrick Colmant committed
440

Patrick's avatar
Patrick committed
441 442 443 444 445 446 447 448 449 450 451
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
452 453

CMS_CACHE_DURATIONS = {
454 455 456 457 458
    'content': 300,  # default 60
    'menus': 3600,  # default 3600
    'permissions': 3600  # default: 3600
}

Patrick Colmant's avatar
Patrick Colmant committed
459 460 461 462 463
##################### DECIMAL
from decimal import getcontext, ROUND_HALF_UP

getcontext().rounding = ROUND_HALF_UP

Patrick's avatar
Patrick committed
464 465 466 467 468
##################### DJANGO REST_FRAMEWORK
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),
    'PAGE_SIZE': 10
}
Patrick's avatar
Patrick committed
469 470 471 472 473

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


Patrick's avatar
Patrick committed
474 475
DATE_INPUT_FORMATS = (DJANGO_SETTINGS_DATE, "%d/%m/%Y", "%Y-%m-%d")
DATETIME_INPUT_FORMATS = (DJANGO_SETTINGS_DATETIME,)
Patrick's avatar
Patrick committed
476

Patrick's avatar
Patrick committed
477
if DJANGO_SETTINGS_LOGGING:
Patrick's avatar
Patrick committed
478 479 480 481 482 483 484 485 486 487 488 489 490
    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
491 492 493
            },
            'console': {
                'level': 'INFO',
Patrick's avatar
Patrick committed
494 495 496 497 498 499 500 501
                'class': 'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
Patrick's avatar
Patrick committed
502 503
            },
            'django.db.backends': {
Patrick's avatar
Patrick committed
504 505 506 507 508 509
                'level': 'DEBUG',
                'handlers': ['console'],
            },
        }
    }

510

Patrick's avatar
Patrick committed
511
CMS_TEMPLATES = (
Patrick's avatar
Patrick committed
512 513 514 515 516
    ('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
517
)
518

Patrick's avatar
Patrick committed
519
# if DJANGO_SETTINGS_LANGUAGE == 'fr':
Patrick's avatar
Patrick committed
520

Patrick's avatar
Patrick committed
521 522 523 524 525 526 527 528 529 530 531
LANGUAGE_CODE = 'fr'
LANGUAGES = [
    ('fr', get_language_info('fr')['name_local']),
]
CMS_LANGUAGES = {
    SITE_ID: [
        {
        'code': 'fr',
        'name': get_language_info('fr')['name'],
        'public': True,
        'hide_untranslated': False,
Patrick's avatar
Patrick committed
532
        },
Patrick's avatar
Patrick committed
533 534 535 536 537 538 539 540 541 542 543 544
    ]
}
PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
PARLER_LANGUAGES = {
    SITE_ID: (
        {'code': LANGUAGE_CODE,},
    ),
    'default': {
        'fallbacks'        : [LANGUAGE_CODE],
        'hide_untranslated': False,
    },
}
Patrick's avatar
Patrick committed
545

Patrick's avatar
Patrick committed
546
if DJANGO_SETTINGS_LANGUAGE == 'es':
Patrick's avatar
Patrick committed
547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565

    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
566
        ),
Patrick's avatar
Patrick committed
567 568 569 570
        'default': {
            'fallbacks'        : [LANGUAGE_CODE],
            'hide_untranslated': False,
        },
Patrick's avatar
Patrick committed
571 572 573 574 575 576
    }

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

    LANGUAGE_CODE = 'fr'
    LANGUAGES = [
Patrick's avatar
Patrick committed
577 578 579
        ('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
580 581 582 583 584
    ]
    CMS_LANGUAGES = {
        SITE_ID: [
            {
                'code': 'fr',
Patrick's avatar
Patrick committed
585
                'name': get_language_info('fr')['name'],
Patrick's avatar
Patrick committed
586 587 588 589 590 591
                'public': True,
                'redirect_on_fallback':False,
                'hide_untranslated': False,
            },
            {
                'code': 'nl',
Patrick's avatar
Patrick committed
592
                'name': get_language_info('nl')['name'],
Patrick's avatar
Patrick committed
593 594 595 596 597
                'fallbacks': ['en', 'fr'],
                'public': True,
            },
            {
                'code': 'en',
Patrick's avatar
Patrick committed
598 599
                'name': get_language_info('en')['name'],
                'fallbacks': [LANGUAGE_CODE],
Patrick's avatar
Patrick committed
600 601 602 603 604 605 606 607 608 609 610 611
                'public': True,
            },
        ]
    }
    PARLER_DEFAULT_LANGUAGE_CODE = LANGUAGE_CODE
    PARLER_LANGUAGES = {
        SITE_ID: (
            {'code': 'fr',},
            {'code': 'nl',},
            {'code': 'en',},
        ),
        'default': {
Patrick's avatar
Patrick committed
612
                'fallbacks': [LANGUAGE_CODE],
Patrick's avatar
Patrick committed
613 614 615
                'hide_untranslated': False,
        },
    }
Patrick's avatar
Patrick committed
616
elif DJANGO_SETTINGS_LANGUAGE == 'fr-en':
Patrick's avatar
Patrick committed
617

Patrick's avatar
Patrick committed
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
    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,
        },
    }

Patrick's avatar
Patrick committed
652
DJANGO_SETTINGS_MULTIPLE_LANGUAGE = len(LANGUAGES) > 1
Patrick's avatar
Patrick committed
653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670
##################### 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
671
    },
Patrick's avatar
Patrick committed
672 673 674 675 676 677 678 679 680 681 682 683
    '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
684 685 686 687 688 689 690 691 692
}

CMS_PLACEHOLDER_CONF = {
    'home-hero': {
        'name': gettext('Hero'),
        'plugins': [
            'TextPlugin',
        ],
        'text_only_plugins': [
693 694
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
695 696 697
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720
        ],
        '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': [
721 722
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
723 724 725
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748
        ],
        '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
749
        'plugins'          : [
Patrick's avatar
Patrick committed
750 751 752
            'TextPlugin',
        ],
        'text_only_plugins': [
753 754
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
755 756 757
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780
        ],
        '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
781
        'plugins'          : [
Patrick's avatar
Patrick committed
782 783 784
            'TextPlugin',
        ],
        'text_only_plugins': [
785 786
            'TextLinkPlugin',
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
787 788 789
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812
        ],
        '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
813
        'plugins'          : [
Patrick's avatar
Patrick committed
814 815 816
            'TextPlugin',
        ],
        'text_only_plugins': [
Patrick's avatar
Patrick committed
817
            'TextLinkPlugin',
818
            # 'FilerLinkPlugin',
Patrick's avatar
Patrick committed
819 820 821
            'FilerImagePlugin',
            'FilerFilePlugin',
            'FilerVideoPlugin'
Patrick's avatar
Patrick committed
822 823 824 825 826 827 828 829 830 831 832 833 834 835 836
        ],
        '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
837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866
    '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
867 868
    'footer': {
        'name': gettext('Footer'),
Patrick's avatar
Patrick committed
869
        'plugins': ['TextPlugin',  'FilerImagePlugin'],
Patrick's avatar
Patrick committed
870
        'text_only_plugins': ['TextLinkPlugin'],
Patrick's avatar
Patrick committed
871 872 873 874 875 876 877 878 879 880 881 882 883 884 885
        'limits': {
            'TextPlugin': 1,
        },
        'default_plugins': [
            {
                'plugin_type': 'TextPlugin',
                'values': {
                    'body':
                        'Lorem ipsum dolor sit amet'

                },
            },
        ]
    },
}
Patrick's avatar
Patrick committed
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 944 945 946 947 948 949 950 951 952 953 954

##################### 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),
    )