diff -r 6803d581ff19 -r 41a78460bdac server/src/ammico/serializers/ammico.py --- /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