class CollectionList(ListAPIView):
- queryset = Collection.objects.all()
+ queryset = Collection.objects.filter(listed=True)
serializer_class = serializers.CollectionListSerializer
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()
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)
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)
class TagView(RetrieveAPIView):
+ permission_classes = [DjangoModelPermissionsOrAnonReadOnly]
serializer_class = serializers.TagDetailSerializer
-
+ queryset = Tag.objects.all()
+
def get_object(self):
return get_object_or_404(
Tag,
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):