from __future__ import absolute_import import urlparse from django.utils.safestring import mark_safe from django.conf import settings from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse from django.template.defaultfilters import capfirst from django.core.exceptions import PermissionDenied from django.template import RequestContext, Variable from permissions.models import Permission from .utils import resolve_to_name def button_navigation_widget(request, link): if link.permissions: try: Permission.objects.check_permissions(request.user, link.permissions) return render_widget(request, link) except PermissionDenied: return u'' else: return render_widget(request, link) def render_widget(request, link): context = RequestContext(request) resolved_link = link.resolve(context) return mark_safe(u'' % { 'url': resolved_link.url, 'icon': getattr(resolved_link, 'icon', 'link_button.png'), 'static_url': settings.STATIC_URL, 'string': capfirst(resolved_link.text), 'image_alt': _(u'icon'), })