Added default to the RENKAN_USER_DISPLAY_FIELD setting. Will default to the USERFIELD_NAME for the user model V00.12.15
authordurandn
Thu, 03 Mar 2016 18:04:27 +0100
changeset 594 b45eb8244cd9
parent 593 2ff785d7026c
child 595 69071bafb07e
Added default to the RENKAN_USER_DISPLAY_FIELD setting. Will default to the USERFIELD_NAME for the user model
.settings/org.eclipse.core.resources.prefs
server/python/django2/Readme.md
server/python/django2/renkanmanager/serializers.py
--- a/.settings/org.eclipse.core.resources.prefs	Thu Mar 03 17:09:27 2016 +0100
+++ b/.settings/org.eclipse.core.resources.prefs	Thu Mar 03 18:04:27 2016 +0100
@@ -5,6 +5,7 @@
 encoding//server/python/django/renkanmanager/migrations/0001_initial.py=utf-8
 encoding//server/python/django/renkanmanager/utils.py=utf-8
 encoding//server/python/django/renkanmanager/views.py=utf-8
+encoding//server/python/django2/renkanmanager/__init__.py=utf-8
 encoding//server/python/django2/renkanmanager/api/views.py=utf-8
 encoding//server/python/django2/renkanmanager/migrations/0002_alter_models_and_populate_revisions.py=utf-8
 encoding//server/python/django2/renkanmanager/migrations/0003_auto_20160105_0954.py=utf-8
--- a/server/python/django2/Readme.md	Thu Mar 03 17:09:27 2016 +0100
+++ b/server/python/django2/Readme.md	Thu Mar 03 18:04:27 2016 +0100
@@ -0,0 +1,9 @@
+# RENKAN API - Django REST Framework
+
+## Configuration
+
+The following setting can be defined:
+
+	RENKAN_USER_DISPLAY_FIELD
+	
+This defines the field that will be used in your user model to serialize the user information your API will send in the responses. ("username", "external_id"...) Will default to the USERNAME_FIELD of the User Model class.
\ No newline at end of file
--- a/server/python/django2/renkanmanager/serializers.py	Thu Mar 03 17:09:27 2016 +0100
+++ b/server/python/django2/renkanmanager/serializers.py	Thu Mar 03 18:04:27 2016 +0100
@@ -7,6 +7,7 @@
 from renkanmanager.models import Renkan, Workspace, Revision
 from rest_framework import serializers
 
+RENKAN_USER_DISPLAY_FIELD = getattr(settings, "RENKAN_USER_DISPLAY_FIELD", get_user_model().USERNAME_FIELD)
 
 class RenkanSerializer(serializers.Serializer):
     id = serializers.ReadOnlyField(source="renkan_guid")
@@ -14,7 +15,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.SlugRelatedField(source="creator", slug_field=settings.RENKAN_USER_DISPLAY_FIELD, read_only=True)
+    created_by = serializers.SlugRelatedField(source="creator", slug_field=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)
@@ -25,7 +26,7 @@
     # ADD ERROR HANDLING
     def get_current_revision_last_updator(self, renkan):
         current_revision = Revision.objects.get(revision_guid = renkan.current_revision_guid)
-        return getattr(current_revision.last_updated_by, settings.RENKAN_USER_DISPLAY_FIELD)
+        return getattr(current_revision.last_updated_by, RENKAN_USER_DISPLAY_FIELD)
     
     
     def get_current_revision_modification_date(self, renkan):
@@ -131,7 +132,7 @@
     content = serializers.JSONField(read_only=True)
     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_created_by = serializers.SlugRelatedField(source="creator", slug_field=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")
     
@@ -141,7 +142,7 @@
     
     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)
+        return getattr(parent_renkan.creator, RENKAN_USER_DISPLAY_FIELD)
     
     def get_related_renkan_creation_date(self, revision):
         parent_renkan = Renkan.objects.get(renkan_guid = revision.parent_renkan_guid)
@@ -150,7 +151,7 @@
 
 class WorkspaceSerializer(serializers.Serializer):
     id = serializers.ReadOnlyField(source="workspace_guid")
-    workspace_created_by = serializers.SlugRelatedField(source="creator", slug_field=settings.RENKAN_USER_DISPLAY_FIELD, read_only=True)
+    workspace_created_by = serializers.SlugRelatedField(source="creator", slug_field=RENKAN_USER_DISPLAY_FIELD, read_only=True)
     creation_date = serializers.ReadOnlyField()
     renkan_count = serializers.ReadOnlyField()
     title = serializers.CharField()