X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/93e3e1f84811affff7f6ba0ad808c813904da42b..d7b89d3f41ba44a7f327652014e6baff6999f70e:/src/social/api/views.py diff --git a/src/social/api/views.py b/src/social/api/views.py index 41268084e..2c2383591 100644 --- a/src/social/api/views.py +++ b/src/social/api/views.py @@ -191,7 +191,20 @@ class ListItemListViewV3(ListCreateAPIView): def get_queryset(self): lst = get_userlist(self.kwargs['slug'], self.request) - return lst.userlistitem_set.all() + return lst.userlistitem_set.all().order_by('order') + + def get_serializer(self, *args, **kwargs): + serializer_class = self.get_serializer_class() + kwargs.setdefault('context', self.get_serializer_context()) + + if isinstance(self.request.data, list): + kwargs['many'] = True + + return serializer_class(*args, **kwargs) + + def perform_create(self, serializer): + lst = get_userlist(self.kwargs['slug'], self.request) + serializer.save(list=lst) @never_cache @@ -265,6 +278,7 @@ class TextProgressView(ProgressMixin, RetrieveUpdateAPIView): serializer_class = serializers.TextProgressSerializer def perform_update(self, serializer): + serializer.instance.reported_timestamp = now() serializer.instance.last_mode = 'text' serializer.save() @@ -275,6 +289,7 @@ class AudioProgressView(ProgressMixin, RetrieveUpdateAPIView): serializer_class = serializers.AudioProgressSerializer def perform_update(self, serializer): + serializer.instance.reported_timestamp = now() serializer.instance.last_mode = 'audio' serializer.save()