add 'public' boolean field to the model and an access to get the list of the public books
--- a/server/ammico/models.py Wed May 27 19:05:20 2015 +0200
+++ b/server/ammico/models.py Wed May 27 19:06:00 2015 +0200
@@ -13,6 +13,7 @@
description = models.CharField(max_length=512, blank=True, null=True)
image = models.URLField(max_length=2048, blank=True)
date = models.DateTimeField(default=datetime.datetime.now)
+ public = models.BooleanField(default=False, db_index=True)
parent_visit = models.ForeignKey('Book', related_name = "books_copy", null=True)
def __str__(self):
--- a/server/ammico/serializers.py Wed May 27 19:05:20 2015 +0200
+++ b/server/ammico/serializers.py Wed May 27 19:06:00 2015 +0200
@@ -11,10 +11,14 @@
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')
+ fields = ('id', 'user', 'idArticle', 'parent_visit', 'title', 'description', 'image', 'date', 'count', 'public')
class SlideSerializer(serializers.ModelSerializer):
details = serializers.SerializerMethodField('getStopInfo')
--- a/server/ammico/urls.py Wed May 27 19:05:20 2015 +0200
+++ b/server/ammico/urls.py Wed May 27 19:06:00 2015 +0200
@@ -1,7 +1,7 @@
from django.conf.urls import patterns, url, include
from django.views.generic.base import TemplateView
-from ammico.views import ListBooks, InfoBook, ListSlides, InfoSlide, BookSlides, SlidesOrder
+from ammico.views import ListBooks, InfoBook, ListSlides, InfoSlide, SlidesOrder, PublicBooks
urlpatterns = patterns('',
@@ -9,7 +9,7 @@
url(r'^books$', ListBooks.as_view()),
url(r'^books/(?P<idBook>[0-9]+)$', InfoBook.as_view()),
url(r'^books/(?P<idBook>[0-9]+)/order$', SlidesOrder.as_view()),
- url(r'^books/(?P<idBook>[0-9]+)/slides$', BookSlides.as_view()),
+ url(r'^public', PublicBooks.as_view()),
url(r'^slides$', ListSlides.as_view()),
url(r'^slides/(?P<idSlide>[0-9]+)$', InfoSlide.as_view()),
url(r'^auth/', include('authentication.urls')),