2 Commits
exdb ... master

Author SHA1 Message Date
1c7a6a1f5c Added APIs for team and members 2024-07-20 11:15:33 +09:00
f0114ef33c setup for Akiras Laptop 2024-04-22 00:08:34 +09:00
98 changed files with 1688 additions and 171 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
.gitignore vendored
View File

@ -165,4 +165,3 @@ cython_debug/
#.idea/ #.idea/
# End of https://www.toptal.com/developers/gitignore/api/django # End of https://www.toptal.com/developers/gitignore/api/django
.DS_Store

View File

@ -1,5 +1,8 @@
# FROM python:3.9.9-slim-buster # FROM python:3.9.9-slim-buster
FROM osgeo/gdal:ubuntu-small-3.4.0 FROM osgeo/gdal:ubuntu-small-3.4.0
# Akira
FROM python:3.10
FROM ubuntu:latest
WORKDIR /app WORKDIR /app
@ -14,6 +17,13 @@ ARG TZ Asia/Tokyo \
RUN apt-get update -y RUN apt-get update -y
# 必要なライブラリのインストール by akira
RUN apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:ubuntugis/ppa && \
apt-get update && \
apt-get install -y gdal-bin libgdal-dev python3-gdal
# Install GDAL dependencies # Install GDAL dependencies
RUN apt-get install -y libgdal-dev g++ --no-install-recommends && \ RUN apt-get install -y libgdal-dev g++ --no-install-recommends && \
apt-get clean -y apt-get clean -y
@ -23,7 +33,7 @@ ENV CPLUS_INCLUDE_PATH=/usr/include/gdal
ENV C_INCLUDE_PATH=/usr/include/gdal ENV C_INCLUDE_PATH=/usr/include/gdal
RUN apt-get update \ RUN apt-get update \
&& apt-get -y install netcat gcc postgresql \ && apt-get -y install netcat-openbsd gcc postgresql \
&& apt-get clean && apt-get clean
RUN apt-get update \ RUN apt-get update \
@ -56,7 +66,9 @@ RUN pip install -r requirements.txt
COPY . /app COPY . /app
# Collect static files # Collect static files
RUN python manage.py collectstatic --noinput RUN python3 manage.py collectstatic --noinput
# Use Gunicorn as the entrypoint # Use Gunicorn as the entrypoint
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"] CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]

6
README.jpn Normal file
View File

@ -0,0 +1,6 @@
デプロイ:
you can just run
docker-compose up -d
will deploy it

View File

@ -173,4 +173,17 @@ LEAFLET_CONFIG = {
REST_FRAMEWORK = { REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'], 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication', ), 'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication', ),
} }
# Email settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp-mail.outlook.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'akira.miyata@gifuai.net'
EMAIL_HOST_PASSWORD = 'SachikoMiyata@123'
# Optional: Set a default "from" address
DEFAULT_FROM_EMAIL = 'info@gifuai.net'

View File

@ -1,46 +1,46 @@
version: "3.9" version: "3.9"
services: services:
# postgres-db: postgres-db:
# image: kartoza/postgis:12.0 image: kartoza/postgis:12.0
# ports: ports:
# - 5432:5432 - 5432:5432
# volumes: volumes:
# - postgres_data:/var/lib/postgresql - postgres_data:/var/lib/postgresql
# - ./custom-postgresql.conf:/etc/postgresql/12/main/postgresql.conf - ./custom-postgresql.conf:/etc/postgresql/12/main/postgresql.conf
# environment: environment:
# - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_USER=${POSTGRES_USER}
# - POSTGRES_PASS=${POSTGRES_PASS} - POSTGRES_PASS=${POSTGRES_PASS}
# - POSTGRES_DBNAME=${POSTGRES_DBNAME} - POSTGRES_DBNAME=${POSTGRES_DBNAME}
# - POSTGRES_MAX_CONNECTIONS=600 - POSTGRES_MAX_CONNECTIONS=600
# restart: "on-failure" restart: "on-failure"
# networks: networks:
# - rog-api - rog-api
api: api:
build: build:
context: . context: .
dockerfile: Dockerfile.gdal dockerfile: Dockerfile.gdal
command: python3 manage.py runserver 0.0.0.0:8100 command: python3 manage.py runserver 0.0.0.0:8100
volumes: volumes:
- .:/app - .:/app
ports: ports:
- 8100:8100 - 8100:8100
env_file: env_file:
- .env - .env
restart: "on-failure" restart: "on-failure"
# depends_on: depends_on:
# - postgres-db - postgres-db
networks: networks:
- rog-api - rog-api
#entrypoint: ["/app/wait-for.sh", "postgres-db:5432", "--", ""] #entrypoint: ["/app/wait-for.sh", "postgres-db:5432", "--", ""]
#command: python3 manage.py runserver 0.0.0.0:8100 #command: python3 manage.py runserver 0.0.0.0:8100
networks: networks:
rog-api: rog-api:
driver: bridge driver: bridge
volumes: volumes:
postgres_data: postgres_data:
geoserver-data: geoserver-data:

View File

@ -52,5 +52,4 @@ releasenotes/build
hosts hosts
*.retry *.retry
#Vagrantfiles, since we are using docker #Vagrantfiles, since we are using docker
Vagrantfile.* Vagrantfile.*
media/

View File

@ -31,7 +31,7 @@ matplotlib==3.5.0
mccabe==0.6.1 mccabe==0.6.1
munch==2.5.0 munch==2.5.0
mypy-extensions==0.4.3 mypy-extensions==0.4.3
numpy==1.21.4 numpy==1.26.2
packaging==21.3 packaging==21.3
pandas==1.3.4 pandas==1.3.4
pathspec==0.9.0 pathspec==0.9.0
@ -46,11 +46,13 @@ pyparsing==3.0.6
pyproj==3.3.0 pyproj==3.3.0
python-dateutil==2.8.2 python-dateutil==2.8.2
pytz==2021.3 pytz==2021.3
rasterio==1.2.10 #rasterio==1.2.10 Akira
rasterio==1.3.10
regex==2021.11.10 regex==2021.11.10
requests==2.26.0 requests==2.26.0
Rtree==0.9.7 Rtree==0.9.7
scipy==1.7.3 #scipy==1.7.3
scipy==1.10.1
seaborn==0.11.2 seaborn==0.11.2
setuptools-scm==6.3.2 setuptools-scm==6.3.2
Shapely==1.8.0 Shapely==1.8.0

