diff -r 906a6c7c7943 -r 6f3078f7fd47 src/notes/api/fields/category.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/notes/api/fields/category.py Thu Aug 03 09:44:37 2017 +0200 @@ -0,0 +1,39 @@ +''' +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" +