diff -r 23416a833ca8 -r f3875fbe206a server/python/django2/renkanmanager/serializers.py --- 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