stash
This commit is contained in:
parent
6d2167ac66
commit
4787acd8eb
23 changed files with 1241 additions and 25 deletions
|
|
@ -1,6 +1,6 @@
|
|||
from rest_framework import serializers
|
||||
from authentication.models import KnownIdentity, ToolshedUser, FriendRequestIncoming
|
||||
from authentication.serializers import OwnerSerializer
|
||||
from authentication.models import KnownIdentity, ToolshedUser, FriendRequestIncoming, Group, GroupInviteIncoming
|
||||
from authentication.serializers import OwnerSerializer, GroupOwnerSerializer
|
||||
from files.models import File
|
||||
from files.serializers import FileSerializer
|
||||
from toolshed.models import Category, Property, ItemProperty, InventoryItem, Tag, StorageLocation, WorkflowInstance
|
||||
|
|
@ -68,6 +68,45 @@ class FriendRequestSerializer(serializers.ModelSerializer):
|
|||
return obj.befriender_username + '@' + obj.befriender_domain
|
||||
|
||||
|
||||
class GroupMemberSerializer(serializers.ModelSerializer):
|
||||
username = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = KnownIdentity
|
||||
fields = ['id', 'username', 'public_key']
|
||||
|
||||
def get_username(self, obj):
|
||||
return obj.username + '@' + obj.domain
|
||||
|
||||
|
||||
class GroupSerializer(serializers.ModelSerializer):
|
||||
handle = serializers.SerializerMethodField()
|
||||
members = GroupMemberSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Group
|
||||
fields = ['id', 'name', 'domain', 'handle', 'members']
|
||||
read_only_fields = ['domain', 'handle', 'members']
|
||||
|
||||
def get_handle(self, obj):
|
||||
return str(obj)
|
||||
|
||||
|
||||
class GroupInviteIncomingSerializer(serializers.ModelSerializer):
|
||||
group = serializers.SerializerMethodField()
|
||||
inviter = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = GroupInviteIncoming
|
||||
fields = ['id', 'group', 'inviter', 'secret']
|
||||
|
||||
def get_group(self, obj):
|
||||
return f"#{obj.group_name}@{obj.group_domain}"
|
||||
|
||||
def get_inviter(self, obj):
|
||||
return obj.inviter_username + '@' + obj.inviter_domain
|
||||
|
||||
|
||||
class PropertySerializer(serializers.ModelSerializer):
|
||||
category = serializers.SerializerMethodField()
|
||||
handle = serializers.SerializerMethodField()
|
||||
|
|
@ -139,6 +178,7 @@ class ItemPropertySerializer(serializers.ModelSerializer):
|
|||
|
||||
class InventoryItemSerializer(serializers.ModelSerializer):
|
||||
owner = OwnerSerializer(read_only=True)
|
||||
owner_group = GroupOwnerSerializer(read_only=True)
|
||||
tags = serializers.SerializerMethodField()
|
||||
tags_input = serializers.ListField(child=serializers.CharField(), write_only=True, required=False)
|
||||
properties = ItemPropertySerializer(many=True, required=False, source='itemproperty_set')
|
||||
|
|
@ -147,8 +187,8 @@ class InventoryItemSerializer(serializers.ModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = InventoryItem
|
||||
fields = ['id', 'name', 'description', 'owner', 'category', 'availability_policy', 'owned_quantity', 'owner',
|
||||
'tags', 'tags_input', 'properties', 'files', 'storage_location']
|
||||
fields = ['id', 'name', 'description', 'owner', 'owner_group', 'category', 'availability_policy',
|
||||
'owned_quantity', 'tags', 'tags_input', 'properties', 'files', 'storage_location']
|
||||
|
||||
def get_tags(self, obj):
|
||||
return [tag.name for tag in obj.tags.all()]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue