diff -r 66243fb5e3fc -r 2ff785d7026c server/python/django2/renkanmanager/serializers.py --- a/server/python/django2/renkanmanager/serializers.py Tue Mar 01 17:39:39 2016 +0100 +++ b/server/python/django2/renkanmanager/serializers.py Thu Mar 03 17:09:27 2016 +0100 @@ -1,6 +1,8 @@ import json import uuid +from django.contrib.auth import get_user_model +from django.conf import settings from guardian.shortcuts import assign_perm from renkanmanager.models import Renkan, Workspace, Revision from rest_framework import serializers @@ -12,7 +14,7 @@ workspace_id = serializers.CharField(source="workspace_guid", required=False) source_revision_id = serializers.CharField(source="source_revision_guid", required=False) revision_count = serializers.ReadOnlyField() - created_by = serializers.StringRelatedField(source="creator") + created_by = serializers.SlugRelatedField(source="creator", slug_field=settings.RENKAN_USER_DISPLAY_FIELD, read_only=True) last_updated_by = serializers.SerializerMethodField("get_current_revision_last_updator") title = serializers.CharField(required=False) content = serializers.JSONField(required=False) @@ -23,7 +25,7 @@ # ADD ERROR HANDLING def get_current_revision_last_updator(self, renkan): current_revision = Revision.objects.get(revision_guid = renkan.current_revision_guid) - return current_revision.last_updated_by.username + return getattr(current_revision.last_updated_by, settings.RENKAN_USER_DISPLAY_FIELD) def get_current_revision_modification_date(self, renkan): @@ -127,9 +129,9 @@ workspace_id = serializers.SerializerMethodField("get_related_workspace_guid") title = serializers.ReadOnlyField() content = serializers.JSONField(read_only=True) - renkan_created_by = serializers.SerializerMethodField("get_related_project_creator") - renkan_creation_date = serializers.SerializerMethodField("get_related_project_creation_date") - revision_created_by = serializers.StringRelatedField(source="creator") + renkan_created_by = serializers.SerializerMethodField("get_related_renkan_creator") + renkan_creation_date = serializers.SerializerMethodField("get_related_renkan_creation_date") + revision_created_by = serializers.SlugRelatedField(source="creator", slug_field=settings.RENKAN_USER_DISPLAY_FIELD, read_only=True) revision_last_updated_by = serializers.StringRelatedField(source="last_updated_by") revision_modification_date = serializers.ReadOnlyField(source="modification_date") @@ -137,18 +139,18 @@ parent_renkan = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid) return parent_renkan.workspace_guid - def get_related_project_creator(self, revision): - parent_project = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid) - return parent_project.creator.username + def get_related_renkan_creator(self, revision): + parent_renkan = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid) + return getattr(parent_renkan.creator, settings.RENKAN_USER_DISPLAY_FIELD) - def get_related_project_creation_date(self, revision): - parent_project = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid) - return parent_project.creation_date + def get_related_renkan_creation_date(self, revision): + parent_renkan = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid) + return parent_renkan.creation_date class WorkspaceSerializer(serializers.Serializer): id = serializers.ReadOnlyField(source="workspace_guid") - workspace_created_by = serializers.StringRelatedField(source="creator") + workspace_created_by = serializers.SlugRelatedField(source="creator", slug_field=settings.RENKAN_USER_DISPLAY_FIELD, read_only=True) creation_date = serializers.ReadOnlyField() renkan_count = serializers.ReadOnlyField() title = serializers.CharField()