diff --git a/rog/admin.py b/rog/admin.py index 349ee34..d72a736 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 +from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers, Event, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin): @@ -27,4 +27,6 @@ admin.site.register(TravelPoint, admin.ModelAdmin) admin.site.register(Event, admin.ModelAdmin) 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(ShapeLayers, admin.ModelAdmin) \ No newline at end of file diff --git a/rog/migrations/0001_initial.py b/rog/migrations/0001_initial.py index 0a299ad..202124d 100644 --- a/rog/migrations/0001_initial.py +++ b/rog/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.9 on 2022-03-07 07:10 +# Generated by Django 3.2.9 on 2022-03-16 11:00 from django.conf import settings import django.contrib.gis.db.models.fields @@ -15,6 +15,44 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name='JpnAdminMainPerf', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('geom', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326)), + ('adm0_en', models.CharField(blank=True, max_length=254, null=True)), + ('adm0_ja', models.CharField(blank=True, max_length=254, null=True)), + ('adm0_pcode', models.CharField(blank=True, max_length=254, null=True)), + ('adm1_en', models.CharField(blank=True, max_length=254, null=True)), + ('adm1_ja', models.CharField(blank=True, max_length=254, null=True)), + ('adm1_pcode', models.CharField(blank=True, max_length=254, null=True)), + ], + options={ + 'db_table': 'jpn_admin_main_perf', + 'managed': False, + }, + ), + migrations.CreateModel( + name='JpnAdminPerf', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('geom', django.contrib.gis.db.models.fields.MultiLineStringField(blank=True, null=True, srid=4326)), + ('et_id', models.IntegerField(blank=True, null=True)), + ('et_right', models.CharField(blank=True, max_length=80, null=True)), + ('et_left', models.CharField(blank=True, max_length=80, null=True)), + ('adm2_l', models.CharField(blank=True, max_length=50, null=True)), + ('adm1_l', models.CharField(blank=True, max_length=50, null=True)), + ('adm0_l', models.CharField(blank=True, max_length=50, null=True)), + ('adm0_r', models.CharField(blank=True, max_length=50, null=True)), + ('adm1_r', models.CharField(blank=True, max_length=50, null=True)), + ('adm2_r', models.CharField(blank=True, max_length=50, null=True)), + ('admlevel', models.IntegerField(blank=True, null=True)), + ], + options={ + 'db_table': 'jpn_admin_perf', + 'managed': False, + }, + ), migrations.CreateModel( name='Location', fields=[ @@ -31,13 +69,13 @@ class Migration(migrations.Migration): ('videos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Videos')), ('webcontents', models.CharField(blank=True, max_length=255, null=True, verbose_name='Web Content')), ('status', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Portal')), + ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Group')), + ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phone')), + ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Fax')), ('email', models.EmailField(blank=True, max_length=255, null=True, verbose_name='Email')), - ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Facility')), + ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Remarks')), ('tags', models.CharField(blank=True, max_length=512, null=True, verbose_name='Tags')), ('parammeters', models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters')), ('created_at', models.DateTimeField(auto_now_add=True)), @@ -46,16 +84,6 @@ class Migration(migrations.Migration): ('last_updated_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='location_updated_user', to=settings.AUTH_USER_MODEL)), ], ), - migrations.CreateModel( - name='RogEvent', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('title', models.CharField(max_length=255, verbose_name='Title')), - ('venue', models.CharField(max_length=255, verbose_name='Venue')), - ('at_date', models.DateTimeField(auto_now_add=True, verbose_name='At Date')), - ('geom', django.contrib.gis.db.models.fields.MultiPointField(srid=4326)), - ], - ), migrations.CreateModel( name='ShapeLayers', fields=[ @@ -67,14 +95,6 @@ class Migration(migrations.Migration): ('table_name', models.CharField(blank=True, max_length=255, verbose_name='Table name')), ], ), - migrations.CreateModel( - name='Shop', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, verbose_name='Shop name')), - ('geom', django.contrib.gis.db.models.fields.MultiPointField(srid=4326)), - ], - ), migrations.CreateModel( name='TravelList', fields=[ @@ -125,15 +145,6 @@ class Migration(migrations.Migration): ('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='system_setting_updated_user', to=settings.AUTH_USER_MODEL)), ], ), - migrations.CreateModel( - name='ShopRoute', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, verbose_name='Name')), - ('geom', django.contrib.gis.db.models.fields.MultiLineStringField(srid=4326)), - ('shop', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='rog.shop')), - ], - ), migrations.CreateModel( name='RogUser', fields=[ @@ -175,13 +186,13 @@ class Migration(migrations.Migration): ('videos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Videos')), ('webcontents', models.CharField(blank=True, max_length=255, null=True, verbose_name='Web Content')), ('status', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Portal')), + ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Group')), + ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phone')), + ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Fax')), ('email', models.EmailField(blank=True, max_length=255, null=True, verbose_name='Email')), - ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Facility')), + ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Remarks')), ('tags', models.CharField(blank=True, max_length=512, null=True, verbose_name='Tags')), ('parammeters', models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters')), ('created_at', models.DateTimeField(auto_now_add=True)), @@ -206,13 +217,13 @@ class Migration(migrations.Migration): ('videos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Videos')), ('webcontents', models.CharField(blank=True, max_length=255, null=True, verbose_name='Web Content')), ('status', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('portal', models.CharField(blank=True, max_length=255, null=True, verbose_name='Portal')), + ('group', models.CharField(blank=True, max_length=255, null=True, verbose_name='Group')), + ('phone', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phone')), + ('fax', models.CharField(blank=True, max_length=255, null=True, verbose_name='Fax')), ('email', models.EmailField(blank=True, max_length=255, null=True, verbose_name='Email')), - ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), - ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Status')), + ('facility', models.CharField(blank=True, max_length=255, null=True, verbose_name='Facility')), + ('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Remarks')), ('tags', models.CharField(blank=True, max_length=512, null=True, verbose_name='Tags')), ('parammeters', models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters')), ('created_at', models.DateTimeField(auto_now_add=True)), @@ -255,15 +266,6 @@ class Migration(migrations.Migration): ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)), ], ), - migrations.CreateModel( - name='EventRoute', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255, verbose_name='Name')), - ('geom', django.contrib.gis.db.models.fields.MultiLineStringField(srid=4326)), - ('event', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='rog.rogevent')), - ], - ), migrations.CreateModel( name='Event', fields=[ diff --git a/rog/models.py b/rog/models.py index 1eaf529..ea2fc2d 100644 --- a/rog/models.py +++ b/rog/models.py @@ -25,6 +25,40 @@ environ.Env.read_env(env_file=".env") db = Db(dbname=env("POSTGRES_DBNAME"), user=env("POSTGRES_USER"), password=env("POSTGRES_PASS"), host="postgres-db", port=env("PG_PORT")) + + +class JpnAdminMainPerf(models.Model): + geom = models.MultiPolygonField(blank=True, null=True) + adm0_en = models.CharField(max_length=254, blank=True, null=True) + adm0_ja = models.CharField(max_length=254, blank=True, null=True) + adm0_pcode = models.CharField(max_length=254, blank=True, null=True) + adm1_en = models.CharField(max_length=254, blank=True, null=True) + adm1_ja = models.CharField(max_length=254, blank=True, null=True) + adm1_pcode = models.CharField(max_length=254, blank=True, null=True) + + class Meta: + managed = False + db_table = 'jpn_admin_main_perf' + + +class JpnAdminPerf(models.Model): + geom = models.MultiLineStringField(blank=True, null=True) + et_id = models.IntegerField(blank=True, null=True) + et_right = models.CharField(max_length=80, blank=True, null=True) + et_left = models.CharField(max_length=80, blank=True, null=True) + adm2_l = models.CharField(max_length=50, blank=True, null=True) + adm1_l = models.CharField(max_length=50, blank=True, null=True) + adm0_l = models.CharField(max_length=50, blank=True, null=True) + adm0_r = models.CharField(max_length=50, blank=True, null=True) + adm1_r = models.CharField(max_length=50, blank=True, null=True) + adm2_r = models.CharField(max_length=50, blank=True, null=True) + admlevel = models.IntegerField(blank=True, null=True) + + class Meta: + managed = False + db_table = 'jpn_admin_perf' + + class RogUser(models.Model): user=models.OneToOneField(User, on_delete=models.CASCADE) email=models.EmailField(_('Email')) @@ -254,40 +288,6 @@ class TravelPoint(models.Model): -class RogEvent(models.Model): - title=models.CharField(_('Title'), max_length=255) - venue=models.CharField(_('Venue'), max_length=255) - at_date=models.DateTimeField(_('At Date'), auto_now_add=True) - geom=models.MultiPointField(srid=4326) - - def __str__(self): - return self.title - -class EventRoute(models.Model): - name = models.CharField(_("Name"), max_length=255) - event = models.OneToOneField(RogEvent, on_delete=models.CASCADE) - geom = models.MultiLineStringField(srid=4326) - - def __str__(self): - return self.name - - -class Shop(models.Model): - name=models.CharField(_('Shop name'), max_length=255) - geom=models.MultiPointField(srid=4326) - - def __str__(self): - return self.name - - -class ShopRoute(models.Model): - name = models.CharField(_("Name"), max_length=255) - shop = models.OneToOneField(Shop, on_delete=models.CASCADE) - geom = models.MultiLineStringField(srid=4326) - - def __str__(self): - return self.name - def getTableForModel(tbl): if tbl == 1: diff --git a/rog/serializers.py b/rog/serializers.py index 71c22da..ed72494 100644 --- a/rog/serializers.py +++ b/rog/serializers.py @@ -1,6 +1,7 @@ +from rest_framework import serializers from rest_framework_gis.serializers import GeoFeatureModelSerializer from sqlalchemy.sql.functions import mode -from .models import RogEvent, Shop, EventRoute, ShopRoute, Location, Location_line, Location_polygon +from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf from drf_extra_fields.fields import Base64ImageField @@ -24,29 +25,12 @@ class Location_polygonSerializer(GeoFeatureModelSerializer): fields="__all__" -class RogEventSerializer(GeoFeatureModelSerializer): +class JPN_main_perfSerializer(serializers.ModelSerializer): class Meta: - model=RogEvent - geo_field="geom" - fields="__all__" + model=JpnAdminMainPerf + fields=['adm0_en', 'adm0_ja', 'adm0_pcode', 'adm1_en', 'adm1_ja', 'adm1_pcode'] - -class ShopSerializer(GeoFeatureModelSerializer): +class JPN_perfSerializer(serializers.ModelSerializer): class Meta: - model=Shop - geo_field="geom" - fields="__all__" - - -class EventRouteSerializer(GeoFeatureModelSerializer): - class Meta: - model=EventRoute - geo_field="geom" - fields="__all__" - - -class ShopRouteSerializer(GeoFeatureModelSerializer): - class Meta: - model=ShopRoute - geo_field="geom" - fields="__all__" \ No newline at end of file + model=JpnAdminPerf + fields=['et_id', 'et_right', 'et_left', 'adm2_l', 'adm1_l', 'adm0_l', 'adm0_r', 'adm1_r', 'adm2_r', 'admlevel'] diff --git a/rog/urls.py b/rog/urls.py index 753541d..cbe7021 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 RogEventViewSet, EventRouteViewSet, ShopViewSet, ShopRouteViewSet, LocationViewSet, Location_lineViewSet, Location_polygonViewSet +from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, Jpn_PerfViewSet from django.urls import path, include @@ -9,10 +9,8 @@ router = DefaultRouter() router.register(prefix='location', viewset=LocationViewSet, basename='location') router.register(prefix='location_line', viewset=Location_lineViewSet, basename="location_line") router.register(prefix='location_polygon', viewset=Location_polygonViewSet, basename='location_polygon') +router.register(prefix='perf_main', viewset=Jpn_Main_PerfViewSet, basename='main_perf') +router.register(prefix='perf', viewset=Jpn_PerfViewSet, basename='perf') -router.register(prefix='v1/rog', viewset=RogEventViewSet, basename='rog') -router.register(prefix='v1/eventroute', viewset=EventRouteViewSet, basename='eventroute') -router.register(prefix='v1/shop', viewset=ShopViewSet, basename='shop') -router.register(prefix='v1/shoproute', viewset=ShopRouteViewSet, basename='shoproute') urlpatterns = router.urls diff --git a/rog/views.py b/rog/views.py index 8e132d6..255f35f 100644 --- a/rog/views.py +++ b/rog/views.py @@ -1,7 +1,8 @@ from django.core.serializers import serialize -from .models import RogEvent, ShopRoute, EventRoute, Shop, Location, Location_line, Location_polygon +from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, JpnAdminPerf from rest_framework import viewsets -from .serializers import RogEventSerializer, EventRouteSerializer, ShopSerializer, ShopRouteSerializer, LocationSerializer, Location_lineSerializer, Location_polygonSerializer +from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, JPN_perfSerializer + from rest_framework.decorators import action from rest_framework.response import Response from rest_framework.parsers import JSONParser, MultiPartParser @@ -23,23 +24,13 @@ class Location_polygonViewSet(viewsets.ModelViewSet): serializer_class=Location_polygonSerializer +class Jpn_Main_PerfViewSet(viewsets.ModelViewSet): + queryset=JpnAdminMainPerf.objects.all() + serializer_class=JPN_main_perfSerializer -class RogEventViewSet(viewsets.ModelViewSet): - queryset=RogEvent.objects.all() - serializer_class=RogEventSerializer +class Jpn_PerfViewSet(viewsets.ModelViewSet): + queryset=JpnAdminPerf.objects.all() + serializer_class=JPN_perfSerializer -class EventRouteViewSet(viewsets.ModelViewSet): - queryset=EventRoute.objects.all() - serializer_class=EventRouteSerializer - - -class ShopViewSet(viewsets.ModelViewSet): - queryset=Shop.objects.all() - serializer_class=ShopSerializer - - -class ShopRouteViewSet(viewsets.ModelViewSet): - queryset=ShopRoute.objects.all() - serializer_class=ShopRouteSerializer