BIN
rog/.DS_Store vendored

Binary file not shown.

View File

@ -2,7 +2,6 @@ from django.conf import settings
#from django.contrib.auth import get_user_model #from django.contrib.auth import get_user_model
from .models import CustomUser from .models import CustomUser
from django.contrib.auth.backends import ModelBackend from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
class EmailOrUsernameModelBackend(ModelBackend): class EmailOrUsernameModelBackend(ModelBackend):
""" """

View File

@ -0,0 +1,351 @@
# Generated by Django 3.2.9 on 2022-05-04 15:05
from django.conf import settings
import django.contrib.gis.db.models.fields
from django.db import migrations, models
import django.db.models.deletion
import rog.models
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0012_alter_user_first_name_max_length'),
]
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='JpnSubPerf',
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)),
('adm2_ja', models.CharField(blank=True, max_length=254, null=True)),
('adm2_en', models.CharField(blank=True, max_length=254, null=True)),
('adm2_pcode', models.CharField(blank=True, max_length=254, null=True)),
],
options={
'db_table': 'jpn_sub_perf',
'managed': False,
},
),
migrations.CreateModel(
name='CustomUser',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
('is_staff', models.BooleanField(default=False)),
('is_active', models.BooleanField(default=False)),
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='Location',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('location_id', models.IntegerField(blank=True, null=True, verbose_name='Location id')),
('location_name', models.CharField(default='--- 場所をお願いします --', max_length=255, verbose_name='Location Name')),
('category', models.CharField(blank=True, max_length=255, null=True, verbose_name='Category')),
('zip', models.CharField(blank=True, max_length=12, null=True, verbose_name='Zip code')),
('address', models.CharField(blank=True, max_length=512, null=True, verbose_name='Address')),
('prefecture', models.CharField(blank=True, max_length=255, null=True, verbose_name='Prefecture')),
('area', models.CharField(blank=True, max_length=255, null=True, verbose_name='Area')),
('city', models.CharField(blank=True, max_length=255, null=True, verbose_name='City')),
('latitude', models.FloatField(blank=True, null=True, verbose_name='Latitude')),
('longitude', models.FloatField(blank=True, null=True, verbose_name='Latitude')),
('photos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phptos')),
('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='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='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)),
('last_updated_at', models.DateTimeField(auto_now=True)),
('geom', django.contrib.gis.db.models.fields.MultiPointField(srid=4326)),
('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='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=rog.models.get_file_path)),
('uploaded_date', models.DateField(auto_now_add=True)),
('layerof', models.IntegerField(choices=[(1, 'location'), (2, 'Location_line'), (3, 'Location_polygon')], default=1)),
('table_name', models.CharField(blank=True, max_length=255, verbose_name='Table name')),
],
),
migrations.CreateModel(
name='TestModel',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('testbane', models.CharField(max_length=355, verbose_name='test field')),
('wanttogo', models.BooleanField(default=False)),
('like', models.BooleanField(default=False)),
('checkin', models.BooleanField(default=False)),
('created_at', models.DateTimeField(auto_now_add=True)),
('last_updated_at', models.DateTimeField(auto_now=True)),
],
),
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(blank=True, null=True, verbose_name='Start date')),
('finish_date', models.DateTimeField(blank=True, null=True, verbose_name='End date')),
('category', models.CharField(choices=[('PRIVATE', 'Private'), ('GROUP', 'Group'), ('AGENT', 'Agent'), ('ROGAINING', 'Rogaining')], max_length=256)),
('title', models.CharField(max_length=255, verbose_name='Title')),
('transportation', models.CharField(blank=True, max_length=255, null=True, verbose_name='Transpotation')),
('moving_distance', models.IntegerField(blank=True, null=True)),
('duration', models.DurationField(blank=True, null=True, verbose_name='Duration')),
('eta', models.DateTimeField(blank=True, null=True)),
('parammeters', models.CharField(blank=True, max_length=512, null=True, 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='Useractions',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('wanttogo', models.BooleanField(default=False)),
('like', models.BooleanField(default=False)),
('checkin', models.BooleanField(default=False)),
('created_at', models.DateTimeField(auto_now_add=True)),
('last_updated_at', models.DateTimeField(auto_now=True)),
('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='action_location', to='rog.location')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='action_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')),
('distance', models.FloatField(blank=True, null=True)),
('transportation', models.CharField(blank=True, max_length=255, null=True, verbose_name='Transpotation')),
('eta', models.DateTimeField(blank=True, null=True)),
('order_number', models.IntegerField(blank=True, null=True)),
('parammeters', models.CharField(blank=True, max_length=512, null=True, 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')),
('travel_list', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='rog.travellist')),
],
),
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')),
('birthyear', models.IntegerField(blank=True, null=True, verbose_name='Birth year')),
('family_structure', models.IntegerField(blank=True, null=True, verbose_name='Family Structure')),
('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)),
('introducer', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='introduced_uesr', to=settings.AUTH_USER_MODEL)),
('last_updated_user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, related_name='roguser_updated_user', to=settings.AUTH_USER_MODEL)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Location_polygon',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('location_id', models.IntegerField(blank=True, null=True, verbose_name='Location id')),
('location_name', models.CharField(max_length=255, verbose_name='Location Name')),
('category', models.CharField(blank=True, max_length=255, null=True, verbose_name='Category')),
('zip', models.CharField(blank=True, max_length=12, null=True, verbose_name='Zip code')),
('address', models.CharField(blank=True, max_length=512, null=True, verbose_name='Address')),
('prefecture', models.CharField(blank=True, max_length=255, null=True, verbose_name='Prefecture')),
('area', models.CharField(blank=True, max_length=255, null=True, verbose_name='Area')),
('city', models.CharField(blank=True, max_length=255, null=True, verbose_name='City')),
('photos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phptos')),
('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='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='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)),
('last_updated_at', models.DateTimeField(auto_now=True)),
('geom', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326)),
('last_updated_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='location_polygon_updated_user', to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='Location_line',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('location_id', models.IntegerField(blank=True, null=True, verbose_name='Location id')),
('location_name', models.CharField(max_length=255, verbose_name='Location Name')),
('category', models.CharField(blank=True, max_length=255, null=True, verbose_name='Category')),
('zip', models.CharField(blank=True, max_length=12, null=True, verbose_name='Zip code')),
('address', models.CharField(blank=True, max_length=512, null=True, verbose_name='Address')),
('prefecture', models.CharField(blank=True, max_length=255, null=True, verbose_name='Prefecture')),
('area', models.CharField(blank=True, max_length=255, null=True, verbose_name='Area')),
('city', models.CharField(blank=True, max_length=255, null=True, verbose_name='City')),
('photos', models.CharField(blank=True, max_length=255, null=True, verbose_name='Phptos')),
('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='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='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)),
('last_updated_at', models.DateTimeField(auto_now=True)),
('geom', django.contrib.gis.db.models.fields.MultiLineStringField(blank=True, null=True, srid=4326)),
('last_updated_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='location_line_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')),
('tagname', 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)),
('registrationid', models.CharField(max_length=56, verbose_name='Registration Id')),
('payment_code', models.CharField(max_length=255, verbose_name='Payment Code')),
('paid', 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(blank=True, null=True, verbose_name='Last Visited')),
('parammeters', models.CharField(blank=True, max_length=512, null=True, 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)),
],
),
migrations.CreateModel(
name='Event',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('tagname', models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters')),
('status', models.CharField(choices=[('PREPARING', 'Preparing'), ('PROMOTION', 'Promotion'), ('EVENT', 'Event'), ('END', 'End')], max_length=256)),
('price', models.IntegerField(default=0, verbose_name='Paid Amount')),
('promotion_date', models.DateTimeField(blank=True, null=True, verbose_name='Promotion date')),
('event_start', models.DateTimeField(blank=True, null=True, verbose_name='Promotion date')),
('event_end', models.DateTimeField(blank=True, null=True, verbose_name='Promotion date')),
('remark', models.CharField(blank=True, max_length=256, null=True)),
('parammeters', models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters')),
('created_at', models.DateTimeField(auto_now_add=True)),
('last_updated_at', models.DateTimeField(auto_now=True)),
('last_updated_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='event_updated_user', to=settings.AUTH_USER_MODEL)),
],
),
]

Binary file not shown.

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-05-11 11:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='useractions',
name='order',
field=models.IntegerField(default=-1),
),
migrations.AlterField(
model_name='customuser',
name='is_active',
field=models.BooleanField(default=True),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-05-11 17:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0002_auto_20220511_2017'),
]
operations = [
migrations.AlterField(
model_name='useractions',
name='order',
field=models.IntegerField(default=0),
),
]

View File

@ -0,0 +1,55 @@
# Generated by Django 3.2.9 on 2022-06-05 15:23
import django.contrib.gis.db.models.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0003_alter_useractions_order'),
]
operations = [
migrations.CreateModel(
name='GifuAreas',
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)),
('adm2_ja', models.CharField(blank=True, max_length=254, null=True)),
('adm2_en', models.CharField(blank=True, max_length=254, null=True)),
('adm2_pcode', models.CharField(blank=True, max_length=254, null=True)),
('area_nm', models.CharField(blank=True, max_length=254, null=True)),
],
options={
'db_table': 'gifu_areas',
'managed': False,
},
),
migrations.AddField(
model_name='location',
name='auto_checkin',
field=models.BooleanField(default=False, verbose_name='Is Autologin'),
),
migrations.AddField(
model_name='location',
name='checkin_radious',
field=models.IntegerField(blank=True, null=True, verbose_name='Checkin Radious'),
),
migrations.AddField(
model_name='location',
name='event_active',
field=models.BooleanField(default=True, verbose_name='Is Autologin'),
),
migrations.AddField(
model_name='location',
name='event_name',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Tags'),
),
]

