diff --git a/rog/admin.py b/rog/admin.py index 50697ad..6f201c9 100644 --- a/rog/admin.py +++ b/rog/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from leaflet.admin import LeafletGeoAdmin from leaflet.admin import LeafletGeoAdminMixin from leaflet_admin_list.admin import LeafletAdminListMixin -from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, CustomUser +from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, CustomUser, GifuAreas from django.contrib.auth.admin import UserAdmin class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): @@ -46,6 +46,7 @@ admin.site.register(Location_line, LeafletGeoAdmin) admin.site.register(Location_polygon, LeafletGeoAdmin) admin.site.register(JpnAdminMainPerf, LeafletGeoAdmin) #admin.site.register(JpnAdminPerf, LeafletGeoAdmin) +admin.site.register(GifuAreas, LeafletGeoAdmin) admin.site.register(JpnSubPerf, LeafletGeoAdmin) admin.site.register(ShapeLayers, admin.ModelAdmin) diff --git a/rog/migrations/0005_auto_20220606_1523.py b/rog/migrations/0005_auto_20220606_1523.py new file mode 100644 index 0000000..b3cbd47 --- /dev/null +++ b/rog/migrations/0005_auto_20220606_1523.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.9 on 2022-06-06 06:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rog', '0004_auto_20220606_0023'), + ] + + operations = [ + migrations.AlterField( + model_name='location', + name='event_active', + field=models.BooleanField(default=True, verbose_name='Is Event active'), + ), + migrations.AlterField( + model_name='location', + name='event_name', + field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Event name'), + ), + ] diff --git a/rog/models.py b/rog/models.py index c7bf882..275a497 100644 --- a/rog/models.py +++ b/rog/models.py @@ -201,8 +201,8 @@ class Location(models.Model): facility=models.CharField(_('Facility'), max_length=255, blank=True, null=True) remark=models.CharField(_('Remarks'), max_length=255, blank=True, null=True) tags=models.CharField(_('Tags'), max_length=512, blank=True, null=True) - event_name = models.CharField(_('Tags'), max_length=512, blank=True, null=True) - event_active = models.BooleanField(_("Is Autologin"),default=True) + event_name = models.CharField(_('Event name'), max_length=512, blank=True, null=True) + event_active = models.BooleanField(_("Is Event active"),default=True) auto_checkin = models.BooleanField(_("Is Autologin"),default=False) checkin_radious = models.IntegerField(_("Checkin Radious"), blank=True, null=True) parammeters=models.CharField(_('Parameters'), max_length=512, blank=True, null=True) diff --git a/rog/serializers.py b/rog/serializers.py index c30d6c5..8e3c73b 100644 --- a/rog/serializers.py +++ b/rog/serializers.py @@ -1,7 +1,7 @@ from rest_framework import serializers from rest_framework_gis.serializers import GeoFeatureModelSerializer from sqlalchemy.sql.functions import mode -from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions +from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas from drf_extra_fields.fields import Base64ImageField #from django.contrib.auth.models import User @@ -54,6 +54,12 @@ class JPN_perfSerializer(serializers.ModelSerializer): fields=['id','et_id', 'et_right', 'et_left', 'adm2_l', 'adm1_l', 'adm0_l', 'adm0_r', 'adm1_r', 'adm2_r', 'admlevel'] +class GifuAreaSerializer(serializers.ModelSerializer): + class Meta: + model= GifuAreas + fields=['id', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode', 'adm2_ja', 'adm2_en', 'adm2_pcode', 'area_nm'] + + class CreateUserSerializer(serializers.ModelSerializer): class Meta: diff --git a/rog/urls.py b/rog/urls.py index 57e9535..bd1a297 100644 --- a/rog/urls.py +++ b/rog/urls.py @@ -1,6 +1,6 @@ from rest_framework import urlpatterns from rest_framework.routers import DefaultRouter -from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination +from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet, LocationsInPerf, SubInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination, CustomAreaLocations, GetAllGifuAreas from django.urls import path, include from knox import views as knox_views @@ -23,6 +23,7 @@ urlpatterns += [ path('insubperf', LocationsInSubPerf, name='location_subperf'), path('inbound', LocationInBound, name='location_bound'), path('subperfinmain/', SubPerfInMainPerf, name="sub_perf"), + path('allgifuareas/', GetAllGifuAreas, name="custom_area"), path('perfext/', ExtentForSubPerf, name="sub_perf_ext"), path('mainperfext/', ExtentForMainPerf, name="main_perf_ext"), path('cats/', CatView, name='cats'), @@ -34,5 +35,6 @@ urlpatterns += [ path('makeaction/', UserMakeActionViewset, name='user_action'), path('destinations/', UserDestinations, name='user_destinations'), path('updateorder/', UpdateOrder, name='updateorder'), - path('delete_destination/', DeleteDestination, name='delete_detination') + path('delete_destination/', DeleteDestination, name='delete_detination'), + path('custom_area/', CustomAreaLocations, name='custom_area_location') ] \ No newline at end of file diff --git a/rog/views.py b/rog/views.py index 92fffb7..a8f2aa7 100644 --- a/rog/views.py +++ b/rog/views.py @@ -1,7 +1,7 @@ from django.core.serializers import serialize -from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, CustomUser +from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf, JpnSubPerf, Useractions, GifuAreas 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 +from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer, JPN_sub_perSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer from knox.models import AuthToken from rest_framework import viewsets, permissions, generics @@ -16,6 +16,7 @@ from .models import TestModel from django.shortcuts import get_object_or_404 from django.db.models import F from django.contrib.gis import geos +from django.db.models import Q @@ -88,9 +89,9 @@ def LocationInBound(request): pl = geos.Polygon(((lon1, lat1), (lon2, lat2), (lon3, lat3), (lon4, lat4), (lon1, lat1)), srid=4326) if(cat): print("----res from cat") - locs = Location.objects.filter(geom__within=pl, category=cat) + locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True) else: - locs = Location.objects.filter(geom__within=pl) + locs = Location.objects.filter(geom__within=pl, event_name__isnull=True) #res = Location.objects.filter(geom__within=pl) if len(locs) > 50: return JsonResponse({"too_many_points": True}, safe=False, status=500) @@ -112,14 +113,21 @@ def SubInPerf(request): def SubPerfInMainPerf(request): - prefecture = request.GET.get('perf') - perf_geom = JpnAdminMainPerf.objects.get(id=prefecture) - sub = JpnSubPerf.objects.filter(geom__within=perf_geom.geom) + area = request.GET.get('area') + perf_geom = GifuAreas.objects.get(id=area) + sub = JpnSubPerf.objects.filter(geom__contained=perf_geom.geom) #serializer = JPN_sub_perSerializer #sub = JpnAdminPerf.objects.filter(geom__within=perf_geom.geom) serializer = JPN_sub_perSerializer(sub, many=True) return JsonResponse(serializer.data, safe=False) +def GetAllGifuAreas(request): + prefecture = request.GET.get('perf') + perf_geom = JpnAdminMainPerf.objects.get(id=prefecture) + sub = GifuAreas.objects.filter(geom__contained=perf_geom.geom) + serializer = GifuAreaSerializer(sub, many=True) + return JsonResponse(serializer.data, safe=False) + def ExtentForMainPerf(request): perf_id = request.GET.get('perf') @@ -287,7 +295,21 @@ def DeleteDestination(request): return JsonResponse({"success":1}, safe=False) else: return JsonResponse({"success":0}, safe=False) + + +def CustomAreaLocations(request): + cat = request.GET.get('cat') + if(cat != None): + print("----res from cat") + locs = Location.objects.filter(event_name__isnull=False, category=cat) + else: + locs = Location.objects.filter(event_name__isnull=False) + + serializer = LocationSerializer(locs, many=True) + return JsonResponse(serializer.data, safe=False) + + class TestActionViewSet(viewsets.ModelViewSet):