diff --git a/addon.json b/addon.json new file mode 100644 index 000000000..1319b4cbb --- /dev/null +++ b/addon.json @@ -0,0 +1,9 @@ +{ + "package-name": "django-filer", + "installed-apps": [ + "filer", + "easy_thumbnails", + "mptt", + "polymorphic" + ] +} diff --git a/aldryn_config.py b/aldryn_config.py new file mode 100644 index 000000000..f4776d564 --- /dev/null +++ b/aldryn_config.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +from aldryn_client import forms + + +class Form(forms.BaseForm): + + def to_settings(self, data, settings): + from functools import partial + from aldryn_addons.utils import boolean_ish, djsenv + from aldryn_django import storage + + env = partial(djsenv, settings=settings) + + # django-filer + settings['FILER_DEBUG'] = boolean_ish(env('FILER_DEBUG', settings['DEBUG'])) + settings['FILER_ENABLE_LOGGING'] = boolean_ish(env('FILER_ENABLE_LOGGING', True)) + settings['FILER_IMAGE_USE_ICON'] = True + settings['ADDON_URLS'].append( + 'filer.server.urls' + ) + settings.setdefault('MEDIA_HEADERS', []).insert(0, ( + r'filer_public(?:_thumbnails)?/.*', + { + 'Cache-Control': 'public, max-age={}'.format(86400 * 365), + }, + )) + + # easy-thumbnails + settings['THUMBNAIL_QUALITY'] = env('THUMBNAIL_QUALITY', 90) + # FIXME: enabling THUMBNAIL_HIGH_RESOLUTION causes timeouts/500! + settings['THUMBNAIL_HIGH_RESOLUTION'] = False + settings['THUMBNAIL_PRESERVE_EXTENSIONS'] = ['png', 'gif'] + settings['THUMBNAIL_PROCESSORS'] = ( + 'easy_thumbnails.processors.colorspace', + 'easy_thumbnails.processors.autocrop', + 'filer.thumbnail_processors.scale_and_crop_with_subject_location', + 'easy_thumbnails.processors.filters', + ) + settings['THUMBNAIL_SOURCE_GENERATORS'] = ( + 'easy_thumbnails.source_generators.pil_image', + ) + settings['THUMBNAIL_CACHE_DIMENSIONS'] = True + + # easy_thumbnails uses django's default storage backend (local file + # system storage) by default, even if the DEFAULT_FILE_STORAGE setting + # points to something else. + # If the DEFAULT_FILE_STORAGE has been set to a value known by + # aldryn-django, then use that as THUMBNAIL_DEFAULT_STORAGE as well. + for storage_backend in storage.SCHEMES.values(): + if storage_backend == settings['DEFAULT_FILE_STORAGE']: + settings['THUMBNAIL_DEFAULT_STORAGE'] = storage_backend + break + return settings diff --git a/tox.ini b/tox.ini index f4c38bfcc..fd9f7e732 100644 --- a/tox.ini +++ b/tox.ini @@ -25,7 +25,7 @@ commands = [testenv:flake8] deps = - flake8 + flake8<3.0 flake8-isort commands = flake8 @@ -47,6 +47,8 @@ commands = - coverage erase coverage run test_settings.py {posargs} - coverage report +passenv = + HOME setenv = custom_image: CUSTOM_IMAGE=filer.test_utils.custom_image.models.Image deps =