server/python/django2/renkanmanager/serializers.py
changeset 615 f3875fbe206a
parent 613 e00a24b711a0
child 618 3051b847c124
--- a/server/python/django2/renkanmanager/serializers.py	Wed Jun 15 16:31:43 2016 +0200
+++ b/server/python/django2/renkanmanager/serializers.py	Mon Jun 20 14:44:40 2016 +0200
@@ -5,11 +5,12 @@
 from django.conf import settings
 from django.core.exceptions import ValidationError
 from django.utils import dateparse
+from renkanmanager import settings as renkan_settings
 from renkanmanager.models import Renkan, Workspace, Revision
 from rest_framework import serializers
 
 logger = logging.getLogger(__name__)
-RENKAN_USER_DISPLAY_FIELD = getattr(settings, "RENKAN_USER_DISPLAY_FIELD", get_user_model().USERNAME_FIELD)
+RENKAN_USER_DISPLAY_FIELD = renkan_settings.RENKAN_USER_DISPLAY_FIELD
 
 class RenkanSerializer(serializers.Serializer):
     id = serializers.ReadOnlyField(source="renkan_guid")
@@ -43,6 +44,7 @@
         """
             Method to create a new Renkan (and its first revision)
         """
+        logger.debug("RENKANSERIALIZER %r", validated_data)
         creator = validated_data.get('creator')
         workspace_obj = validated_data.get('workspace', None)
         source_revision_obj = validated_data.get('source_revision', None)
@@ -62,6 +64,7 @@
         """
             Method to update a Renkan object. Creates a new revision if needed
         """
+        logger.debug('RENKAN SERIALIZER UPDATE %r', validated_data)
         updator = validated_data.get('updator')
         create_new_revision = validated_data.get("create_new_revision", False)
         title = validated_data.get('title', renkan.current_revision.title)
@@ -83,7 +86,9 @@
             renkan.save_renkan(updator=updator, timestamp=validation_timestamp, title=title, content=content, create_new_revision=create_new_revision)
         except ValidationError as ve:
             raise serializers.ValidationError(str(ve.args[0]))
-        return renkan
+        # FORCE Renkan reload.
+        # TODO: How to avoid the reload ???
+        return Renkan.objects.get(id=renkan.id)
 
     def validate_workspace_id(self, value):
         if self.instance is not None:
@@ -109,9 +114,9 @@
         return value
 
     def validate_validation_timestamp(self, value):
-        logger.debug("%r < %r", dateparse.parse_datetime(value), self.get_current_revision_modification_date(self.instance))
+        logger.debug("%r < %r", dateparse.parse_datetime(value).timestamp(), self.get_current_revision_modification_date(self.instance).timestamp())
 
-        if self.instance and dateparse.parse_datetime(value) < self.get_current_revision_modification_date(self.instance):
+        if self.instance and dateparse.parse_datetime(value) != self.get_current_revision_modification_date(self.instance):
             raise serializers.ValidationError("Invalid timestamp was provided")
         return value