server/python/django2/renkanmanager/serializers.py
changeset 593 2ff785d7026c
parent 592 66243fb5e3fc
child 594 b45eb8244cd9
--- 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()