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 | ||