dashboard: spin the status icon if new resultant state
also fix add a hash function to check whether we should update the activity feed Closes #230
Showing
also fix add a hash function to check whether we should update the activity feed Closes #230
... | ... | @@ -310,6 +310,9 @@ class VmDetailView(CheckedDetailView): |
activities = activities[:10] | ||
context['activities'] = activities | ||
context['show_show_all'] = show_show_all | ||
latest = instance.get_latest_activity_in_progress() | ||
context['is_new_state'] = (latest and | ||
instance.status != latest.resultant_state) | ||
Please
register
or
sign in
to reply
|
||
context['vlans'] = Vlan.get_objects_with_level( | ||
'user', self.request.user | ||
... | ... | @@ -2456,6 +2459,9 @@ def vm_activity(request, pk): |
response['human_readable_status'] = instance.get_status_display() | ||
response['status'] = instance.status | ||
response['icon'] = instance.get_status_icon() | ||
latest = instance.get_latest_activity_in_progress() | ||
response['is_new_state'] = (latest and | ||
instance.status != latest.resultant_state) | ||
context = { | ||
'instance': instance, | ||
... | ... |
... | ... | @@ -975,3 +975,10 @@ class Instance(AclBase, VirtualMachineDescModel, StatusModel, OperatedMixin, |
return vm_tasks.screenshot.apply_async(args=[self.vm_name], | ||
queue=queue_name | ||
).get(timeout=timeout) | ||
def get_latest_activity_in_progress(self): | ||
try: | ||
return InstanceActivity.objects.filter( | ||
instance=self, succeeded=None).latest("started") | ||
|
||
except InstanceActivity.DoesNotExist: | ||
return None |