Support civicrm newsletters.
[wolnelektury.git] / src / catalogue / api / views.py
index faeeb3c..8b9dcd8 100644 (file)
@@ -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
 
 
@@ -135,9 +135,8 @@ class BookList(ListAPIView):
         name = request.POST.get('name', '')
         part_name = request.POST.get('part_name', '')
 
-        project_data = request.POST.get('project', {})
-        project_description = project_data.get('description', '')
-        project_icon = project_data.get('icon', '')
+        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)
@@ -290,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,
@@ -299,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):