Compare commits

...

2 Commits
dev ... v2.3.2

Author SHA1 Message Date
ibuler
8e6e8a0cbd fix: 修复资产列表有时的bug 2020-09-29 23:51:11 -05:00
xinwen
493e61aa34 fix(orgs): 用户修改组织角色报错 2020-09-29 23:46:45 -05:00
2 changed files with 11 additions and 2 deletions

View File

@@ -125,6 +125,8 @@ class TreeService(Tree):
def assets(self, nid): def assets(self, nid):
node = self.get_node(nid) node = self.get_node(nid)
if not node:
return set()
return node.data.get("assets", set()) return node.data.get("assets", set())
def valid_assets(self, nid): def valid_assets(self, nid):
@@ -132,6 +134,8 @@ class TreeService(Tree):
def all_assets(self, nid): def all_assets(self, nid):
node = self.get_node(nid) node = self.get_node(nid)
if not node:
return set()
if node.data is None: if node.data is None:
node.data = {} node.data = {}
all_assets = node.data.get("all_assets") all_assets = node.data.get("all_assets")

View File

@@ -1,5 +1,6 @@
import uuid import uuid
from functools import partial from functools import partial
from itertools import chain
from django.db import models from django.db import models
from django.db.models import signals from django.db.models import signals
@@ -229,6 +230,10 @@ def _none2list(*args):
return ([] if v is None else v for v in args) return ([] if v is None else v for v in args)
def _users2pks(users, admins, auditors):
return [user.pk for user in chain(users, admins, auditors)]
class UserRoleMapper(dict): class UserRoleMapper(dict):
def __init__(self, container=set): def __init__(self, container=set):
super().__init__() super().__init__()
@@ -266,7 +271,7 @@ class OrgMemeberManager(models.Manager):
users, admins, auditors = _none2list(users, admins, auditors) users, admins, auditors = _none2list(users, admins, auditors)
send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False, send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False,
model=User, pk_set=[*users, *admins, *auditors], using=self.db) model=User, pk_set=_users2pks(users, admins, auditors), using=self.db)
send(action="pre_remove") send(action="pre_remove")
self.filter(org_id=org.id).filter( self.filter(org_id=org.id).filter(
@@ -297,7 +302,7 @@ class OrgMemeberManager(models.Manager):
oms_add.append(self.model(org_id=org.id, user_id=user, role=role)) oms_add.append(self.model(org_id=org.id, user_id=user, role=role))
send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False, send = partial(signals.m2m_changed.send, sender=self.model, instance=org, reverse=False,
model=User, pk_set=[*users, *admins, *auditors], using=self.db) model=User, pk_set=_users2pks(users, admins, auditors), using=self.db)
send(action='pre_add') send(action='pre_add')
self.bulk_create(oms_add) self.bulk_create(oms_add)