X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ccdfdb7ab5b7a4c134a60e7440ffe193cb290362..08e687e53ba84afd39646185142e59c6bfe77783:/src/catalogue/api/views.py?ds=sidebyside diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index 335a30161..8b9dcd8ae 100644 --- a/src/catalogue/api/views.py +++ b/src/catalogue/api/views.py @@ -27,7 +27,7 @@ book_tag_categories = ['author', 'epoch', 'kind', 'genre'] class CollectionList(ListAPIView): - queryset = Collection.objects.all() + queryset = Collection.objects.filter(listed=True) serializer_class = serializers.CollectionListSerializer @@ -45,7 +45,7 @@ class BookList(ListAPIView): serializer_class = serializers.BookListSerializer def get(self, request, filename=None, **kwargs): - if filename and 'count' not in request.query_params: + if filename and not kwargs.get('tags') and 'count' not in request.query_params: try: with open(os.path.join(settings.MEDIA_ROOT, 'api', '%s.%s' % (filename, request.accepted_renderer.format)), 'rb') as f: content = f.read() @@ -135,6 +135,9 @@ class BookList(ListAPIView): name = request.POST.get('name', '') part_name = request.POST.get('part_name', '') + project_description = request.POST.get('project_description', '') + project_icon = request.POST.get('project_icon', '') + _rest, slug = request.POST['book'].rstrip('/').rsplit('/', 1) book = Book.objects.get(slug=slug) @@ -146,6 +149,8 @@ class BookList(ListAPIView): bm.name = name bm.part_name = part_name bm.index = index + bm.project_description = project_description + bm.project_icon = project_icon bm.file.save(None, request.data['file'], save=False) bm.save(parts_count=parts_count) @@ -284,8 +289,10 @@ class TagCategoryView(ListAPIView): class TagView(RetrieveAPIView): + permission_classes = [DjangoModelPermissionsOrAnonReadOnly] serializer_class = serializers.TagDetailSerializer - + queryset = Tag.objects.all() + def get_object(self): return get_object_or_404( Tag, @@ -293,6 +300,14 @@ class TagView(RetrieveAPIView): slug=self.kwargs['slug'] ) + def post(self, request, **kwargs): + data = json.loads(request.POST.get('data')) + desc = data['description_pl'] + obj = self.get_object() + obj.description_pl = desc + obj.save(update_fields=['description_pl'], quick=True) + return Response({}) + @vary_on_auth # Because of 'liked'. class FragmentList(ListAPIView):