diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py index 142e4a9..de33326 100644 --- a/circle/dashboard/views.py +++ b/circle/dashboard/views.py @@ -207,11 +207,7 @@ class VmDetailView(CheckedDetailView): }) # activity data - context['activities'] = ( - InstanceActivity.objects.filter( - instance=self.object, parent=None). - order_by('-started'). - select_related('user').prefetch_related('children')) + context['activities'] = self.object.get_activities(self.request.user) context['vlans'] = Vlan.get_objects_with_level( 'user', self.request.user @@ -1683,9 +1679,7 @@ def vm_activity(request, pk): if only_status == "false": # instance activity context = { 'instance': instance, - 'activities': InstanceActivity.objects.filter( - instance=instance, parent=None - ).order_by('-started').select_related(), + 'activities': instance.get_activities(request.user), 'ops': get_operations(instance, request.user), } @@ -2290,10 +2284,8 @@ class InstanceActivityDetail(SuperuserRequiredMixin, DetailView): def get_context_data(self, **kwargs): ctx = super(InstanceActivityDetail, self).get_context_data(**kwargs) - ctx['activities'] = ( - self.object.instance.activity_log.filter(parent=None). - order_by('-started').select_related('user'). - prefetch_related('children')) + ctx['activities'] = self.object.instance.get_activities( + self.request.user) return ctx diff --git a/circle/vm/models/instance.py b/circle/vm/models/instance.py index 3b56ea7..824f68a 100644 --- a/circle/vm/models/instance.py +++ b/circle/vm/models/instance.py @@ -881,3 +881,9 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin, 'PENDING': 'icon-rocket', 'DESTROYED': 'icon-trash', 'MIGRATING': 'icon-truck'}.get(self.status, 'icon-question-sign') + + def get_activities(self, user=None): + acts = (self.activity_log.filter(parent=None). + order_by('-started'). + select_related('user').prefetch_related('children')) + return acts