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