src/notes/api/fields/category.py
changeset 133 6f3078f7fd47
child 139 d3738ac909d8
equal deleted inserted replaced
132:906a6c7c7943 133:6f3078f7fd47
       
     1 '''
       
     2 field serializing and deserializing metacategorization protocols
       
     3 '''
       
     4 import logging
       
     5 
       
     6 from rest_framework import serializers
       
     7 
       
     8 logger = logging.getLogger(__name__)
       
     9 
       
    10 class ProtocolField(serializers.Field):
       
    11 
       
    12     def get_attribute(self, obj):
       
    13         logger.debug("ProtocolField.get_attribute %r", obj)
       
    14         # We pass the object instance onto `to_representation`,
       
    15         # not just the field attribute.
       
    16         return obj
       
    17 
       
    18     def to_representation(self, obj):
       
    19         logger.debug("ProtocolField.to_representation %r", obj)
       
    20         return {
       
    21             "id": "a4977c1f-4752-4aff-b724-eec4033af25c",
       
    22             "owner": "group1",
       
    23             "revision": "1",
       
    24             "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.",
       
    25             "metacategories": [{
       
    26                 "id": "e5712a76-857a-4769-b27e-a3ac3fb38b4d",
       
    27                 "revision": 2,
       
    28                 "base": "ef14bcce-52ac-44ba-a7d1-f1441bab94de",
       
    29                 "name": "référence",
       
    30                 "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin massa nibh, hendrerit quis justo vitae, luctus tempor dolor. Nam quis fringilla diam.",
       
    31                 "color": "#2cbfff",
       
    32                 "has_comment": False
       
    33             }]
       
    34         }
       
    35 
       
    36     def to_internal_value(self, data):
       
    37         logger.debug("ProtocolField.to_internal_value %r", data)
       
    38         return "base protocol"
       
    39