fix(api): add teams and permissions to org and teams respectively

!13
This commit is contained in:
2024-05-28 15:05:27 +09:30
parent a3716b0158
commit 1c9d8b1c7e
3 changed files with 44 additions and 5 deletions

View File

@ -1,15 +1,48 @@
from rest_framework import serializers
from rest_framework import serializers, request
from rest_framework.reverse import reverse
from access.models import Organization, Team
from django.contrib.auth.models import Permission
class TeamSerializer(serializers.ModelSerializer):
class TeamSerializerBase(serializers.ModelSerializer):
view_name="_api_team"
url = serializers.SerializerMethodField('get_url')
class Meta:
model = Team
fields = (
"group_ptr_id",
"id",
"name",
'organization',
'url',
)
def get_url(self, obj):
request = self.context.get('request')
return request.build_absolute_uri(reverse(self.view_name, args=[obj.organization.id,obj.pk]))
class TeamSerializer(TeamSerializerBase):
class Meta:
model = Team
depth = 1
fields = (
"id",
"name",
'organization',
'permissions',
'url',
)
@ -20,11 +53,16 @@ class OrganizationSerializer(serializers.ModelSerializer):
view_name="_api_organization", format="html"
)
teams = TeamSerializerBase(source='team_set', many=True, read_only=False)
view_name="_api_organization"
class Meta:
model = Organization
fields = (
"id",
"name",
'teams',
'url',
)