update location filter
This commit is contained in:
73
rog/views.py
73
rog/views.py
@ -1,15 +1,17 @@
|
||||
from curses.ascii import NUL
|
||||
from django.core.serializers import serialize
|
||||
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas, RogUser, CustomUser, UserTracks
|
||||
from rest_framework import viewsets
|
||||
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer
|
||||
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer, ChangePasswordSerializer
|
||||
from knox.models import AuthToken
|
||||
|
||||
from rest_framework import viewsets, permissions, generics
|
||||
from rest_framework import viewsets, permissions, generics, status
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.parsers import JSONParser, MultiPartParser
|
||||
from .serializers import LocationSerializer
|
||||
from django.http import JsonResponse
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from .serializers import TestSerialiser
|
||||
from .models import TestModel
|
||||
@ -66,9 +68,9 @@ def LocationsInPerf(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat, cp__gt=0, group__contains=grp)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
if is_rog:
|
||||
if grp:
|
||||
@ -77,9 +79,9 @@ def LocationsInPerf(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, group__contains=grp)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
|
||||
serializer = LocationSerializer(locs, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
@ -99,9 +101,9 @@ def LocationsInSubPerf(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat, group__contains=grp)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom, category=cat)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom, category=cat)
|
||||
else:
|
||||
if is_rog:
|
||||
if grp:
|
||||
@ -109,7 +111,7 @@ def LocationsInSubPerf(request):
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=perf_geom.geom)
|
||||
locs = Location.objects.filter(geom__within=perf_geom.geom)
|
||||
serializer = LocationSerializer(locs, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
@ -138,9 +140,9 @@ def LocationInBound(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, category=cat, event_name__isnull=True)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, category=cat, event_name__isnull=True, cp=0, group__contains=grp)
|
||||
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, category=cat, event_name__isnull=True)
|
||||
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True)
|
||||
else:
|
||||
if is_rog:
|
||||
if grp:
|
||||
@ -149,9 +151,9 @@ def LocationInBound(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, event_name__isnull=True)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, event_name__isnull=True, group__contains=grp)
|
||||
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, event_name__isnull=True)
|
||||
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True)
|
||||
if len(locs) > 50:
|
||||
return JsonResponse({"too_many_points": True}, safe=False, status=500)
|
||||
else:
|
||||
@ -236,7 +238,7 @@ def CatByCity(request):
|
||||
serializer = LocationCatSerializer(cats, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
else:
|
||||
return null
|
||||
return None
|
||||
|
||||
|
||||
|
||||
@ -392,9 +394,9 @@ def CustomAreaLocations(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, category=cat, event_name=name)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, category=cat, event_name=name, group__contains=grp)
|
||||
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, category=cat, event_name=name)
|
||||
locs = Location.objects.filter(event_name__isnull=False, category=cat, event_name=name)
|
||||
else:
|
||||
if is_rog:
|
||||
if grp:
|
||||
@ -403,9 +405,9 @@ def CustomAreaLocations(request):
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, event_name=name)
|
||||
else:
|
||||
if grp:
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, event_name=name, group__contains=grp)
|
||||
locs = Location.objects.filter(event_name__isnull=False, event_name=name, group__contains=grp)
|
||||
else:
|
||||
locs = Location.objects.filter(~Q(cp=0), event_name__isnull=False, event_name=name)
|
||||
locs = Location.objects.filter(event_name__isnull=False, event_name=name)
|
||||
|
||||
serializer = LocationSerializer(locs, many=True)
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
@ -418,6 +420,41 @@ def CustomAreaNames(request):
|
||||
return JsonResponse(serializer.data, safe=False)
|
||||
|
||||
|
||||
class ChangePasswordView(generics.UpdateAPIView):
|
||||
"""
|
||||
An endpoint for changing password.
|
||||
"""
|
||||
serializer_class = ChangePasswordSerializer
|
||||
model = CustomUser
|
||||
permission_classes = (IsAuthenticated,)
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
obj = self.request.user
|
||||
return obj
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
|
||||
if serializer.is_valid():
|
||||
# Check old password
|
||||
if not self.object.check_password(serializer.data.get("old_password")):
|
||||
return Response({"old_password": ["Wrong password."]}, status=status.HTTP_400_BAD_REQUEST)
|
||||
# set_password also hashes the password that the user will get
|
||||
self.object.set_password(serializer.data.get("new_password"))
|
||||
self.object.save()
|
||||
response = {
|
||||
'status': 'success',
|
||||
'code': status.HTTP_200_OK,
|
||||
'message': 'Password updated successfully',
|
||||
'data': []
|
||||
}
|
||||
|
||||
return Response(response)
|
||||
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class TestActionViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = TestSerialiser
|
||||
queryset = TestModel.objects.all()
|
||||
|
||||
Reference in New Issue
Block a user