diff --git a/mayan/apps/events/apps.py b/mayan/apps/events/apps.py
index abbce94d7d..5e0b765167 100644
--- a/mayan/apps/events/apps.py
+++ b/mayan/apps/events/apps.py
@@ -9,13 +9,17 @@ from rest_api.classes import APIEndPoint
from .links import link_events_list
from .licenses import * # NOQA
-from .widgets import event_type_link
+from .widgets import event_object_link, event_type_link
def event_actor(action):
return _('System') if action.actor == action.target else action.actor
+def event_action_object(action):
+ return action.action_object if action.action_object != action.target and action.action_object else ''
+
+
class EventsApp(MayanAppConfig):
has_tests = True
name = 'events'
@@ -38,5 +42,11 @@ class EventsApp(MayanAppConfig):
source=Action, label=_('Verb'),
func=lambda context: event_type_link(context['object'])
)
+ SourceColumn(
+ source=Action, label=_('Action object'),
+ func=lambda context: event_object_link(
+ entry=context['object'], attribute='action_object'
+ )
+ )
menu_tools.bind_links(links=(link_events_list,))
diff --git a/mayan/apps/events/widgets.py b/mayan/apps/events/widgets.py
index e2cb52cf1c..075a1edd76 100644
--- a/mayan/apps/events/widgets.py
+++ b/mayan/apps/events/widgets.py
@@ -6,15 +6,26 @@ from django.utils.safestring import mark_safe
from .classes import Event
-def event_object_link(entry):
- return mark_safe('%(label)s' % {
- 'url': entry.target.get_absolute_url() if entry.target else '#',
- 'label': entry.target}
+def event_object_link(entry, attribute='target'):
+ obj = getattr(entry, attribute)
+
+ if obj:
+ obj_type = '{}: '.format(obj._meta.verbose_name)
+ else:
+ obj_type = ''
+
+ return mark_safe(
+ '%(obj_type)s%(label)s' % {
+ 'url': obj.get_absolute_url() if obj else '#',
+ 'label': obj or '', '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': Event.get_label(entry.verb)}
+ return mark_safe(
+ '%(label)s' % {
+ 'url': reverse('events:events_by_verb', kwargs={'verb': entry.verb}),
+ 'label': Event.get_label(entry.verb)
+ }
)