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 permissions.models import Permission def button_navigation_widget(request, link): if 'permissions' in link: try: Permission.objects.check_permissions(request.user, link['permissions']) return render_widget(link) except PermissionDenied: return u'' else: return render_widget(link) def render_widget(link): return mark_safe(u'' % { 'url': reverse(link['view']) if 'view' in link else link['url'], 'icon': link.get('icon', 'link_button.png'), 'static_url': settings.STATIC_URL, 'string': capfirst(link['text']), 'image_alt': _(u'icon'), })