diff --git a/apps/converter/__init__.py b/apps/converter/__init__.py index 50ff26850e..6f1785f4f6 100644 --- a/apps/converter/__init__.py +++ b/apps/converter/__init__.py @@ -7,7 +7,7 @@ from project_tools.api import register_tool from .utils import load_backend from .links import formats_list -from .conf.settings import GRAPHICS_BACKEND +from .settings import GRAPHICS_BACKEND register_sidebar_template(['formats_list'], 'converter_file_formats_help.html') diff --git a/apps/converter/api.py b/apps/converter/api.py index 56555eff0c..79957d6f5b 100644 --- a/apps/converter/api.py +++ b/apps/converter/api.py @@ -6,7 +6,7 @@ import logging from django.utils.encoding import smart_str -from common.conf.settings import TEMPORARY_DIRECTORY +from common.settings import TEMPORARY_DIRECTORY from common.textparser import TextParser, TEXT_PARSER_MIMETYPES from mimetype.api import get_mimetype diff --git a/apps/converter/icons.py b/apps/converter/icons.py new file mode 100644 index 0000000000..e4f83d67cc --- /dev/null +++ b/apps/converter/icons.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import + +from icons.literals import PICTURES +from icons import Icon + +icon_format_list = Icon(PICTURES) + diff --git a/apps/converter/links.py b/apps/converter/links.py index b1db5e4513..497871d667 100644 --- a/apps/converter/links.py +++ b/apps/converter/links.py @@ -1,9 +1,12 @@ +from __future__ import absolute_import + from django.utils.translation import ugettext_lazy as _ from navigation.api import Link +from .icons import icon_format_list def is_superuser(context): return context['request'].user.is_staff or context['request'].user.is_superuser -formats_list = Link(text=_('file formats'), view='formats_list', sprite='pictures', icon='pictures.png', condition=is_superuser, children_view_regex=[r'formats_list']) +formats_list = Link(text=_('file formats'), view='formats_list', icon=icon_format_list, condition=is_superuser, children_view_regex=[r'formats_list']) diff --git a/apps/converter/office_converter.py b/apps/converter/office_converter.py index 46614839ac..8b13d54648 100644 --- a/apps/converter/office_converter.py +++ b/apps/converter/office_converter.py @@ -5,9 +5,9 @@ import subprocess import logging from mimetype.api import get_mimetype -from common.conf.settings import TEMPORARY_DIRECTORY +from common.settings import TEMPORARY_DIRECTORY -from .conf.settings import LIBREOFFICE_PATH +from .settings import LIBREOFFICE_PATH from .exceptions import OfficeBackendError, UnknownFileFormat CACHED_FILE_SUFFIX = u'_office_converter' diff --git a/apps/converter/settings.py b/apps/converter/settings.py index 7d3ba2aeac..dd78f96b45 100644 --- a/apps/converter/settings.py +++ b/apps/converter/settings.py @@ -2,60 +2,54 @@ from django.utils.translation import ugettext_lazy as _ -from smart_settings.api import Setting, SettingNamespace +from smart_settings import SettingsNamespace, LocalScope -namespace = SettingNamespace('converter', _(u'Converter'), module='converter.conf.settings') +namespace = SettingsNamespace('converter', _(u'Converter'), module='converter.settings') -Setting( - namespace=namespace, +namespace.add_setting( name='IM_CONVERT_PATH', - global_name='CONVERTER_IM_CONVERT_PATH', default=u'/usr/bin/convert', description=_(u'File path to imagemagick\'s convert program.'), exists=True, + scopes=[LocalScope] ) -Setting( - namespace=namespace, +namespace.add_setting( name='IM_IDENTIFY_PATH', - global_name='CONVERTER_IM_IDENTIFY_PATH', default=u'/usr/bin/identify', description=_(u'File path to imagemagick\'s identify program.'), exists=True, + scopes=[LocalScope] ) -Setting( - namespace=namespace, +namespace.add_setting( name='GM_PATH', - global_name='CONVERTER_GM_PATH', default=u'/usr/bin/gm', description=_(u'File path to graphicsmagick\'s program.'), exists=True, + scopes=[LocalScope] ) -Setting( - namespace=namespace, +namespace.add_setting( name='GM_SETTINGS', - global_name='CONVERTER_GM_SETTINGS', default=u'', description=_(u'Set of configuration options to pass to the GraphicsMagick executable to fine tune it\'s functionality as explained in the GraphicsMagick documentation.'), + scopes=[LocalScope] ) -Setting( - namespace=namespace, +namespace.add_setting( name='GRAPHICS_BACKEND', - global_name='CONVERTER_GRAPHICS_BACKEND', default=u'converter.backends.python', description=_(u'Graphics conversion backend to use. Options are: converter.backends.imagemagick, converter.backends.graphicsmagick and converter.backends.python.'), + scopes=[LocalScope] ) -Setting( - namespace=namespace, +namespace.add_setting( name='LIBREOFFICE_PATH', - global_name='CONVERTER_LIBREOFFICE_PATH', default=u'/usr/bin/libreoffice', description=_(u'Path to the libreoffice program.'), - exists=True + exists=True, + scopes=[LocalScope] ) #{'name': u'OCR_OPTIONS', 'global_name': u'CONVERTER_OCR_OPTIONS', 'default': u'-colorspace Gray -depth 8 -resample 200x200'}, diff --git a/apps/converter/utils.py b/apps/converter/utils.py index d85157ff2b..ddcba2bda1 100644 --- a/apps/converter/utils.py +++ b/apps/converter/utils.py @@ -1,8 +1,12 @@ +from __future__ import absolute_import + import os from django.core.exceptions import ImproperlyConfigured from django.utils.importlib import import_module +from .settings import GRAPHICS_BACKEND + def _lazy_load(fn): _cached = [] @@ -16,10 +20,9 @@ def _lazy_load(fn): @_lazy_load def load_backend(): - from converter.conf.settings import GRAPHICS_BACKEND as backend_name try: - module = import_module('.base', 'converter.backends.%s' % backend_name) + module = import_module('.base', 'converter.backends.%s' % GRAPHICS_BACKEND) import warnings warnings.warn( "Short names for CONVERTER_BACKEND are deprecated; prepend with 'converter.backends.'", @@ -29,7 +32,7 @@ def load_backend(): except ImportError, e: # Look for a fully qualified converter backend name try: - return import_module('.base', backend_name) + return import_module('.base', GRAPHICS_BACKEND) except ImportError, e_user: # The converter backend wasn't found. Display a helpful error message # listing all possible (built-in) converter backends. @@ -41,11 +44,11 @@ def load_backend(): except EnvironmentError: available_backends = [] available_backends.sort() - if backend_name not in available_backends: + if GRAPHICS_BACKEND not in available_backends: error_msg = ("%r isn't an available converter backend. \n" + "Try using converter.backends.XXX, where XXX is one of:\n %s\n" + "Error was: %s") % \ - (backend_name, ", ".join(map(repr, available_backends)), e_user) + (GRAPHICS_BACKEND, ", ".join(map(repr, available_backends)), e_user) raise ImproperlyConfigured(error_msg) else: # If there's some other error, this must be an error in Mayan itself. diff --git a/apps/converter/views.py b/apps/converter/views.py index 11bba36925..5e03bcfffd 100644 --- a/apps/converter/views.py +++ b/apps/converter/views.py @@ -8,7 +8,7 @@ from django.core.exceptions import PermissionDenied from common.utils import encapsulate from .api import get_format_list -from .conf.settings import GRAPHICS_BACKEND +from .settings import GRAPHICS_BACKEND def formats_list(request):