Use item list for members and add member detail view

This commit is contained in:
2020-01-11 23:53:42 +00:00
parent 58f3021cb1
commit 3ff81633a7
10 changed files with 118 additions and 63 deletions

View File

@@ -60,11 +60,11 @@ class UserSerializer(serializers.ModelSerializer):
# member viewing member list or other member
class OtherMemberSerializer(serializers.ModelSerializer):
q = serializers.CharField(write_only=True, max_length=64)
seq = serializers.IntegerField(write_only=True, )
seq = serializers.IntegerField(write_only=True)
class Meta:
model = models.Member
fields = ['q', 'seq', 'preferred_name', 'last_name', 'status', 'current_start_date', 'photo_small']
fields = ['q', 'seq', 'id', 'preferred_name', 'last_name', 'status', 'current_start_date', 'photo_small', 'photo_large']
# member viewing himself
class MemberSerializer(serializers.ModelSerializer):

View File

@@ -1,6 +1,6 @@
from django.contrib.auth.models import User, Group
from django.db.models import Max
from rest_framework import viewsets, views, permissions
from rest_framework import viewsets, views, permissions, mixins
from rest_framework.response import Response
from rest_auth.registration.views import RegisterView
from fuzzywuzzy import fuzz, process
@@ -23,12 +23,12 @@ def gen_search_strings():
).lower()
search_strings[string] = m.id
class SearchViewSet(viewsets.ViewSet):
NUM_SEARCH_RESULTS = 10
class SearchViewSet(viewsets.GenericViewSet, mixins.RetrieveModelMixin):
permission_classes = [AllowMetadata | permissions.IsAuthenticated]
serializer_class = serializers.OtherMemberSerializer
def get_queryset(self):
NUM_SEARCH_RESULTS = 10
queryset = models.Member.objects.all()
search = self.request.data.get('q', '').lower()
@@ -55,7 +55,7 @@ class SearchViewSet(viewsets.ViewSet):
queryset = result_objects
else:
gen_search_strings()
queryset = queryset.order_by('-vetted_date')[:NUM_SEARCH_RESULTS]
queryset = queryset.order_by('-vetted_date')
return queryset
@@ -66,7 +66,7 @@ class SearchViewSet(viewsets.ViewSet):
except ValueError:
seq = 0
queryset = self.get_queryset()
queryset = self.get_queryset()[:NUM_SEARCH_RESULTS]
serializer = self.serializer_class(queryset, many=True)
return Response({'seq': seq, 'results': serializer.data})