From 8f7ae26b74e83490c05a11c611057b033ec436d6 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 15 Jun 2020 11:02:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/orgs/models.py | 15 +++++---------- apps/orgs/serializers.py | 10 ++-------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/apps/orgs/models.py b/apps/orgs/models.py index b9c1f857d..1e1c6d60b 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -106,11 +106,8 @@ class Organization(models.Model): else: return '' - def org_auditors(self): - return self.members.filter(role=OrganizationMembers.ROLE_AUDITOR) - def get_org_auditors(self): - return self.org_auditors() + return self.members.filter(role=OrganizationMembers.ROLE_AUDITOR) def get_org_members(self, role=None): from users.models import User @@ -138,21 +135,19 @@ class Organization(models.Model): return self.id not in (self.DEFAULT_NAME, self.ROOT_ID, self.SYSTEM_ID) @classmethod - def get_user_joined_orgs(cls, user, role=None, role_in=None): + def get_user_joined_orgs(cls, user, roles=None): if user.is_anonymous: return cls.objects.none() kwargs = {'user': user} - if role: - kwargs['role'] = role - elif role_in: - kwargs['role__in'] = role_in + if roles: + kwargs['role__in'] = roles orgs_id = OrganizationMembers.objects.filter(**kwargs).values_list('org', flat=True) return cls.objects.filter(id__in=orgs_id) @classmethod def get_user_admin_or_audit_orgs(cls, user): roles = [OrganizationMembers.ROLE_ADMIN, OrganizationMembers.ROLE_AUDITOR] - return cls.get_user_joined_orgs(role_in=roles) + return cls.get_user_joined_orgs(user, roles=roles) @classmethod def default(cls): diff --git a/apps/orgs/serializers.py b/apps/orgs/serializers.py index 5b299774f..00862564b 100644 --- a/apps/orgs/serializers.py +++ b/apps/orgs/serializers.py @@ -13,12 +13,9 @@ class OrgSerializer(ModelSerializer): fields_mini = ['id', 'name'] fields_small = fields_mini + ['comment', 'created_by', 'date_created'] fields = fields_small + field_m2m = ['members'] read_only_fields = ['created_by', 'date_created'] - extra_kwargs = { - 'admins': {'write_only': True}, - 'users': {'write_only': True}, - 'auditors': {'write_only': True}, - } + class OrgReadSerializer(ModelSerializer): admins_amount = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True) @@ -63,6 +60,3 @@ class OrgRetrieveSerializer(OrgReadSerializer): admins = serializers.PrimaryKeyRelatedField(many=True, read_only=True) auditors = serializers.PrimaryKeyRelatedField(many=True, read_only=True) users = serializers.PrimaryKeyRelatedField(many=True, read_only=True) - - class Meta(OrgReadSerializer.Meta): - pass -- GitLab