From 1df0e6edd07ad3b276137ad5f1f68d6df97651fd Mon Sep 17 00:00:00 2001
From: Kálmán Viktor <kviktor@cloud.bme.hu>
Date: Wed, 20 Nov 2013 16:29:05 +0100
Subject: [PATCH] dashboard: add model manager for active instances

---
 circle/dashboard/views.py |  2 +-
 circle/vm/models.py       | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py
index 81655e7..a53a90f 100644
--- a/circle/dashboard/views.py
+++ b/circle/dashboard/views.py
@@ -206,7 +206,7 @@ class TemplateDetail(DetailView):
 
 class VmList(SingleTableView):
     template_name = "dashboard/vm-list.html"
-    model = Instance
+    queryset = Instance.active.all()
     table_class = VmListTable
     table_pagination = False
 
diff --git a/circle/vm/models.py b/circle/vm/models.py
index 2b69a29..248ecd5 100644
--- a/circle/vm/models.py
+++ b/circle/vm/models.py
@@ -9,7 +9,7 @@ from django.contrib.auth.models import User
 from django.core import signing
 from django.db.models import (Model, ForeignKey, ManyToManyField, IntegerField,
                               DateTimeField, BooleanField, TextField,
-                              CharField, permalink)
+                              CharField, permalink, Manager)
 from django.utils import timezone
 from django.utils.translation import ugettext_lazy as _
 
@@ -34,6 +34,12 @@ ARCHITECTURES = (('x86_64', 'x86-64 (64 bit)'),
 VNC_PORT_RANGE = (2000, 65536)  # inclusive start, exclusive end
 
 
+class InstanceActiveManager(Manager):
+    def get_query_set(self):
+        return super(InstanceActiveManager,
+                     self).get_query_set().filter(destroyed=None)
+
+
 class BaseResourceConfigModel(Model):
 
     """Abstract base for models with base resource configuration parameters.
@@ -413,6 +419,8 @@ class Instance(AclBase, VirtualMachineDescModel, TimeStampedModel):
     destroyed = DateTimeField(blank=True, null=True,
                               help_text=_("The virtual machine's time of "
                                           "destruction."))
+    objects = Manager()
+    active = InstanceActiveManager()
 
     class Meta:
         ordering = ['pk', ]
--
libgit2 0.26.0