server/src/ammico/serializers/ammico.py
changeset 117 41a78460bdac
parent 109 fda9006b0ec1
child 143 ea633c8f9bfa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/ammico/serializers/ammico.py	Fri Jun 05 16:10:12 2015 +0200
@@ -0,0 +1,38 @@
+from rest_framework import serializers
+
+from ammico.models import Book, Slide
+from ammico.serializers.extractors import extractFromMIMO, extractFromJameSpot
+from ammico.serializers.taggit import TaggitSerializer, TagListSerializerField
+
+
+class BookSerializer(serializers.ModelSerializer):
+    count = serializers.SerializerMethodField('getCount')
+    
+    def getCount(self, book):
+        return book.slides.all().count()
+    
+    class Meta:
+        model = Book
+        fields = ('id', 'user', 'idArticle', 'parent_visit', 'title', 'description', 'image', 'date', 'count', 'public')
+        
+class SlideSerializer(TaggitSerializer, serializers.ModelSerializer):
+    details = serializers.SerializerMethodField('getStopInfo')
+    index = serializers.SerializerMethodField('getOrder')
+    tags = TagListSerializerField(required=False)
+    
+    def getStopInfo(self, slide):
+        if (slide.idInventory != ""):
+            #slide added from searched in MIMO database
+            return extractFromMIMO(slide)
+        else:
+            #Get stop info from Oprheo
+            #return extractFromOrpheo(slide)
+            #Get stop info from Jamespot
+            return extractFromJameSpot(slide)
+        
+    def getOrder(self, slide):
+        return slide.book.get_slide_order().index(slide.id)
+
+    class Meta:
+        model = Slide
+        fields = ('id', 'index', 'book', 'idStop', 'idInventory', 'title', 'description', 'image', 'date', 'favorite', 'tags', 'details')
\ No newline at end of file