from __future__ import unicode_literals from django.urls import reverse from django.utils.encoding import force_text from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ from .classes import EventType def event_object_link(entry, attribute='target'): label = '' url = '#' obj_type = '' obj = getattr(entry, attribute) if obj: obj_type = '{}: '.format(obj._meta.verbose_name) if hasattr(obj, 'get_absolute_url'): url = obj.get_absolute_url() label = force_text(obj) return mark_safe( '%(obj_type)s%(label)s' % { 'url': url, 'label': label, 'obj_type': obj_type } ) def event_type_link(entry): return mark_safe( '%(label)s' % { 'url': reverse('events:events_by_verb', kwargs={'verb': entry.verb}), 'label': EventType.get(name=entry.verb) } ) def event_user_link(entry): if entry.actor == entry.target: return _('System') else: return mark_safe( '%(label)s' % { 'url': reverse('events:user_events', kwargs={'pk': entry.actor.pk}), 'label': entry.actor } )