mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 08:35:41 +01:00
Feature: Support filter by tags and user for Pins
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework import viewsets, mixins, routers
|
from rest_framework import viewsets, mixins, routers
|
||||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
@@ -24,10 +25,10 @@ class ImageViewSet(mixins.CreateModelMixin, GenericViewSet):
|
|||||||
class PinViewSet(viewsets.ModelViewSet):
|
class PinViewSet(viewsets.ModelViewSet):
|
||||||
queryset = Pin.objects.all()
|
queryset = Pin.objects.all()
|
||||||
serializer_class = api.PinSerializer
|
serializer_class = api.PinSerializer
|
||||||
filter_backends = (SearchFilter, OrderingFilter)
|
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
|
||||||
search_fields = ('=submitter__username', )
|
filter_fields = ("submitter__username", 'tags__name', )
|
||||||
ordering_fields = ('id', )
|
ordering_fields = ('-id', )
|
||||||
ordering = ('id', )
|
ordering = ('-id', )
|
||||||
permission_classes = [IsOwnerOrReadOnly("submitter"), ]
|
permission_classes = [IsOwnerOrReadOnly("submitter"), ]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ $(window).load(function() {
|
|||||||
|
|
||||||
// Fetch our pins from the api using our current offset
|
// Fetch our pins from the api using our current offset
|
||||||
var apiUrl = API_BASE + 'pins/?format=json&ordering=-id&limit=50&offset='+String(offset);
|
var apiUrl = API_BASE + 'pins/?format=json&ordering=-id&limit=50&offset='+String(offset);
|
||||||
if (tagFilter) apiUrl = apiUrl + '&tag=' + tagFilter;
|
if (tagFilter) apiUrl = apiUrl + '&tags__name=' + tagFilter;
|
||||||
if (userFilter) apiUrl = apiUrl + '&submitter__username=' + userFilter;
|
if (userFilter) apiUrl = apiUrl + '&submitter__username=' + userFilter;
|
||||||
$.get(apiUrl, function(pins_page) {
|
$.get(apiUrl, function(pins_page) {
|
||||||
// Set which items are editable by the current user
|
// Set which items are editable by the current user
|
||||||
|
|||||||
Reference in New Issue
Block a user