123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from django.conf import settings
- from django.utils.translation import gettext as _
-
- import logging
- import importlib
-
- from mycreole import url_upload
- from themes import color_icon_url
-
- try:
- from config import APP_NAME as ROOT_LOGGER_NAME
- except ImportError:
- ROOT_LOGGER_NAME = 'root'
- logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__)
-
- NEW_ATTACHMENT_UID = 'new_attachment'
-
-
- def context_adaption(context, request, title, rel_path, **kwargs):
- def get_method(import_string):
- class_data = import_string.split(".")
- module_path = ".".join(class_data[:-1])
- class_str = class_data[-1]
- #
- module = importlib.import_module(module_path)
- return getattr(module, class_str)
-
- def log_warning(method_name, e):
- logger.warning('Could not import %s method for extending bars: %s - %s', method_name, type(e).__name__, e)
-
- context.set_additional_title(title)
- for key in ["menubar", "navibar"]:
- try:
- method_name = settings.MYCREOLE_BAR[key]
- except (AttributeError, KeyError) as e:
- log_warning(key, e)
- else:
- method = get_method(method_name)
- method(context, request, caller_name="attachments")
- add_new(request, context[context.ACTIONBAR], rel_path, kwargs.get('next'))
- for key in kwargs:
- context[key] = kwargs[key]
- logger.debug("context adapted: %s", repr(context))
-
-
- def add_new(request, bar, rel_path, nxt):
- bar.append_entry(
- NEW_ATTACHMENT_UID, # uid
- _('New Attachment'), # name
- color_icon_url(request, 'plus.png'), # icon
- url_upload(request, rel_path, nxt), # url
- True, # left
- False # active
- )
|