View File

@ -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'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-06-07 13:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0005_auto_20220606_1523'),
]
operations = [
migrations.AddField(
model_name='location',
name='paid',
field=models.BooleanField(default=False, verbose_name='Is Paid'),
),
]

View File

@ -0,0 +1,22 @@
# Generated by Django 3.2.9 on 2022-06-07 13:07
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0006_location_paid'),
]
operations = [
migrations.RemoveField(
model_name='location',
name='paid',
),
migrations.AddField(
model_name='roguser',
name='paid',
field=models.BooleanField(default=False, verbose_name='Is Paid'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-06-07 13:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0007_auto_20220607_2207'),
]
operations = [
migrations.AlterField(
model_name='roguser',
name='parammeters',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Parameters'),
),
]

View File

@ -0,0 +1,17 @@
# Generated by Django 3.2.9 on 2022-06-07 14:24
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('rog', '0008_alter_roguser_parammeters'),
]
operations = [
migrations.RemoveField(
model_name='roguser',
name='email',
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-06-10 06:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0009_remove_roguser_email'),
]
operations = [
migrations.AddField(
model_name='useractions',
name='checkinimage',
field=models.FileField(blank=True, null=True, upload_to='%y%m%d'),
),
]

View File

@ -0,0 +1,25 @@
# Generated by Django 3.2.9 on 2022-06-12 18:11
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 = [
('rog', '0010_useractions_checkinimage'),
]
operations = [
migrations.CreateModel(
name='UserTracks',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('geom', django.contrib.gis.db.models.fields.MultiPointField(srid=4326)),
('created_at', models.DateTimeField(auto_now_add=True)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
],
),
]

Binary file not shown.

View File

@ -0,0 +1,113 @@
# Generated by Django 3.2.9 on 2022-06-13 08:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0011_usertracks'),
]
operations = [
migrations.AlterField(
model_name='location',
name='address',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Address'),
),
migrations.AlterField(
model_name='location',
name='area',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Area'),
),
migrations.AlterField(
model_name='location',
name='category',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Category'),
),
migrations.AlterField(
model_name='location',
name='city',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='City'),
),
migrations.AlterField(
model_name='location',
name='email',
field=models.EmailField(blank=True, max_length=2048, null=True, verbose_name='Email'),
),
migrations.AlterField(
model_name='location',
name='event_name',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Event name'),
),
migrations.AlterField(
model_name='location',
name='facility',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Facility'),
),
migrations.AlterField(
model_name='location',
name='fax',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Fax'),
),
migrations.AlterField(
model_name='location',
name='group',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Group'),
),
migrations.AlterField(
model_name='location',
name='location_name',
field=models.CharField(default='--- 場所をお願いします --', max_length=2048, verbose_name='Location Name'),
),
migrations.AlterField(
model_name='location',
name='parammeters',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Parameters'),
),
migrations.AlterField(
model_name='location',
name='phone',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Phone'),
),
migrations.AlterField(
model_name='location',
name='photos',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Phptos'),
),
migrations.AlterField(
model_name='location',
name='portal',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Portal'),
),
migrations.AlterField(
model_name='location',
name='prefecture',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Prefecture'),
),
migrations.AlterField(
model_name='location',
name='remark',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Remarks'),
),
migrations.AlterField(
model_name='location',
name='status',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Status'),
),
migrations.AlterField(
model_name='location',
name='tags',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Tags'),
),
migrations.AlterField(
model_name='location',
name='videos',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Videos'),
),
migrations.AlterField(
model_name='location',
name='webcontents',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Web Content'),
),
]

