update
This commit is contained in:
@ -53,6 +53,3 @@ RUN pip install -r requirements.txt
|
|||||||
|
|
||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
COPY wait-for-it.sh /wait-for-it.sh
|
|
||||||
RUN chmod +x /wait-for-it.sh
|
|
||||||
|
|
||||||
|
|||||||
@ -62,3 +62,4 @@ tomli==1.2.2
|
|||||||
typing_extensions==4.0.0
|
typing_extensions==4.0.0
|
||||||
urllib3==1.26.7
|
urllib3==1.26.7
|
||||||
django-extra-fields==3.0.2
|
django-extra-fields==3.0.2
|
||||||
|
django-phonenumber-field==6.1.0
|
||||||
|
|||||||
14
rog/admin.py
14
rog/admin.py
@ -2,7 +2,7 @@ from django.contrib import admin
|
|||||||
from leaflet.admin import LeafletGeoAdmin
|
from leaflet.admin import LeafletGeoAdmin
|
||||||
from leaflet.admin import LeafletGeoAdminMixin
|
from leaflet.admin import LeafletGeoAdminMixin
|
||||||
from leaflet_admin_list.admin import LeafletAdminListMixin
|
from leaflet_admin_list.admin import LeafletAdminListMixin
|
||||||
from .models import RogEvent, Shop, EventRoute, ShopRoute
|
from .models import RogUser, Location, SystemSettings, JoinedEvent, Favorite, TravelList, TravelPoint, ShapeLayers
|
||||||
|
|
||||||
|
|
||||||
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
class RogAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
||||||
@ -17,7 +17,11 @@ class EventRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAd
|
|||||||
class ShopRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
class ShopRouteAdmin(LeafletAdminListMixin, LeafletGeoAdminMixin, admin.ModelAdmin):
|
||||||
list_display=['name',]
|
list_display=['name',]
|
||||||
|
|
||||||
admin.site.register(RogEvent, RogAdmin)
|
admin.site.register(RogUser, admin.ModelAdmin)
|
||||||
admin.site.register(Shop, ShopAdmin)
|
admin.site.register(Location, LeafletGeoAdmin)
|
||||||
admin.site.register(EventRoute, EventRouteAdmin)
|
admin.site.register(SystemSettings, admin.ModelAdmin)
|
||||||
admin.site.register(ShopRoute, ShopRouteAdmin)
|
admin.site.register(JoinedEvent, admin.ModelAdmin)
|
||||||
|
admin.site.register(Favorite, admin.ModelAdmin)
|
||||||
|
admin.site.register(TravelList, admin.ModelAdmin)
|
||||||
|
admin.site.register(TravelPoint, admin.ModelAdmin)
|
||||||
|
admin.site.register(ShapeLayers, admin.ModelAdmin)
|
||||||
|
|||||||
5
rog/choices.py
Normal file
5
rog/choices.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
LAYER_CHOICES = (
|
||||||
|
(1, _("locations")),
|
||||||
|
)
|
||||||
7
rog/mapping.py
Normal file
7
rog/mapping.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
from django.contrib.gis.utils import LayerMapping
|
||||||
|
|
||||||
|
location_mapping = {
|
||||||
|
'location_name': 'Name',
|
||||||
|
'category': 'descriptio',
|
||||||
|
'geom': 'MULTIPOLYGON',
|
||||||
|
}
|
||||||
@ -0,0 +1,162 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-02-22 12:54
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
import django.contrib.gis.db.models.fields
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('rog', '0004_shoproute'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Layer',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=155, verbose_name='Layer Name')),
|
||||||
|
('description', models.CharField(blank=True, max_length=512, verbose_name='Layer description')),
|
||||||
|
('file', models.FileField(blank=True, upload_to='%y%m%d')),
|
||||||
|
('uploaded_date', models.DateTimeField(auto_now_add=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Layers',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Location',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('location_id', models.IntegerField(verbose_name='Location Name')),
|
||||||
|
('location_name', models.CharField(max_length=255, verbose_name='Location Name')),
|
||||||
|
('category', models.CharField(max_length=255, verbose_name='Category')),
|
||||||
|
('zip', models.CharField(max_length=12, verbose_name='Zip code')),
|
||||||
|
('address', models.CharField(max_length=512, verbose_name='Address')),
|
||||||
|
('prefecture', models.CharField(max_length=255, verbose_name='Prefecture')),
|
||||||
|
('area', models.CharField(max_length=255, verbose_name='Area')),
|
||||||
|
('city', models.CharField(max_length=255, verbose_name='City')),
|
||||||
|
('photos', models.JSONField(blank=True, null=True, verbose_name='Phptos')),
|
||||||
|
('videos', models.JSONField(blank=True, null=True, verbose_name='Videos')),
|
||||||
|
('web_content', models.JSONField(blank=True, null=True, verbose_name='Web Content')),
|
||||||
|
('tags', models.CharField(blank=True, max_length=512, null=True, verbose_name='Tags')),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('geom', django.contrib.gis.db.models.fields.MultiPointField(srid=4326)),
|
||||||
|
('file', models.FileField(blank=True, upload_to='%y%m%d')),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='location_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='TravelPoint',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('travel_id', models.IntegerField(verbose_name='Travel Id')),
|
||||||
|
('distance', models.FloatField()),
|
||||||
|
('transportation', models.CharField(max_length=255, verbose_name='Transpotation')),
|
||||||
|
('eta', models.DateTimeField()),
|
||||||
|
('order_number', models.IntegerField()),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='travelpoint_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.location')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='TravelList',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('travel_id', models.IntegerField(verbose_name='Travel Id')),
|
||||||
|
('start_date', models.DateTimeField()),
|
||||||
|
('finish_date', models.DateTimeField()),
|
||||||
|
('category', models.CharField(max_length=255, verbose_name='Category')),
|
||||||
|
('title', models.CharField(max_length=255, verbose_name='Title')),
|
||||||
|
('transportation', models.CharField(max_length=255, verbose_name='Transpotation')),
|
||||||
|
('moving_distance', models.IntegerField()),
|
||||||
|
('duration', models.DurationField(verbose_name='Duration')),
|
||||||
|
('eta', models.DateTimeField()),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='travel_list_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='SystemSettings',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('setting_name', models.CharField(max_length=255, verbose_name='Settings Name')),
|
||||||
|
('version', models.CharField(blank=True, max_length=10, null=True, verbose_name='Version')),
|
||||||
|
('effective_date', models.DateTimeField()),
|
||||||
|
('end_date', models.DateTimeField()),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('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='RogUser',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('email', models.EmailField(max_length=254, verbose_name='Email')),
|
||||||
|
('phone', models.CharField(max_length=55, verbose_name='Phone Number')),
|
||||||
|
('first_name', models.CharField(max_length=255, verbose_name='First Name')),
|
||||||
|
('middle_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Middle Name')),
|
||||||
|
('last_name', models.CharField(max_length=255, verbose_name='last_name')),
|
||||||
|
('nickname', models.CharField(blank=True, max_length=255, null=True, verbose_name='Nickname')),
|
||||||
|
('country', models.CharField(default='Japan', max_length=255, verbose_name='Country')),
|
||||||
|
('language', models.CharField(default='Japanese', max_length=255, verbose_name='Language')),
|
||||||
|
('prefecture', models.CharField(blank=True, max_length=255, null=True, verbose_name='Prefecture')),
|
||||||
|
('sex', models.CharField(blank=True, default='unknown', max_length=255, null=True, verbose_name='Sex')),
|
||||||
|
('birth_year', models.IntegerField(blank=True, null=True, verbose_name='Birth year')),
|
||||||
|
('family_structure', models.IntegerField(blank=True, null=True, verbose_name='Family Structure')),
|
||||||
|
('introducer', models.IntegerField(blank=True, default=0, null=True, verbose_name='Introducerr')),
|
||||||
|
('level', models.IntegerField(blank=True, default=0, null=True, verbose_name='Level')),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='roguser_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='JoinedEvent',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('tag_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Tag Name')),
|
||||||
|
('status', models.CharField(choices=[('REGISTERED', 'Registered'), ('ACCEPTED', 'accepted'), ('PAID', 'paid'), ('JOINED', 'joined'), ('CANCELED', 'Canceled')], max_length=256)),
|
||||||
|
('registration_id', models.CharField(max_length=56, verbose_name='Registration Id')),
|
||||||
|
('payment_code', models.CharField(max_length=255, verbose_name='Payment Code')),
|
||||||
|
('paied_amount', models.IntegerField(default=0, verbose_name='Paid Amount')),
|
||||||
|
('remark', models.CharField(blank=True, max_length=255, null=True, verbose_name='Remark')),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='joined_event_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Favorite',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('good', models.IntegerField(default=0, verbose_name='Good')),
|
||||||
|
('favorite', models.IntegerField(default=0, verbose_name='Favorite')),
|
||||||
|
('evaluation', models.IntegerField(default=0, verbose_name='Evaluation')),
|
||||||
|
('number_visit', models.IntegerField(default=0, verbose_name='Good')),
|
||||||
|
('last_visited', models.DateTimeField(verbose_name='Last Visited')),
|
||||||
|
('parammeters', models.CharField(max_length=512, verbose_name='Parameters')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('last_updated_at', models.DateTimeField(auto_now=True)),
|
||||||
|
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='favorite_updated_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.location')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
||||||
31
rog/migrations/0006_auto_20220222_2308.py
Normal file
31
rog/migrations/0006_auto_20220222_2308.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-02-22 14:08
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('rog', '0005_favorite_joinedevent_layer_location_roguser_systemsettings_travellist_travelpoint'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='ShapeLayers',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=255, verbose_name='Shape Layer')),
|
||||||
|
('file', models.FileField(blank=True, upload_to='%y%m%d')),
|
||||||
|
('uploaded_date', models.DateField(auto_now_add=True)),
|
||||||
|
('layerof', models.IntegerField(choices=[(1, 'locations')], default=1)),
|
||||||
|
('table_name', models.CharField(blank=True, max_length=255, verbose_name='Table name')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.DeleteModel(
|
||||||
|
name='Layer',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='location',
|
||||||
|
name='file',
|
||||||
|
),
|
||||||
|
]
|
||||||
48
rog/migrations/0007_auto_20220222_2320.py
Normal file
48
rog/migrations/0007_auto_20220222_2320.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-02-22 14:20
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('rog', '0006_auto_20220222_2308'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='address',
|
||||||
|
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Address'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='area',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Area'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='city',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='City'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='location_id',
|
||||||
|
field=models.IntegerField(blank=True, null=True, verbose_name='Location Name'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='parammeters',
|
||||||
|
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='prefecture',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Prefecture'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='zip',
|
||||||
|
field=models.CharField(blank=True, max_length=12, null=True, verbose_name='Zip code'),
|
||||||
|
),
|
||||||
|
]
|
||||||
18
rog/migrations/0008_alter_location_category.py
Normal file
18
rog/migrations/0008_alter_location_category.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-02-22 14:22
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('rog', '0007_auto_20220222_2320'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='category',
|
||||||
|
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Category'),
|
||||||
|
),
|
||||||
|
]
|
||||||
21
rog/migrations/0009_alter_location_last_updated_user.py
Normal file
21
rog/migrations/0009_alter_location_last_updated_user.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Generated by Django 3.2.9 on 2022-02-22 14:36
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('rog', '0008_alter_location_category'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='last_updated_user',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='location_updated_user', to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
||||||
199
rog/models.py
199
rog/models.py
@ -1,5 +1,143 @@
|
|||||||
|
from typing import ChainMap
|
||||||
from django.contrib.gis.db import models
|
from django.contrib.gis.db import models
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
from django.db.models.signals import post_save, post_delete, pre_save
|
||||||
|
from django.dispatch import receiver
|
||||||
|
import geopandas as gpd
|
||||||
|
from sqlalchemy import *
|
||||||
|
from geoalchemy2 import Geometry, WKTElement
|
||||||
|
import os, zipfile, glob
|
||||||
|
import environ
|
||||||
|
from geo.Postgres import Db
|
||||||
|
from sqlalchemy.sql.functions import mode
|
||||||
|
from .mapping import location_mapping
|
||||||
|
from .choices import LAYER_CHOICES
|
||||||
|
from django.contrib.gis.utils import LayerMapping
|
||||||
|
|
||||||
|
env = environ.Env(DEBUG=(bool, False))
|
||||||
|
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 RogUser(models.Model):
|
||||||
|
email=models.EmailField(_('Email'))
|
||||||
|
phone=models.CharField(_('Phone Number'), max_length=55)
|
||||||
|
first_name=models.CharField(_('First Name'), max_length=255)
|
||||||
|
middle_name=models.CharField(_('Middle Name'), max_length=255, blank=True, null=True)
|
||||||
|
last_name=models.CharField(_('last_name'), max_length=255)
|
||||||
|
nickname=models.CharField(_('Nickname'), max_length=255, blank=True, null=True)
|
||||||
|
country=models.CharField(_('Country'), max_length=255, default='Japan')
|
||||||
|
language=models.CharField(_('Language'), max_length=255, default='Japanese')
|
||||||
|
prefecture=models.CharField(_('Prefecture'), max_length=255, blank=True, null=True)
|
||||||
|
sex=models.CharField(_('Sex'), max_length=255, default='unknown', blank=True, null=True)
|
||||||
|
birth_year=models.IntegerField(_('Birth year'), blank=True, null=True)
|
||||||
|
family_structure =models.IntegerField(_('Family Structure'), blank=True, null=True)
|
||||||
|
introducer = models.IntegerField(_('Introducerr'), blank=True, null=True, default=0)
|
||||||
|
level= models.IntegerField(_('Level'), blank=True, null=True, default=0)
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="roguser_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
|
class SystemSettings(models.Model):
|
||||||
|
setting_name=models.CharField(_('Settings Name'), max_length=255)
|
||||||
|
version=models.CharField(_('Version'), max_length=10, blank=True, null=True)
|
||||||
|
effective_date=models.DateTimeField()
|
||||||
|
end_date=models.DateTimeField()
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="system_setting_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
class Location(models.Model):
|
||||||
|
location_id=models.IntegerField(_('Location Name'), blank=True, null=True)
|
||||||
|
location_name=models.CharField(_('Location Name'), max_length=255)
|
||||||
|
category=models.CharField(_('Category'), max_length=255, blank=True, null=True)
|
||||||
|
zip=models.CharField(_('Zip code'), max_length=12, blank=True, null=True)
|
||||||
|
address = models.CharField(_('Address'), max_length=512, blank=True, null=True)
|
||||||
|
prefecture = models.CharField(_('Prefecture'), max_length=255, blank=True, null=True)
|
||||||
|
area= models.CharField(_('Area'), max_length=255, blank=True, null=True)
|
||||||
|
city= models.CharField(_('City'), max_length=255, blank=True, null=True)
|
||||||
|
photos=models.JSONField(_('Phptos'), blank=True, null=True)
|
||||||
|
videos=models.JSONField(_('Videos'), blank=True, null=True)
|
||||||
|
web_content=models.JSONField(_('Web Content'), blank=True, null=True)
|
||||||
|
tags=models.CharField(_('Tags'), max_length=512, blank=True, null=True)
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512, blank=True, null=True)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="location_updated_user", on_delete=models.DO_NOTHING,blank=True, null=True)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
geom=models.MultiPointField(srid=4326)
|
||||||
|
|
||||||
|
|
||||||
|
ROG_STATUS = (
|
||||||
|
("REGISTERED", _("Registered")),
|
||||||
|
("ACCEPTED", _("accepted")),
|
||||||
|
("PAID", _("paid")),
|
||||||
|
("JOINED", _("joined")),
|
||||||
|
("CANCELED", _("Canceled"))
|
||||||
|
)
|
||||||
|
|
||||||
|
class JoinedEvent(models.Model):
|
||||||
|
user=models.ForeignKey(User, on_delete=models.DO_NOTHING)
|
||||||
|
tag_name=models.CharField(_('Tag Name'), max_length=255, blank=True, null=True)
|
||||||
|
status=models.CharField(max_length=256, choices=ROG_STATUS)
|
||||||
|
registration_id=models.CharField(_('Registration Id'), max_length=56)
|
||||||
|
payment_code=models.CharField(_('Payment Code'), max_length=255)
|
||||||
|
paied_amount=models.IntegerField(_('Paid Amount'), default=0)
|
||||||
|
remark=models.CharField(_('Remark'), max_length=255, blank=True, null=True)
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="joined_event_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
|
class Favorite(models.Model):
|
||||||
|
user=models.ForeignKey(User, on_delete=models.DO_NOTHING)
|
||||||
|
location=models.ForeignKey(Location, on_delete=models.CASCADE)
|
||||||
|
good=models.IntegerField(_('Good'), default=0)
|
||||||
|
favorite=models.IntegerField(_('Favorite'), default=0)
|
||||||
|
evaluation=models.IntegerField(_('Evaluation'), default=0)
|
||||||
|
number_visit=models.IntegerField(_('Good'), default=0)
|
||||||
|
last_visited=models.DateTimeField(_('Last Visited'))
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="favorite_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
|
class TravelList(models.Model):
|
||||||
|
travel_id= models.IntegerField(_('Travel Id'))
|
||||||
|
user=models.ForeignKey(User, on_delete=models.DO_NOTHING)
|
||||||
|
start_date=models.DateTimeField()
|
||||||
|
finish_date=models.DateTimeField()
|
||||||
|
category=models.CharField(_('Category'), max_length=255)
|
||||||
|
title=models.CharField(_('Title'), max_length=255)
|
||||||
|
transportation=models.CharField(_('Transpotation'), max_length=255)
|
||||||
|
moving_distance=models.IntegerField()
|
||||||
|
duration=models.DurationField(_('Duration'))
|
||||||
|
eta=models.DateTimeField()
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="travel_list_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
|
class TravelPoint(models.Model):
|
||||||
|
travel_id= models.IntegerField(_('Travel Id'))
|
||||||
|
location=models.ForeignKey(Location, on_delete=models.CASCADE)
|
||||||
|
distance=models.FloatField()
|
||||||
|
transportation=models.CharField(_('Transpotation'), max_length=255)
|
||||||
|
eta=models.DateTimeField()
|
||||||
|
order_number=models.IntegerField()
|
||||||
|
parammeters=models.CharField(_('Parameters'), max_length=512)
|
||||||
|
created_at=models.DateTimeField(auto_now_add=True)
|
||||||
|
last_updated_user=models.ForeignKey(User, related_name="travelpoint_updated_user", on_delete=models.DO_NOTHING)
|
||||||
|
last_updated_at=models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RogEvent(models.Model):
|
class RogEvent(models.Model):
|
||||||
@ -34,4 +172,63 @@ class ShopRoute(models.Model):
|
|||||||
geom = models.MultiLineStringField(srid=4326)
|
geom = models.MultiLineStringField(srid=4326)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
def getTableForModel(tbl):
|
||||||
|
if tbl == 1:
|
||||||
|
return Location.objects.model._meta.db_table;
|
||||||
|
|
||||||
|
def getMappingforModel(tbl, shp):
|
||||||
|
if tbl == 1:
|
||||||
|
return LayerMapping(Location, shp, location_mapping, transform=False)
|
||||||
|
|
||||||
|
|
||||||
|
class ShapeLayers(models.Model):
|
||||||
|
name = models.CharField(_("Shape Layer"), max_length=255)
|
||||||
|
file = models.FileField(upload_to='%y%m%d', blank=True)
|
||||||
|
uploaded_date = models.DateField(auto_now_add=True)
|
||||||
|
layerof = models.IntegerField(choices=LAYER_CHOICES, default=1)
|
||||||
|
table_name = models.CharField(_("Table name"), max_length=255, blank=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(pre_save, sender=ShapeLayers)
|
||||||
|
def my_callback(sender, instance, *args, **kwargs):
|
||||||
|
instance.table_name = getTableForModel(instance.layerof)
|
||||||
|
|
||||||
|
@receiver(post_save, sender=ShapeLayers)
|
||||||
|
def publish_date(sender, instance, created, **kwargs):
|
||||||
|
file = instance.file.path
|
||||||
|
file_format = os.path.basename(file).split('.')[-1]
|
||||||
|
file_name = os.path.basename(file).split('.')[0]
|
||||||
|
file_path = os.path.dirname(file)
|
||||||
|
name = instance.name
|
||||||
|
conn_str = f'postgresql://{env("POSTGRES_USER")}:{env("POSTGRES_PASS")}@{env("PG_HOST")}:{env("PG_PORT")}/{env("POSTGRES_DBNAME")}'
|
||||||
|
|
||||||
|
with zipfile.ZipFile(file, 'r') as zip_ref:
|
||||||
|
zip_ref.extractall(file_path)
|
||||||
|
|
||||||
|
os.remove(file)
|
||||||
|
|
||||||
|
try:
|
||||||
|
shp = glob.glob(r'{}/**/*.shp'.format(file_path), recursive=True)[0]
|
||||||
|
gdf = gpd.read_file(shp)
|
||||||
|
crs_name = str(gdf.crs.srs)
|
||||||
|
print(crs_name, 'crs - name')
|
||||||
|
epsg = int(crs_name.replace('epsg:',''))
|
||||||
|
if epsg is None:
|
||||||
|
epsg=4326
|
||||||
|
|
||||||
|
print("### shape file is ###")
|
||||||
|
|
||||||
|
lm2 = getMappingforModel(instance.layerof, shp)
|
||||||
|
lm2.save(strict=True, verbose=True)
|
||||||
|
|
||||||
|
os.remove(shp)
|
||||||
|
except Exception as e:
|
||||||
|
print('##################',e)
|
||||||
|
|||||||
Reference in New Issue
Block a user