src/notes/api/fields/category.py
author ymh <ymh.work@gmail.com>
Thu, 03 Aug 2017 09:44:37 +0200
changeset 133 6f3078f7fd47
child 139 d3738ac909d8
permissions -rw-r--r--
Work on correct protocol propagation

'''
field serializing and deserializing metacategorization protocols
'''
import logging

from rest_framework import serializers

logger = logging.getLogger(__name__)

class ProtocolField(serializers.Field):

    def get_attribute(self, obj):
        logger.debug("ProtocolField.get_attribute %r", obj)
        # We pass the object instance onto `to_representation`,
        # not just the field attribute.
        return obj

    def to_representation(self, obj):
        logger.debug("ProtocolField.to_representation %r", obj)
        return {
            "id": "a4977c1f-4752-4aff-b724-eec4033af25c",
            "owner": "group1",
            "revision": "1",
            "description": "Cras rutrum lacinia pretium. Suspendisse justo est, tincidunt sed tellus a, sodales suscipit risus. Curabitur odio tortor, tincidunt sed est nec, ullamcorper sodales velit.",
            "metacategories": [{
                "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
                "revision": 2,
                "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
                "name": "référence",
                "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
                "color": "#2cbfff",
                "has_comment": False
            }]
        }

    def to_internal_value(self, data):
        logger.debug("ProtocolField.to_internal_value %r", data)
        return "base protocol"