View File

@ -0,0 +1,88 @@
# Generated by Django 3.2.9 on 2022-06-18 09:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0012_auto_20220613_1758'),
]
operations = [
migrations.AddField(
model_name='location',
name='buy_point',
field=models.IntegerField(blank=True, default=0, null=True, verbose_name='buy Point'),
),
migrations.AddField(
model_name='location',
name='checkin_point',
field=models.IntegerField(blank=True, default=10, null=True, verbose_name='Checkin Point'),
),
migrations.AddField(
model_name='location',
name='checkin_radius',
field=models.IntegerField(blank=True, default=15, null=True, verbose_name='Checkin radious'),
),
migrations.AddField(
model_name='location',
name='evaluation_value',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Evaluation value (評価)'),
),
migrations.AddField(
model_name='location',
name='hidden_location',
field=models.BooleanField(default=False, verbose_name='Is Hidden Location'),
),
migrations.AddField(
model_name='location',
name='opening_hours_fri',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours frinday (金曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_mon',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours monday (月曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_sat',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours saturday (土曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_sun',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours sunday (日曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_thu',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours thursday (木曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_tue',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours tuesday (火曜)'),
),
migrations.AddField(
model_name='location',
name='opening_hours_wed',
field=models.TimeField(blank=True, null=True, verbose_name='Opening hours wednesday (水曜)'),
),
migrations.AddField(
model_name='location',
name='shop_closed',
field=models.BooleanField(default=False, verbose_name='Shop Closed (休業)'),
),
migrations.AddField(
model_name='location',
name='shop_shutdown',
field=models.BooleanField(default=False, null=True, verbose_name='Shop Shutdown (閉業)'),
),
migrations.AlterField(
model_name='location',
name='auto_checkin',
field=models.BooleanField(default=False, verbose_name='Is AutoCheckin'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-06-18 09:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0013_auto_20220618_1847'),
]
operations = [
migrations.AlterField(
model_name='location',
name='shop_shutdown',
field=models.BooleanField(default=False, verbose_name='Shop Shutdown (閉業)'),
),
]

View File

@ -0,0 +1,57 @@
# Generated by Django 3.2.9 on 2022-06-19 07:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0014_alter_location_shop_shutdown'),
]
operations = [
migrations.RemoveField(
model_name='location',
name='checkin_radious',
),
migrations.AlterField(
model_name='location',
name='opening_hours_fri',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours frinday (金曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_mon',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours monday (月曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_sat',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours saturday (土曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_sun',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours sunday (日曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_thu',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours thursday (木曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_tue',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours tuesday (火曜)'),
),
migrations.AlterField(
model_name='location',
name='opening_hours_wed',
field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours wednesday (水曜)'),
),
migrations.AlterField(
model_name='location',
name='photos',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Photos'),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.9 on 2022-06-21 09:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0015_auto_20220619_1611'),
]
operations = [
migrations.CreateModel(
name='ShapeFileLocations',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('shapefile', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Shapelayer')),
('locid', models.IntegerField(blank=True, null=True)),
],
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-07-25 07:05
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0016_shapefilelocations'),
]
operations = [
migrations.AddField(
model_name='location',
name='cp',
field=models.IntegerField(blank=True, null=True, verbose_name='Check Point'),
),
migrations.AddField(
model_name='location',
name='subcategory',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Sub Category'),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-08-16 07:16
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0017_auto_20220725_1605'),
]
operations = [
migrations.AddField(
model_name='location',
name='sub_loc_id',
field=models.IntegerField(blank=True, null=True, verbose_name='Sub location id'),
),
migrations.AlterField(
model_name='location',
name='cp',
field=models.FloatField(blank=True, null=True, verbose_name='Check Point'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-08-16 07:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0018_auto_20220816_1616'),
]
operations = [
migrations.AlterField(
model_name='location',
name='checkin_radius',
field=models.FloatField(blank=True, default=15.0, null=True, verbose_name='Checkin radious'),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-08-16 07:27
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0019_alter_location_checkin_radius'),
]
operations = [
migrations.AlterField(
model_name='location',
name='buy_point',
field=models.FloatField(blank=True, default=0, null=True, verbose_name='buy Point'),
),
migrations.AlterField(
model_name='location',
name='checkin_point',
field=models.FloatField(blank=True, default=10, null=True, verbose_name='Checkin Point'),
),
]

View File

@ -0,0 +1,69 @@
# Generated by Django 3.2.9 on 2022-08-17 05:48
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 = [
('rog', '0020_auto_20220816_1627'),
]
operations = [
migrations.CreateModel(
name='templocation',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('location_id', models.IntegerField(blank=True, null=True, verbose_name='Location id')),
('sub_loc_id', models.IntegerField(blank=True, null=True, verbose_name='Sub location id')),
('cp', models.FloatField(blank=True, null=True, verbose_name='Check Point')),
('location_name', models.CharField(default='--- 場所をお願いします --', max_length=2048, verbose_name='Location Name')),
('category', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Category')),
('subcategory', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Sub Category')),
('zip', models.CharField(blank=True, max_length=12, null=True, verbose_name='Zip code')),
('address', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Address')),
('prefecture', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Prefecture')),
('area', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Area')),
('city', models.CharField(blank=True, max_length=2048, null=True, verbose_name='City')),
('latitude', models.FloatField(blank=True, null=True, verbose_name='Latitude')),
('longitude', models.FloatField(blank=True, null=True, verbose_name='Latitude')),
('photos', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Photos')),
('videos', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Videos')),
('webcontents', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Web Content')),
('status', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Status')),
('portal', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Portal')),
('group', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Group')),
('phone', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Phone')),
('fax', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Fax')),
('email', models.EmailField(blank=True, max_length=2048, null=True, verbose_name='Email')),
('facility', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Facility')),
('remark', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Remarks')),
('tags', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Tags')),
('event_name', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Event name')),
('event_active', models.BooleanField(default=True, verbose_name='Is Event active')),
('hidden_location', models.BooleanField(default=False, verbose_name='Is Hidden Location')),
('auto_checkin', models.BooleanField(default=False, verbose_name='Is AutoCheckin')),
('checkin_radius', models.FloatField(blank=True, default=15.0, null=True, verbose_name='Checkin radious')),
('checkin_point', models.FloatField(blank=True, default=10, null=True, verbose_name='Checkin Point')),
('buy_point', models.FloatField(blank=True, default=0, null=True, verbose_name='buy Point')),
('evaluation_value', models.CharField(blank=True, max_length=2048, null=True, verbose_name='Evaluation value (評価)')),
('shop_closed', models.BooleanField(default=False, verbose_name='Shop Closed (休業)')),
('shop_shutdown', models.BooleanField(default=False, verbose_name='Shop Shutdown (閉業)')),
('opening_hours_mon', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours monday (月曜)')),
('opening_hours_tue', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours tuesday (火曜)')),
('opening_hours_wed', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours wednesday (水曜)')),
('opening_hours_thu', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours thursday (木曜)')),
('opening_hours_fri', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours frinday (金曜)')),
('opening_hours_sat', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours saturday (土曜)')),
('opening_hours_sun', models.CharField(blank=True, max_length=512, null=True, verbose_name='Opening hours sunday (日曜)')),
('parammeters', models.CharField(blank=True, max_length=2048, null=True, 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)),
('last_updated_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='temp_location_updated_user', to=settings.AUTH_USER_MODEL)),
],
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-08-22 14:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0021_templocation'),
]
operations = [
migrations.AlterField(
model_name='shapelayers',
name='layerof',
field=models.IntegerField(choices=[(1, 'templocation'), (2, 'Location_line'), (3, 'Location_polygon')], default=1),
),
migrations.AlterField(
model_name='templocation',
name='cp',
field=models.FloatField(default=0, null=True, verbose_name='Check Point'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-08-22 14:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0022_auto_20220822_2319'),
]
operations = [
migrations.AlterField(
model_name='location',
name='cp',
field=models.FloatField(default=0, null=True, verbose_name='Check Point'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-08-29 14:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0023_alter_location_cp'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='group',
field=models.CharField(choices=[('G1', '大垣-初心者'), ('G2', '大垣-3時間'), ('G3', '大垣-5時間')], default='G1', max_length=2),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 3.2.9 on 2022-08-30 05:26
from django.db import migrations, models
import rog.models
class Migration(migrations.Migration):
dependencies = [
('rog', '0024_customuser_group'),
]
operations = [
migrations.CreateModel(
name='UserUpload',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, verbose_name='User uploads')),
('file', models.FileField(blank=True, upload_to=rog.models.get_file_path)),
('uploaded_date', models.DateField(auto_now_add=True)),
],
),
]

Binary file not shown.

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.9 on 2022-08-30 10:05
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0025_userupload'),
]
operations = [
migrations.CreateModel(
name='UserUploadUser',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('userfile', models.CharField(blank=True, max_length=2048, null=True, verbose_name='User file')),
('email', models.CharField(max_length=255, verbose_name='User Email')),
],
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-08-30 10:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0026_useruploaduser'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='group',
field=models.CharField(choices=[('G1', '大垣-初心者'), ('G2', '大垣-3時間'), ('G3', '大垣-5時間')], default='G1', max_length=255),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-08-30 10:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0027_alter_customuser_group'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='group',
field=models.CharField(choices=[('大垣-初心者', '大垣-初心者'), ('大垣-3時間', '大垣-3時間'), ('大垣-5時間', '大垣-5時間')], default='大垣-初心者', max_length=255),
),
]

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.9 on 2022-08-31 04:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0028_alter_customuser_group'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='area',
field=models.CharField(default='city', max_length=255),
preserve_default=False,
),
migrations.AddField(
model_name='customuser',
name='cities',
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 3.2.9 on 2022-08-31 05:40
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('rog', '0029_auto_20220831_1317'),
]
operations = [
migrations.RemoveField(
model_name='customuser',
name='area',
),
migrations.RemoveField(
model_name='customuser',
name='cities',
),
]

View File

@ -0,0 +1,28 @@
# Generated by Django 3.2.9 on 2022-08-31 13:44
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('rog', '0030_auto_20220831_1440'),
]
operations = [
migrations.CreateModel(
name='EventUser',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='event', to='rog.event')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='event',
name='user',
field=models.ManyToManyField(related_name='even', through='rog.EventUser', to=settings.AUTH_USER_MODEL),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-09-07 09:22
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0031_auto_20220831_2244'),
]
operations = [
migrations.AlterField(
model_name='location',
name='sub_loc_id',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Sub location id'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-09-09 13:18
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0032_alter_location_sub_loc_id'),
]
operations = [
migrations.AlterField(
model_name='templocation',
name='sub_loc_id',
field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Sub location id'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-10-06 10:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0033_alter_templocation_sub_loc_id'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='email',
field=models.CharField(max_length=255, verbose_name='user name'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-10-06 10:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0034_alter_customuser_email'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='email',
field=models.EmailField(max_length=254, unique=True, verbose_name='user name'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-10-06 11:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0035_alter_customuser_email'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='email',
field=models.CharField(max_length=255, unique=True, verbose_name='Email'),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.9 on 2022-10-06 13:42
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0036_alter_customuser_email'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='is_rogaining',
field=models.BooleanField(default=False),
),
]

View File

@ -0,0 +1,28 @@
# Generated by Django 3.2.9 on 2022-10-16 10:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0037_customuser_is_rogaining'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='event_code',
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Event Code'),
),
migrations.AddField(
model_name='customuser',
name='team_name',
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Team Name'),
),
migrations.AddField(
model_name='customuser',
name='zekken_number',
field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Zekken Number'),
),
]

View File

@ -0,0 +1,27 @@
# Generated by Django 3.2.9 on 2022-10-17 11:39
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('rog', '0038_auto_20221016_1950'),
]
operations = [
migrations.CreateModel(
name='GoalImages',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('goalimage', models.FileField(blank=True, null=True, upload_to='%y%m%d')),
('goaltime', models.DateTimeField(verbose_name='Goal time')),
('team_name', models.CharField(max_length=255, verbose_name='Team name')),
('event_code', models.CharField(max_length=255, verbose_name='event code')),
('cp_number', models.IntegerField(verbose_name='CP numner')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
],
),
]

Binary file not shown.

View File

@ -0,0 +1,32 @@
# Generated by Django 3.2.9 on 2022-11-05 10:39
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('rog', '0039_goalimages'),
]
operations = [
migrations.AlterField(
model_name='goalimages',
name='goalimage',
field=models.FileField(blank=True, null=True, upload_to='goals/%y%m%d'),
),
migrations.CreateModel(
name='CheckinImages',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('checkinimage', models.FileField(blank=True, null=True, upload_to='checkin/%y%m%d')),
('checkintime', models.DateTimeField(verbose_name='Goal time')),
('team_name', models.CharField(max_length=255, verbose_name='Team name')),
('event_code', models.CharField(max_length=255, verbose_name='event code')),
('cp_number', models.IntegerField(verbose_name='CP numner')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL)),
],
),
]

View File

@ -0,0 +1,49 @@
# Generated by Django 3.2.9 on 2023-05-26 08:24
import django.contrib.postgres.indexes
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('rog', '0040_auto_20221105_1939'),
]
operations = [
migrations.DeleteModel(
name='JpnAdminPerf',
),
migrations.DeleteModel(
name='JpnSubPerf',
),
migrations.AlterField(
model_name='location',
name='category',
field=models.CharField(blank=True, db_index=True, max_length=2048, null=True, verbose_name='Category'),
),
migrations.AlterField(
model_name='location',
name='event_active',
field=models.BooleanField(db_index=True, default=True, verbose_name='Is Event active'),
),
migrations.AlterField(
model_name='location',
name='event_name',
field=models.CharField(blank=True, db_index=True, max_length=2048, null=True, verbose_name='Event name'),
),
migrations.AlterField(
model_name='location',
name='group',
field=models.CharField(blank=True, db_index=True, max_length=2048, null=True, verbose_name='Group'),
),
migrations.AlterField(
model_name='location',
name='location_id',
field=models.IntegerField(blank=True, db_index=True, null=True, verbose_name='Location id'),
),
migrations.AddIndex(
model_name='location',
index=django.contrib.postgres.indexes.GistIndex(fields=['geom'], name='rog_locatio_geom_4793cc_gist'),
),
]

View File

Binary file not shown.

View File

@ -23,7 +23,7 @@ from django.apps import apps
from django.db import transaction from django.db import transaction
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin, BaseUserManager
from django.contrib.postgres.indexes import GistIndex from django.contrib.postgres.indexes import GistIndex
from django.db import models
from django.contrib.auth.hashers import make_password from django.contrib.auth.hashers import make_password
from django.utils import timezone from django.utils import timezone
@ -38,7 +38,7 @@ import uuid
env = environ.Env(DEBUG=(bool, False)) env = environ.Env(DEBUG=(bool, False))
environ.Env.read_env(env_file=".env") environ.Env.read_env(env_file=".env")
db = Db(dbname=env("POSTGRES_DBNAME"), user=env("POSTGRES_USER"), password=env("POSTGRES_PASS"), host=env("PG_HOST"), port=env("PG_PORT")) db = Db(dbname=env("POSTGRES_DBNAME"), user=env("POSTGRES_USER"), password=env("POSTGRES_PASS"), host="postgres-db", port=env("PG_PORT"))
def get_file_path(instance, filename): def get_file_path(instance, filename):
@ -67,99 +67,6 @@ def remove_bom_inplace(path):
fp.truncate() fp.truncate()
#========== Akira ここから #========== Akira ここから
class CustomUserManager(BaseUserManager):
def create_user(self, email, password, group, firstname, lastname, event_code, team_name, date_of_birth, **other_fields):
if not email:
raise ValueError(_("You must provide an email address"))
# ユニークなuseridを生成
userid = str(uuid.uuid4())
user = self.model(
email=self.normalize_email(email),
group=group,
firstname=firstname,
lastname=lastname,
userid=userid,
event_code=event_code,
team_name=team_name,
zekken_number=email, # 自動番号設定を考えること
is_rogaining=True,
date_of_birth=date_of_birth,
)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password, group, firstname, lastname, event_code=None, team_name=None, date_of_birth=None, **other_fields):
if event_code is None:
event_code = 'test' # replace this with some default value
if team_name is None:
team_name = 'test' # replace this with some default value
other_fields.setdefault('is_staff', True)
other_fields.setdefault('is_superuser', True)
other_fields.setdefault('is_active', True)
if other_fields.get('is_staff') is not True:
raise ValueError(_('Superuser must be assigned to staff'))
if other_fields.get('is_superuser') is not True:
raise ValueError(_('Superuser must have is_superuser set to True'))
user = self.create_user(
email=self.normalize_email(email),
group=group,
firstname=firstname,
lastname=lastname,
password=password,
)
user.is_staff = True
user.is_superuser = True
user.is_active = True
user.save(using=self._db)
return user
'''
# Providing default values for event_code and team_name if they are not provided
if event_code is None:
event_code = 'test' # replace this with some default value
if team_name is None:
team_name = 'test' # replace this with some default value
other_fields.setdefault('is_staff', True)
other_fields.setdefault('is_superuser', True)
other_fields.setdefault('is_active', True)
if other_fields.get('is_staff') is not True:
raise ValueError(_('Superuser must be assigned to staff'))
if other_fields.get('is_superuser') is not True:
raise ValueError(_('Superuser must have is_superuser set to True'))
return self.create_user(email, password, group, event_code, team_name, **other_fields)
'''
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
userid = models.CharField(max_length=255, unique=True)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
event_code = models.CharField(max_length=255, blank=True, null=True)
team_name = models.CharField(max_length=255, blank=True, null=True)
zekken_number = models.CharField(max_length=255, blank=True, null=True)
objects = CustomUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['firstname', 'lastname', 'userid', 'date_of_birth']
def __str__(self):
return self.email
class TempUser(models.Model): class TempUser(models.Model):
email = models.EmailField(unique=True) email = models.EmailField(unique=True)
@ -184,8 +91,6 @@ class TempUser(models.Model):
def is_valid(self): def is_valid(self):
return timezone.now() <= self.expires_at return timezone.now() <= self.expires_at
class Team(models.Model): class Team(models.Model):
zekken_number = models.CharField(max_length=255, primary_key=True) zekken_number = models.CharField(max_length=255, primary_key=True)
team_name = models.CharField(max_length=255) team_name = models.CharField(max_length=255)
@ -223,6 +128,61 @@ class Entry(models.Model):
#============= Akira ここまで #============= Akira ここまで
class CustomUserManager(BaseUserManager):
def create_user(self, email, firstname, lastname, date_of_birth, password=None):
if not email:
raise ValueError(_("You must provide an email address"))
# ユニークなuseridを生成
userid = str(uuid.uuid4())
user = self.model(
email=self.normalize_email(email),
firstname=firstname,
lastname=lastname,
userid=userid,
date_of_birth=date_of_birth,
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, firstname, lastname, date_of_birth, password):
user = self.create_user(
email,
firstname=firstname,
lastname=lastname,
date_of_birth=date_of_birth,
password=password,
)
user.is_staff = True
user.is_superuser = True
user.is_active = True
user.save(using=self._db)
return user
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
userid = models.CharField(max_length=255, unique=True)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
event_code = models.CharField(max_length=255, blank=True, null=True)
team_name = models.CharField(max_length=255, blank=True, null=True)
zekken_number = models.CharField(max_length=255, blank=True, null=True)
objects = CustomUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['firstname', 'lastname', 'userid', 'date_of_birth']
def __str__(self):
return self.email
class JpnAdminMainPerf(models.Model): class JpnAdminMainPerf(models.Model):
geom = models.MultiPolygonField(blank=True, null=True) geom = models.MultiPolygonField(blank=True, null=True)
@ -242,7 +202,6 @@ class JpnAdminMainPerf(models.Model):
] ]
# class JpnAdminPerf(models.Model): # class JpnAdminPerf(models.Model):
# geom = models.MultiLineStringField(blank=True, null=True) # geom = models.MultiLineStringField(blank=True, null=True)
# et_id = models.IntegerField(blank=True, null=True) # et_id = models.IntegerField(blank=True, null=True)
@ -328,6 +287,26 @@ class UserUploadUser(models.Model):
email=models.CharField(_('User Email'), max_length=255) email=models.CharField(_('User Email'), max_length=255)
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
userid = models.CharField(max_length=255, unique=True, editable=False)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
event_code = models.CharField(max_length=255, blank=True, null=True)
team_name = models.CharField(max_length=255, blank=True, null=True)
zekken_number = models.CharField(max_length=255, blank=True, null=True)
objects = CustomUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['firstname', 'lastname', 'date_of_birth']
def __str__(self):
return self.email
class CustomUser_old(AbstractBaseUser, PermissionsMixin): class CustomUser_old(AbstractBaseUser, PermissionsMixin):
class Groups(models.TextChoices): class Groups(models.TextChoices):
GB1 = '大垣-初心者', '大垣-初心者' GB1 = '大垣-初心者', '大垣-初心者'

View File

@ -1,7 +1,7 @@
from rest_framework import serializers from rest_framework import serializers
from rest_framework_gis.serializers import GeoFeatureModelSerializer from rest_framework_gis.serializers import GeoFeatureModelSerializer
from sqlalchemy.sql.functions import mode from sqlalchemy.sql.functions import mode
from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, Useractions, GifuAreas, RogUser, UserTracks, GoalImages, CheckinImages,CustomUser, Team, Member, Entry from .models import Location, Location_line, Location_polygon, JpnAdminMainPerf, Useractions, GifuAreas, RogUser, UserTracks, GoalImages, CheckinImages,CustomUser,Team, Member, Entry
from drf_extra_fields.fields import Base64ImageField from drf_extra_fields.fields import Base64ImageField
from django.contrib.auth.hashers import make_password from django.contrib.auth.hashers import make_password
@ -12,6 +12,25 @@ from django.contrib.auth import authenticate
from .models import TestModel from .models import TestModel
from .models import TempUser from .models import TempUser
class RegistrationSerializer(serializers.ModelSerializer):
password2 = serializers.CharField(style={"input_type": "password"}, write_only=True)
class Meta:
model = TempUser
fields = ['email', 'is_rogaining', 'zekken_number', 'event_code', 'team_name', 'group', 'password', 'password2']
extra_kwargs = {
'password': {'write_only': True}
}
def validate(self, attrs):
if attrs['password'] != attrs['password2']:
raise serializers.ValidationError({"password": "Password fields didn't match."})
return attrs
def create(self, validated_data):
validated_data.pop('password2')
return TempUser.objects.create(**validated_data)
class LocationCatSerializer(serializers.ModelSerializer): class LocationCatSerializer(serializers.ModelSerializer):
class Meta: class Meta:
@ -88,7 +107,6 @@ class CustomUserSerializer(serializers.ModelSerializer):
#============= Akira ここまで #============= Akira ここまで
class GifuAreaSerializer(serializers.ModelSerializer): class GifuAreaSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model= GifuAreas model= GifuAreas

View File

@ -2,7 +2,6 @@ from sys import prefix
from rest_framework import urlpatterns from rest_framework import urlpatterns
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, LocationsInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination, CustomAreaLocations, GetAllGifuAreas, CustomAreaNames, userDetials, UserTracksViewSet, CatByCity, ChangePasswordView, GoalImageViewSet, CheckinImageViewSet, ExtentForLocations, DeleteAccount, PrivacyView, RegistrationView, VerifyEmailView, TeamViewSet, MemberViewSet, EntryViewSet from .views import LocationViewSet, Location_lineViewSet, Location_polygonViewSet, Jpn_Main_PerfViewSet, LocationsInPerf, ExtentForSubPerf, SubPerfInMainPerf, ExtentForMainPerf, LocationsInSubPerf, CatView, RegistrationAPI, LoginAPI, UserAPI, UserActionViewset, UserMakeActionViewset, UserDestinations, UpdateOrder, LocationInBound, DeleteDestination, CustomAreaLocations, GetAllGifuAreas, CustomAreaNames, userDetials, UserTracksViewSet, CatByCity, ChangePasswordView, GoalImageViewSet, CheckinImageViewSet, ExtentForLocations, DeleteAccount, PrivacyView, RegistrationView, VerifyEmailView, TeamViewSet, MemberViewSet, EntryViewSet
from django.urls import path, include from django.urls import path, include
from knox import views as knox_views from knox import views as knox_views

View File

@ -3,7 +3,6 @@ from django.core.serializers import serialize
from .models import GoalImages, Location, Location_line, Location_polygon, JpnAdminMainPerf, Useractions, GifuAreas, RogUser, CustomUser, UserTracks, GoalImages, CheckinImages, TempUser from .models import GoalImages, Location, Location_line, Location_polygon, JpnAdminMainPerf, Useractions, GifuAreas, RogUser, CustomUser, UserTracks, GoalImages, CheckinImages, TempUser
from rest_framework import viewsets,status from rest_framework import viewsets,status
from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer, ChangePasswordSerializer, GolaImageSerializer, CheckinImageSerializer, RegistrationSerializer, Team, Member, Entry, CustomUserSerializer from .serializers import LocationSerializer, Location_lineSerializer, Location_polygonSerializer, JPN_main_perfSerializer, LocationCatSerializer, CreateUserSerializer, UserSerializer, LoginUserSerializer, UseractionsSerializer, UserDestinationSerializer, GifuAreaSerializer, LocationEventNameSerializer, RogUserSerializer, UserTracksSerializer, ChangePasswordSerializer, GolaImageSerializer, CheckinImageSerializer, RegistrationSerializer, Team, Member, Entry, CustomUserSerializer
from knox.models import AuthToken from knox.models import AuthToken
from rest_framework import viewsets, generics, status from rest_framework import viewsets, generics, status
@ -55,6 +54,8 @@ class Jpn_Main_PerfViewSet(viewsets.ModelViewSet):
serializer_class=JPN_main_perfSerializer serializer_class=JPN_main_perfSerializer
filter_fields = ["adm1_ja"] filter_fields = ["adm1_ja"]
#===== AKira ここから #===== AKira ここから
class CustomUserViewSet(viewsets.ModelViewSet): class CustomUserViewSet(viewsets.ModelViewSet):
@ -75,10 +76,10 @@ class TeamViewSet(viewsets.ModelViewSet):
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) self.perform_create(serializer)
headers = self.get_success_headers(serializer.data) headers = self.get_success_headers(serializer.data)
# チーム登録後にエントリー登録と外部APIコールを行う # チーム登録後にエントリー登録と外部APIコールを行う
self.register_entry_and_call_external_api(serializer.data) self.register_entry_and_call_external_api(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def register_entry_and_call_external_api(self, team_data): def register_entry_and_call_external_api(self, team_data):
@ -91,7 +92,7 @@ class TeamViewSet(viewsets.ModelViewSet):
entry_serializer = EntrySerializer(data=entry_data) entry_serializer = EntrySerializer(data=entry_data)
if entry_serializer.is_valid(): if entry_serializer.is_valid():
entry_serializer.save() entry_serializer.save()
# 外部APIへのコール # 外部APIへのコール
self.call_external_api(team_data, entry_data) self.call_external_api(team_data, entry_data)
else: else:
@ -100,7 +101,7 @@ class TeamViewSet(viewsets.ModelViewSet):
def call_external_api(self, team_data, entry_data): def call_external_api(self, team_data, entry_data):
external_api_url = "https://rogaining.sumasen.net/gifuroge/register_team" external_api_url = "https://rogaining.sumasen.net/gifuroge/register_team"
payload = { payload = {
'zekken_number': team_data['zekken_number'], 'zekken_number': team_data['zekken_number'],
'event_code': entry_data['event_code'], 'event_code': entry_data['event_code'],
@ -108,11 +109,11 @@ class TeamViewSet(viewsets.ModelViewSet):
'class_name': team_data.get('class_name', 'Default'), # class_nameがない場合はデフォルト値を設定 'class_name': team_data.get('class_name', 'Default'), # class_nameがない場合はデフォルト値を設定
'password': team_data['password'] 'password': team_data['password']
} }
try: try:
response = requests.post(external_api_url, data=payload) response = requests.post(external_api_url, data=payload)
response.raise_for_status() # エラーレスポンスの場合は例外を発生させる response.raise_for_status() # エラーレスポンスの場合は例外を発生させる
# レスポンスの処理(必要に応じて) # レスポンスの処理(必要に応じて)
print(f"External API response: {response.json()}") print(f"External API response: {response.json()}")
except requests.RequestException as e: except requests.RequestException as e:
@ -163,7 +164,6 @@ class EntryViewSet(viewsets.ModelViewSet):
#===== AKira ここまで #===== AKira ここまで
class UserTracksViewSet(viewsets.ModelViewSet): class UserTracksViewSet(viewsets.ModelViewSet):
queryset = UserTracks.objects.all() queryset = UserTracks.objects.all()
serializer_class = UserTracksSerializer serializer_class = UserTracksSerializer
@ -252,9 +252,10 @@ def LocationInBound(request):
if(cat): if(cat):
if is_rog: if is_rog:
if grp: if grp:
locs = Location.objects.filter(~Q(cp=0), geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp) #locs = Location.objects.filter(~Q(cp=0), geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp)
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp)
else: 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: else:
if grp: if grp:
locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp, location_name__contains='観光') locs = Location.objects.filter(geom__within=pl, category=cat, event_name__isnull=True, group__contains=grp, location_name__contains='観光')
@ -263,9 +264,9 @@ def LocationInBound(request):
else: else:
if is_rog: if is_rog:
if grp: 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: 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)
else: else:
if grp: if grp:
locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, group__contains=grp, location_name__contains='観光') locs = Location.objects.filter(geom__within=pl, event_name__isnull=True, group__contains=grp, location_name__contains='観光')
@ -382,7 +383,6 @@ class RegistrationAPI(generics.GenericAPIView):
"token": AuthToken.objects.create(user)[1] "token": AuthToken.objects.create(user)[1]
}) })
class LoginAPI(generics.GenericAPIView): class LoginAPI(generics.GenericAPIView):
serializer_class = LoginUserSerializer serializer_class = LoginUserSerializer
@ -447,15 +447,6 @@ class CheckinImageViewSet(viewsets.ModelViewSet):
# else: # else:
# queryset = Incident.objects.filter(is_approved=True) # queryset = Incident.objects.filter(is_approved=True)
return queryset return queryset
class RetrieveUserView(generics.RetrieveAPIView):
queryset = CustomUser.objects.all()
serializer_class = UserSerializer
permission_classes = [IsAuthenticated]
def get_object(self):
return self.request.user
def userDetials(request): def userDetials(request):
@ -710,3 +701,6 @@ class VerifyEmailView(APIView):