move UserDeployments to a separate file to resolve circular reference
diff --git a/planetstack/core/models/__init__.py b/planetstack/core/models/__init__.py
index e31da37..4e76958 100644
--- a/planetstack/core/models/__init__.py
+++ b/planetstack/core/models/__init__.py
@@ -8,10 +8,11 @@
from .role import Role
from .site import Site,Deployment, DeploymentRole, DeploymentPrivilege, SiteDeployments
from .dashboard import DashboardView
-from .user import User, UserDeployments, UserDashboardView
+from .user import User, UserDashboardView
from .serviceclass import ServiceClass
from .slice import Slice, SliceDeployments
from .site import SitePrivilege, SiteDeployments
+from .userdeployments import UserDeployments
from .image import Image, ImageDeployments
from .node import Node
from .serviceresource import ServiceResource
diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py
index 6e7eef6..fba2a7e 100644
--- a/planetstack/core/models/user.py
+++ b/planetstack/core/models/user.py
@@ -4,7 +4,6 @@
from django.db import models
from django.db.models import F, Q
from core.models import PlCoreBase,Site, DashboardView
-from core.models.deployment import Deployment
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
from timezones.fields import TimeZoneField
from operator import itemgetter, attrgetter
@@ -164,24 +163,6 @@
qs = User.objects.filter(Q(site__in=sites) | Q(id__in=user_ids))
return qs
-
-
-class UserDeployments(PlCoreBase):
- user = models.ForeignKey(User)
- deployment = models.ForeignKey(Deployment)
- kuser_id = models.CharField(null=True, blank=True, max_length=200, help_text="Keystone user id")
-
- def __unicode__(self): return u'%s %s' % (self.user, self.deployment.name)
-
- @staticmethod
- def select_by_user(user):
- if user.is_admin:
- qs = UserDeployments.objects.all()
- else:
- users = Users.select_by_user(user)
- qs = Usereployments.objects.filter(user__in=slices)
- return qs
-
class UserDashboardView(PlCoreBase):
user = models.ForeignKey(User, related_name="dashboardViews")
dashboardView = models.ForeignKey(DashboardView, related_name="dashboardViews")
diff --git a/planetstack/core/models/userdeployments.py b/planetstack/core/models/userdeployments.py
new file mode 100644
index 0000000..3422156
--- /dev/null
+++ b/planetstack/core/models/userdeployments.py
@@ -0,0 +1,22 @@
+import os
+import datetime
+from collections import defaultdict
+from django.db import models
+from django.db.models import F, Q
+from core.models import PlCoreBase,Site,User,Deployment
+
+class UserDeployments(PlCoreBase):
+ user = models.ForeignKey(User)
+ deployment = models.ForeignKey(Deployment)
+ kuser_id = models.CharField(null=True, blank=True, max_length=200, help_text="Keystone user id")
+
+ def __unicode__(self): return u'%s %s' % (self.user, self.deployment.name)
+
+ @staticmethod
+ def select_by_user(user):
+ if user.is_admin:
+ qs = UserDeployments.objects.all()
+ else:
+ users = Users.select_by_user(user)
+ qs = Usereployments.objects.filter(user__in=slices)
+ return qs