From 7b836b685f36434a65afc6cf2e5e8fc0ccf0a3b8 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Wed, 11 Jun 2014 14:37:48 -0700 Subject: [PATCH] move UserDeployments to a separate file to resolve circular reference --- planetstack/core/models/__init__.py | 3 ++- planetstack/core/models/user.py | 19 ------------------- planetstack/core/models/userdeployments.py | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 planetstack/core/models/userdeployments.py 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 .tag import Tag 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 collections import defaultdict 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 @@ class User(AbstractBaseUser): 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 -- 2.43.0