From 3d195973fcfb406a29a79b7cf847d4a2f8dde403 Mon Sep 17 00:00:00 2001 From: Akira Miyata Date: Sun, 4 Aug 2024 18:56:11 +0000 Subject: [PATCH] Stop tracking migrations and release 4.8.9 --- .gitignore | 6 +- rog/admin.py | 4 +- rog/migrations/0001_initial.py | 351 ------------- rog/migrations/0002_auto_20220511_2017.py | 23 - .../0003_alter_useractions_order.py | 18 - rog/migrations/0004_auto_20220606_0023.py | 55 --- rog/migrations/0005_auto_20220606_1523.py | 23 - rog/migrations/0006_location_paid.py | 18 - rog/migrations/0007_auto_20220607_2207.py | 22 - .../0008_alter_roguser_parammeters.py | 18 - rog/migrations/0009_remove_roguser_email.py | 17 - .../0010_useractions_checkinimage.py | 18 - rog/migrations/0011_usertracks.py | 25 - rog/migrations/0012_auto_20220613_1758.py | 113 ----- rog/migrations/0013_auto_20220618_1847.py | 88 ---- .../0014_alter_location_shop_shutdown.py | 18 - rog/migrations/0015_auto_20220619_1611.py | 57 --- rog/migrations/0016_shapefilelocations.py | 21 - rog/migrations/0017_auto_20220725_1605.py | 23 - rog/migrations/0018_auto_20220816_1616.py | 23 - .../0019_alter_location_checkin_radius.py | 18 - rog/migrations/0020_auto_20220816_1627.py | 23 - rog/migrations/0021_templocation.py | 69 --- rog/migrations/0022_auto_20220822_2319.py | 23 - rog/migrations/0023_alter_location_cp.py | 18 - rog/migrations/0024_customuser_group.py | 18 - rog/migrations/0025_userupload.py | 23 - rog/migrations/0026_useruploaduser.py | 21 - rog/migrations/0027_alter_customuser_group.py | 18 - rog/migrations/0028_alter_customuser_group.py | 18 - rog/migrations/0029_auto_20220831_1317.py | 24 - rog/migrations/0030_auto_20220831_1440.py | 21 - rog/migrations/0031_auto_20220831_2244.py | 28 -- .../0032_alter_location_sub_loc_id.py | 18 - rog/migrations/0033_auto_20240724_1431.py | 274 ---------- rog/migrations/0034_auto_20240724_1522.py | 34 -- rog/migrations/0035_auto_20240724_1529.py | 29 -- rog/migrations/0036_alter_team_category.py | 20 - rog/migrations/0037_alter_member_team.py | 19 - rog/migrations/0038_alter_entry_category.py | 19 - rog/migrations/0039_auto_20240726_1508.py | 29 -- rog/migrations/0040_auto_20240801_1729.py | 33 -- rog/migrations/__init__.py | 0 rog/models.py | 15 +- rog/serializers.py | 25 +- rog/urls.py | 3 +- rog/views.py | 467 +++++++++++------- 47 files changed, 313 insertions(+), 1935 deletions(-) delete mode 100644 rog/migrations/0001_initial.py delete mode 100644 rog/migrations/0002_auto_20220511_2017.py delete mode 100644 rog/migrations/0003_alter_useractions_order.py delete mode 100644 rog/migrations/0004_auto_20220606_0023.py delete mode 100644 rog/migrations/0005_auto_20220606_1523.py delete mode 100644 rog/migrations/0006_location_paid.py delete mode 100644 rog/migrations/0007_auto_20220607_2207.py delete mode 100644 rog/migrations/0008_alter_roguser_parammeters.py delete mode 100644 rog/migrations/0009_remove_roguser_email.py delete mode 100644 rog/migrations/0010_useractions_checkinimage.py delete mode 100644 rog/migrations/0011_usertracks.py delete mode 100644 rog/migrations/0012_auto_20220613_1758.py delete mode 100644 rog/migrations/0013_auto_20220618_1847.py delete mode 100644 rog/migrations/0014_alter_location_shop_shutdown.py delete mode 100644 rog/migrations/0015_auto_20220619_1611.py delete mode 100644 rog/migrations/0016_shapefilelocations.py delete mode 100644 rog/migrations/0017_auto_20220725_1605.py delete mode 100644 rog/migrations/0018_auto_20220816_1616.py delete mode 100644 rog/migrations/0019_alter_location_checkin_radius.py delete mode 100644 rog/migrations/0020_auto_20220816_1627.py delete mode 100644 rog/migrations/0021_templocation.py delete mode 100644 rog/migrations/0022_auto_20220822_2319.py delete mode 100644 rog/migrations/0023_alter_location_cp.py delete mode 100644 rog/migrations/0024_customuser_group.py delete mode 100644 rog/migrations/0025_userupload.py delete mode 100644 rog/migrations/0026_useruploaduser.py delete mode 100644 rog/migrations/0027_alter_customuser_group.py delete mode 100644 rog/migrations/0028_alter_customuser_group.py delete mode 100644 rog/migrations/0029_auto_20220831_1317.py delete mode 100644 rog/migrations/0030_auto_20220831_1440.py delete mode 100644 rog/migrations/0031_auto_20220831_2244.py delete mode 100644 rog/migrations/0032_alter_location_sub_loc_id.py delete mode 100644 rog/migrations/0033_auto_20240724_1431.py delete mode 100644 rog/migrations/0034_auto_20240724_1522.py delete mode 100644 rog/migrations/0035_auto_20240724_1529.py delete mode 100644 rog/migrations/0036_alter_team_category.py delete mode 100644 rog/migrations/0037_alter_member_team.py delete mode 100644 rog/migrations/0038_alter_entry_category.py delete mode 100644 rog/migrations/0039_auto_20240726_1508.py delete mode 100644 rog/migrations/0040_auto_20240801_1729.py delete mode 100644 rog/migrations/__init__.py diff --git a/.gitignore b/.gitignore index 7f7703f..e3f5c41 100644 --- a/.gitignore +++ b/.gitignore @@ -157,6 +157,10 @@ dmypy.json # Cython debug symbols cython_debug/ +# migration files +rog/migrations/ + + # PyCharm # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore @@ -165,4 +169,4 @@ cython_debug/ #.idea/ # End of https://www.toptal.com/developers/gitignore/api/django -.DS_Store \ No newline at end of file +.DS_Store diff --git a/rog/admin.py b/rog/admin.py index 4db2589..bcfb85b 100644 --- a/rog/admin.py +++ b/rog/admin.py @@ -203,8 +203,8 @@ class NewEvent2Admin(admin.ModelAdmin): @admin.register(Team) class TeamAdmin(admin.ModelAdmin): - list_display = ['zekken_number', 'team_name', 'owner'] - search_fields = ['zekken_number', 'team_name', 'owner__email'] + list_display = ['team_name', 'owner'] + search_fields = ['team_name', 'owner__email'] @admin.register(NewCategory) class NewCategoryAdmin(admin.ModelAdmin): diff --git a/rog/migrations/0001_initial.py b/rog/migrations/0001_initial.py deleted file mode 100644 index d1ce57f..0000000 --- a/rog/migrations/0001_initial.py +++ /dev/null @@ -1,351 +0,0 @@ -# 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)), - ], - ), - ] diff --git a/rog/migrations/0002_auto_20220511_2017.py b/rog/migrations/0002_auto_20220511_2017.py deleted file mode 100644 index 73d7f4a..0000000 --- a/rog/migrations/0002_auto_20220511_2017.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0003_alter_useractions_order.py b/rog/migrations/0003_alter_useractions_order.py deleted file mode 100644 index 9b6cb51..0000000 --- a/rog/migrations/0003_alter_useractions_order.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0004_auto_20220606_0023.py b/rog/migrations/0004_auto_20220606_0023.py deleted file mode 100644 index c0ffdaf..0000000 --- a/rog/migrations/0004_auto_20220606_0023.py +++ /dev/null @@ -1,55 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0005_auto_20220606_1523.py b/rog/migrations/0005_auto_20220606_1523.py deleted file mode 100644 index b3cbd47..0000000 --- a/rog/migrations/0005_auto_20220606_1523.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.9 on 2022-06-06 06:23 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0004_auto_20220606_0023'), - ] - - operations = [ - migrations.AlterField( - model_name='location', - name='event_active', - field=models.BooleanField(default=True, verbose_name='Is Event active'), - ), - migrations.AlterField( - model_name='location', - name='event_name', - field=models.CharField(blank=True, max_length=512, null=True, verbose_name='Event name'), - ), - ] diff --git a/rog/migrations/0006_location_paid.py b/rog/migrations/0006_location_paid.py deleted file mode 100644 index b215816..0000000 --- a/rog/migrations/0006_location_paid.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0007_auto_20220607_2207.py b/rog/migrations/0007_auto_20220607_2207.py deleted file mode 100644 index 49d00ac..0000000 --- a/rog/migrations/0007_auto_20220607_2207.py +++ /dev/null @@ -1,22 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0008_alter_roguser_parammeters.py b/rog/migrations/0008_alter_roguser_parammeters.py deleted file mode 100644 index 215ad65..0000000 --- a/rog/migrations/0008_alter_roguser_parammeters.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0009_remove_roguser_email.py b/rog/migrations/0009_remove_roguser_email.py deleted file mode 100644 index 9f46c5b..0000000 --- a/rog/migrations/0009_remove_roguser_email.py +++ /dev/null @@ -1,17 +0,0 @@ -# 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', - ), - ] diff --git a/rog/migrations/0010_useractions_checkinimage.py b/rog/migrations/0010_useractions_checkinimage.py deleted file mode 100644 index 04c785b..0000000 --- a/rog/migrations/0010_useractions_checkinimage.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0011_usertracks.py b/rog/migrations/0011_usertracks.py deleted file mode 100644 index bfcffe3..0000000 --- a/rog/migrations/0011_usertracks.py +++ /dev/null @@ -1,25 +0,0 @@ -# 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)), - ], - ), - ] diff --git a/rog/migrations/0012_auto_20220613_1758.py b/rog/migrations/0012_auto_20220613_1758.py deleted file mode 100644 index 24174d7..0000000 --- a/rog/migrations/0012_auto_20220613_1758.py +++ /dev/null @@ -1,113 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0013_auto_20220618_1847.py b/rog/migrations/0013_auto_20220618_1847.py deleted file mode 100644 index e9aed30..0000000 --- a/rog/migrations/0013_auto_20220618_1847.py +++ /dev/null @@ -1,88 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0014_alter_location_shop_shutdown.py b/rog/migrations/0014_alter_location_shop_shutdown.py deleted file mode 100644 index 1920687..0000000 --- a/rog/migrations/0014_alter_location_shop_shutdown.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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 (閉業)'), - ), - ] diff --git a/rog/migrations/0015_auto_20220619_1611.py b/rog/migrations/0015_auto_20220619_1611.py deleted file mode 100644 index 06cc9e3..0000000 --- a/rog/migrations/0015_auto_20220619_1611.py +++ /dev/null @@ -1,57 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0016_shapefilelocations.py b/rog/migrations/0016_shapefilelocations.py deleted file mode 100644 index 74d131f..0000000 --- a/rog/migrations/0016_shapefilelocations.py +++ /dev/null @@ -1,21 +0,0 @@ -# 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)), - ], - ), - ] diff --git a/rog/migrations/0017_auto_20220725_1605.py b/rog/migrations/0017_auto_20220725_1605.py deleted file mode 100644 index a20debc..0000000 --- a/rog/migrations/0017_auto_20220725_1605.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0018_auto_20220816_1616.py b/rog/migrations/0018_auto_20220816_1616.py deleted file mode 100644 index 9df9911..0000000 --- a/rog/migrations/0018_auto_20220816_1616.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0019_alter_location_checkin_radius.py b/rog/migrations/0019_alter_location_checkin_radius.py deleted file mode 100644 index e5f48ae..0000000 --- a/rog/migrations/0019_alter_location_checkin_radius.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0020_auto_20220816_1627.py b/rog/migrations/0020_auto_20220816_1627.py deleted file mode 100644 index e8e4353..0000000 --- a/rog/migrations/0020_auto_20220816_1627.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0021_templocation.py b/rog/migrations/0021_templocation.py deleted file mode 100644 index c6d2bcc..0000000 --- a/rog/migrations/0021_templocation.py +++ /dev/null @@ -1,69 +0,0 @@ -# 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)), - ], - ), - ] diff --git a/rog/migrations/0022_auto_20220822_2319.py b/rog/migrations/0022_auto_20220822_2319.py deleted file mode 100644 index c261dbc..0000000 --- a/rog/migrations/0022_auto_20220822_2319.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0023_alter_location_cp.py b/rog/migrations/0023_alter_location_cp.py deleted file mode 100644 index fb24c06..0000000 --- a/rog/migrations/0023_alter_location_cp.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0024_customuser_group.py b/rog/migrations/0024_customuser_group.py deleted file mode 100644 index 7a4c981..0000000 --- a/rog/migrations/0024_customuser_group.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0025_userupload.py b/rog/migrations/0025_userupload.py deleted file mode 100644 index 00d4b27..0000000 --- a/rog/migrations/0025_userupload.py +++ /dev/null @@ -1,23 +0,0 @@ -# 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)), - ], - ), - ] diff --git a/rog/migrations/0026_useruploaduser.py b/rog/migrations/0026_useruploaduser.py deleted file mode 100644 index 688040b..0000000 --- a/rog/migrations/0026_useruploaduser.py +++ /dev/null @@ -1,21 +0,0 @@ -# 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')), - ], - ), - ] diff --git a/rog/migrations/0027_alter_customuser_group.py b/rog/migrations/0027_alter_customuser_group.py deleted file mode 100644 index e29c708..0000000 --- a/rog/migrations/0027_alter_customuser_group.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0028_alter_customuser_group.py b/rog/migrations/0028_alter_customuser_group.py deleted file mode 100644 index cd19996..0000000 --- a/rog/migrations/0028_alter_customuser_group.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0029_auto_20220831_1317.py b/rog/migrations/0029_auto_20220831_1317.py deleted file mode 100644 index 73172d8..0000000 --- a/rog/migrations/0029_auto_20220831_1317.py +++ /dev/null @@ -1,24 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0030_auto_20220831_1440.py b/rog/migrations/0030_auto_20220831_1440.py deleted file mode 100644 index 1a0ce94..0000000 --- a/rog/migrations/0030_auto_20220831_1440.py +++ /dev/null @@ -1,21 +0,0 @@ -# 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', - ), - ] diff --git a/rog/migrations/0031_auto_20220831_2244.py b/rog/migrations/0031_auto_20220831_2244.py deleted file mode 100644 index 703eec4..0000000 --- a/rog/migrations/0031_auto_20220831_2244.py +++ /dev/null @@ -1,28 +0,0 @@ -# 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), - ), - ] diff --git a/rog/migrations/0032_alter_location_sub_loc_id.py b/rog/migrations/0032_alter_location_sub_loc_id.py deleted file mode 100644 index 765fe3d..0000000 --- a/rog/migrations/0032_alter_location_sub_loc_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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'), - ), - ] diff --git a/rog/migrations/0033_auto_20240724_1431.py b/rog/migrations/0033_auto_20240724_1431.py deleted file mode 100644 index db652cd..0000000 --- a/rog/migrations/0033_auto_20240724_1431.py +++ /dev/null @@ -1,274 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-24 05:31 - -import datetime -from django.conf import settings -import django.contrib.postgres.indexes -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone -import uuid - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0032_alter_location_sub_loc_id'), - ] - - operations = [ - migrations.CreateModel( - name='Category', - fields=[ - ('category_name', models.CharField(max_length=255, primary_key=True, serialize=False)), - ('category_number', models.IntegerField(unique=True)), - ('duration', models.DurationField(default=datetime.timedelta(seconds=18000))), - ('num_of_member', models.IntegerField(default=1)), - ('family', models.BooleanField(default=False)), - ('female', models.BooleanField(default=False)), - ], - ), - 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')), - ], - ), - migrations.CreateModel( - name='Entry', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateTimeField()), - ], - ), - migrations.CreateModel( - name='EntryMember', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('is_temporary', models.BooleanField(default=False)), - ], - ), - 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='goals/%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')), - ], - ), - migrations.CreateModel( - name='Member', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('is_temporary', models.BooleanField(default=False)), - ], - ), - migrations.CreateModel( - name='NewEvent', - fields=[ - ('event_name', models.CharField(max_length=255, primary_key=True, serialize=False)), - ('start_datetime', models.DateTimeField(default=django.utils.timezone.now)), - ('end_datetime', models.DateTimeField()), - ], - ), - migrations.CreateModel( - name='Team', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('zekken_number', models.CharField(max_length=255, unique=True)), - ('team_name', models.CharField(max_length=255)), - ], - ), - migrations.CreateModel( - name='TempUser', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('email', models.EmailField(max_length=254, unique=True)), - ('password', models.CharField(max_length=128)), - ('is_rogaining', models.BooleanField(default=False)), - ('zekken_number', models.CharField(blank=True, max_length=255, null=True)), - ('event_code', models.CharField(blank=True, max_length=255, null=True)), - ('team_name', models.CharField(blank=True, max_length=255, null=True)), - ('group', models.CharField(max_length=255)), - ('firstname', models.CharField(blank=True, max_length=255, null=True)), - ('lastname', models.CharField(blank=True, max_length=255, null=True)), - ('date_of_birth', models.DateField(blank=True, null=True)), - ('female', models.BooleanField(default=False)), - ('verification_code', models.UUIDField(default=uuid.uuid4, editable=False)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('expires_at', models.DateTimeField()), - ], - ), - migrations.DeleteModel( - name='JpnAdminPerf', - ), - migrations.DeleteModel( - name='JpnSubPerf', - ), - migrations.AddField( - model_name='customuser', - name='date_of_birth', - field=models.DateField(blank=True, null=True), - ), - 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='female', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='customuser', - name='firstname', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='customuser', - name='is_rogaining', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='customuser', - name='lastname', - field=models.CharField(blank=True, max_length=255, null=True), - ), - 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'), - ), - migrations.AlterField( - model_name='customuser', - name='email', - field=models.CharField(max_length=255, unique=True, verbose_name='Email'), - ), - 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.AlterField( - model_name='templocation', - name='sub_loc_id', - field=models.CharField(blank=True, max_length=2048, null=True, verbose_name='Sub location id'), - ), - migrations.AddIndex( - model_name='location', - index=django.contrib.postgres.indexes.GistIndex(fields=['geom'], name='rog_locatio_geom_4793cc_gist'), - ), - migrations.AddField( - model_name='team', - name='category', - field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='rog.category'), - ), - migrations.AddField( - model_name='team', - name='owner', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='owned_teams', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='member', - name='team', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.team'), - ), - migrations.AddField( - model_name='member', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='goalimages', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='entrymember', - name='entry', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.entry'), - ), - migrations.AddField( - model_name='entrymember', - name='member', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.member'), - ), - migrations.AddField( - model_name='entry', - name='category', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.category'), - ), - migrations.AddField( - model_name='entry', - name='event', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.newevent'), - ), - migrations.AddField( - model_name='entry', - name='owner', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='entry', - name='team', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.team'), - ), - migrations.AddField( - model_name='checkinimages', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL), - ), - migrations.AlterUniqueTogether( - name='category', - unique_together={('category_name', 'category_number')}, - ), - migrations.AlterUniqueTogether( - name='team', - unique_together={('zekken_number', 'category')}, - ), - migrations.AlterUniqueTogether( - name='member', - unique_together={('team', 'user')}, - ), - migrations.AlterUniqueTogether( - name='entrymember', - unique_together={('entry', 'member')}, - ), - migrations.AlterUniqueTogether( - name='entry', - unique_together={('team', 'event', 'date', 'owner')}, - ), - ] diff --git a/rog/migrations/0034_auto_20240724_1522.py b/rog/migrations/0034_auto_20240724_1522.py deleted file mode 100644 index e822147..0000000 --- a/rog/migrations/0034_auto_20240724_1522.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-24 06:22 - -import datetime -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0033_auto_20240724_1431'), - ] - - operations = [ - migrations.AlterField( - model_name='category', - name='category_number', - field=models.IntegerField(default=0), - ), - migrations.CreateModel( - name='NewCategory', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('category_name', models.CharField(max_length=255, unique=True)), - ('category_number', models.IntegerField(default=0)), - ('duration', models.DurationField(default=datetime.timedelta(seconds=18000))), - ('num_of_member', models.IntegerField(default=1)), - ('family', models.BooleanField(default=False)), - ('female', models.BooleanField(default=False)), - ], - options={ - 'unique_together': {('category_name', 'category_number')}, - }, - ), - ] diff --git a/rog/migrations/0035_auto_20240724_1529.py b/rog/migrations/0035_auto_20240724_1529.py deleted file mode 100644 index b975643..0000000 --- a/rog/migrations/0035_auto_20240724_1529.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-24 06:29 - -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0034_auto_20240724_1522'), - ] - - operations = [ - migrations.CreateModel( - name='NewEvent2', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('event_name', models.CharField(max_length=255, unique=True)), - ('start_datetime', models.DateTimeField(default=django.utils.timezone.now)), - ('end_datetime', models.DateTimeField()), - ], - ), - migrations.AlterField( - model_name='entry', - name='event', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.newevent2'), - ), - ] diff --git a/rog/migrations/0036_alter_team_category.py b/rog/migrations/0036_alter_team_category.py deleted file mode 100644 index 1aa7076..0000000 --- a/rog/migrations/0036_alter_team_category.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-24 06:58 - -from django.db import migrations, models -import django.db.models.deletion -import rog.models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0035_auto_20240724_1529'), - ] - - operations = [ - migrations.AlterField( - model_name='team', - name='category', - field=models.ForeignKey(default=rog.models.get_default_category, on_delete=django.db.models.deletion.SET_DEFAULT, to='rog.newcategory'), - ), - ] diff --git a/rog/migrations/0037_alter_member_team.py b/rog/migrations/0037_alter_member_team.py deleted file mode 100644 index 92f8797..0000000 --- a/rog/migrations/0037_alter_member_team.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-24 15:20 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0036_alter_team_category'), - ] - - operations = [ - migrations.AlterField( - model_name='member', - name='team', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='members', to='rog.team'), - ), - ] diff --git a/rog/migrations/0038_alter_entry_category.py b/rog/migrations/0038_alter_entry_category.py deleted file mode 100644 index f0ea1b3..0000000 --- a/rog/migrations/0038_alter_entry_category.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-25 01:21 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0037_alter_member_team'), - ] - - operations = [ - migrations.AlterField( - model_name='entry', - name='category', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rog.newcategory'), - ), - ] diff --git a/rog/migrations/0039_auto_20240726_1508.py b/rog/migrations/0039_auto_20240726_1508.py deleted file mode 100644 index 828a97b..0000000 --- a/rog/migrations/0039_auto_20240726_1508.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.9 on 2024-07-26 06:08 - -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0038_alter_entry_category'), - ] - - operations = [ - migrations.AddField( - model_name='customuser', - name='date_joined', - field=models.DateTimeField(default=django.utils.timezone.now), - ), - migrations.AlterField( - model_name='customuser', - name='email', - field=models.EmailField(max_length=254, unique=True), - ), - migrations.AlterField( - model_name='customuser', - name='group', - field=models.CharField(blank=True, max_length=255), - ), - ] diff --git a/rog/migrations/0040_auto_20240801_1729.py b/rog/migrations/0040_auto_20240801_1729.py deleted file mode 100644 index 88db307..0000000 --- a/rog/migrations/0040_auto_20240801_1729.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 3.2.9 on 2024-08-01 08:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('rog', '0039_auto_20240726_1508'), - ] - - operations = [ - migrations.AddField( - model_name='member', - name='date_of_birth', - field=models.DateField(blank=True, null=True), - ), - migrations.AddField( - model_name='member', - name='female', - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name='member', - name='firstname', - field=models.CharField(blank=True, max_length=255, null=True), - ), - migrations.AddField( - model_name='member', - name='lastname', - field=models.CharField(blank=True, max_length=255, null=True), - ), - ] diff --git a/rog/migrations/__init__.py b/rog/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/rog/models.py b/rog/models.py index f1c4ce5..27a64c3 100644 --- a/rog/models.py +++ b/rog/models.py @@ -305,16 +305,16 @@ def get_default_category(): class Team(models.Model): - zekken_number = models.CharField(max_length=255, unique=True) +# zekken_number = models.CharField(max_length=255, unique=True) team_name = models.CharField(max_length=255) owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='owned_teams', blank=True, null=True) category = models.ForeignKey('NewCategory', on_delete=models.SET_DEFAULT, default=get_default_category) - class Meta: - unique_together = ('zekken_number', 'category') +# class Meta: +# unique_together = ('zekken_number', 'category') def __str__(self): - return f"{self.zekken_number} - {self.team_name}, owner:{self.owner.lastname} {self.owner.firstname}" + return f"{self.team_name}, owner:{self.owner.lastname} {self.owner.firstname}" class Member(models.Model): @@ -378,12 +378,15 @@ class Entry(models.Model): category = models.ForeignKey(NewCategory, on_delete=models.CASCADE) date = models.DateTimeField() owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE,blank=True, null=True) # Akira 2024-7-24 + zekken_number = models.IntegerField(default=0) + is_active = models.BooleanField(default=True) # 新しく追加 + class Meta: - unique_together = ('team', 'event', 'date','owner') + unique_together = ('zekken_number', 'event', 'date') def __str__(self): - return f"{self.team.zekken_number} - {self.event.event_name} - {self.date}" + return f"{self.team.zekken_number} - {self.team_name} - {self.event.event_name} - {self.date}" def clean(self): super().clean() diff --git a/rog/serializers.py b/rog/serializers.py index 4028602..e2cb492 100644 --- a/rog/serializers.py +++ b/rog/serializers.py @@ -316,8 +316,8 @@ class RegistrationSerializer(serializers.ModelSerializer): class NewCategorySerializer(serializers.ModelSerializer): class Meta: model = NewCategory - #fields = ['id','category_name', 'category_number', 'duration', 'num_of_member', 'family', 'female'] - fields = ['id','category_name', 'category_number'] + fields = ['id','category_name', 'category_number', 'duration', 'num_of_member', 'family', 'female'] + #fields = ['id','category_name', 'category_number'] class NewEvent2Serializer(serializers.ModelSerializer): class Meta: @@ -344,8 +344,8 @@ class TeamSerializer(serializers.ModelSerializer): class Meta: model = Team - fields = ['id','zekken_number', 'team_name', 'category', 'owner'] - read_only_fields = ['id', 'owner', 'zekken_number'] + fields = ['id','team_name', 'category', 'owner'] + read_only_fields = ['id', 'owner'] def to_representation(self, instance): ret = super().to_representation(instance) @@ -353,7 +353,11 @@ class TeamSerializer(serializers.ModelSerializer): ret['category'] = { 'id': instance.category.id, 'category_name': instance.category.category_name, - 'category_number': instance.category.category_number + 'category_number': instance.category.category_number, + 'duration': instance.category.duration, + 'num_of_member':instance.category.num_of_member, + 'family':instance.category.family, + 'female':instance.category.female } else: ret['category'] = None @@ -415,13 +419,14 @@ class EntrySerializer(serializers.ModelSerializer): category = serializers.PrimaryKeyRelatedField(queryset=NewCategory.objects.all()) owner = serializers.PrimaryKeyRelatedField(read_only=True) date = serializers.DateTimeField(input_formats=['%Y-%m-%d']) + zekken_number = serializers.IntegerField() #date = serializers.DateTimeField(default_timezone=timezone.get_current_timezone()) class Meta: model = Entry - fields = ['id','team', 'event', 'category', 'date','owner'] + fields = ['id','team', 'event', 'category', 'date','zekken_number','owner'] read_only_fields = ['id','owner'] def validate_date(self, value): @@ -463,6 +468,7 @@ class EntrySerializer(serializers.ModelSerializer): category = data.get('category') entry_date = data.get('date') owner = self.context['request'].user + zekken_number = data.get('zekken_number') # Check if team, event, and category exist if not Team.objects.filter(id=team.id).exists(): @@ -476,6 +482,13 @@ class EntrySerializer(serializers.ModelSerializer): if Entry.objects.filter(team=team, event=event, date__date=entry_date, owner=owner).exists(): raise serializers.ValidationError("既に登録済みです。") + # Validate zekken_number + if zekken_number is not None: + if zekken_number <= 0: + raise serializers.ValidationError("ゼッケン番号は正の整数である必要があります。") + if Entry.objects.filter(event=event, zekken_number=zekken_number).exists(): + raise serializers.ValidationError("このゼッケン番号は既に使用されています。") + return data def to_internal_value(self, data): diff --git a/rog/urls.py b/rog/urls.py index cccc7b8..40eb507 100644 --- a/rog/urls.py +++ b/rog/urls.py @@ -1,7 +1,7 @@ from sys import prefix from rest_framework import urlpatterns 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, TeamViewSet,MemberViewSet,EntryViewSet,RegisterView, VerifyEmailView, NewEventListView,NewEvent2ListView,NewCategoryListView,CategoryListView, MemberUserDetailView, TeamMembersWithUserView,MemberAddView,UserActivationView,RegistrationView,TempUserRegistrationView,ResendInvitationEmailView,update_user_info,update_user_detail,ActivateMemberView, ActivateNewMemberView, PasswordResetRequestView, PasswordResetConfirmView +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, TeamViewSet,MemberViewSet,EntryViewSet,RegisterView, VerifyEmailView, NewEventListView,NewEvent2ListView,NewCategoryListView,CategoryListView, MemberUserDetailView, TeamMembersWithUserView,MemberAddView,UserActivationView,RegistrationView,TempUserRegistrationView,ResendInvitationEmailView,update_user_info,update_user_detail,ActivateMemberView, ActivateNewMemberView, PasswordResetRequestView, PasswordResetConfirmView, NewCategoryViewSet from django.urls import path, include from knox import views as knox_views @@ -36,6 +36,7 @@ router.register(r'teams', TeamViewSet, basename='team') router.register(r'members', MemberViewSet, basename='member') router.register(r'teams/(?P\d+)/members', MemberViewSet, basename='team-members') +router.register(r'categories-viewset', NewCategoryViewSet) # Akira 追加 # GET /api/members//user/: 特定のメンバーのユーザー情報を取得 diff --git a/rog/views.py b/rog/views.py index ee31e0d..b8bc9fc 100644 --- a/rog/views.py +++ b/rog/views.py @@ -966,161 +966,202 @@ class TeamViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): logger.info(f"Creating new team for user: {self.request.user.email}") + team = serializer.save(owner=self.request.user) + logger.info(f"Team created successfully: {team.id}") - with transaction.atomic(): + def update_related_entries(self, team): + current_entries = Entry.objects.filter(team=team, is_active=True) + for entry in current_entries: + self.update_external_system(entry.zekken_number, team.owner.event_code, team.team_name) - category = serializer.validated_data['category'] - category = NewCategory.objects.select_for_update().get(id=category.id) - zekken_number = category.category_number - category.category_number = F('category_number') + 1 - category.save() - category.refresh_from_db() # F() 式の結果を評価 - - team = serializer.save(owner=self.request.user, zekken_number=zekken_number) - logger.info(f"Team created successfully: {team.id}") - - # 外部システムの更新 - success = self.register_team( - team.owner, - team.zekken_number, - team.owner.event_code, - team.team_name, - team.category.category_name, - team.owner.password - ) - if not success: - logger.error("Failed to register external system") - raise serializers.ValidationError("外部システムの更新に失敗しました。") - logger.info("External system register successfully") - - def register_team(self, owner,zekken_number,event_code,team_name,category_name,password): - logger.info(f"register_team ==> zekken_number={zekken_number},event_code={event_code},team_name={team_name},category_name={category_name},password={password}") - api_url = f"{settings.FRONTEND_URL}/gifuroge/register_team" - user = owner - - headers = { - "Content-Type": "application/x-www-form-urlencoded" - } - data = { - "zekken_number": zekken_number, - "event_code": event_code, - "team_name": team_name, - "class_name": category_name, - "password": password # パスワードの扱いに注意が必要です - } - - try: - response = requests.post(api_url,headers=headers,data=data) - response.raise_for_status() - logger.info(f"Team registered successfully for team {team_name}") - return True - - except requests.RequestException as e: - logger.error(f"Failed to register team for entry {entry.id}. Error: {str(e)}") - # エラーが発生しても、エントリー自体は作成されています - # 必要に応じて、ここでエラーハンドリングを追加できます - return False - - def destroy(self, request, *args, **kwargs): - team = self.get_object() - if team.members.exists(): - return Response( - { - "error": "チームにメンバーが残っているため削除できません。", - "error_code": "TEAM_HAS_MEMBERS" - }, - status=status.HTTP_400_BAD_REQUEST - ) - - #return Response({"error": "チームにメンバーが残っているため削除できません。"}, status=status.HTTP_400_BAD_REQUEST) - return super().destroy(request, *args, **kwargs) - - def update_external_system(zekken_number, event_code, team_name, class_name, password): + def update_external_system(self, zekken_number, event_code, team_name): api_url = f"{settings.FRONTEND_URL}/gifuroge/update_team_name" - headers = { - "Content-Type": "application/x-www-form-urlencoded" - } + headers = {"Content-Type": "application/x-www-form-urlencoded"} data = { "zekken_number": zekken_number, "new_team_name": team_name, "event_code": event_code, } try: - response = requests.post(api_url,headers=headers, data=data) + response = requests.post(api_url, headers=headers, data=data) response.raise_for_status() - + logger.info(f"External system updated for zekken_number: {zekken_number}") return True except requests.RequestException as e: logger.error(f"Failed to update external system. Error: {str(e)}") return False - def update(self, request, *args, **kwargs): - try: - partial = kwargs.pop('partial', False) - instance = self.get_object() - serializer = self.get_serializer(instance, data=request.data, partial=partial) - serializer.is_valid(raise_exception=True) - self.perform_update(serializer) - - if getattr(instance, '_prefetched_objects_cache', None): - instance._prefetched_objects_cache = {} - - return Response(serializer.data) - except Exception as e: - return Response({"error": "更新に失敗しました。競合が発生した可能性があります。"}, status=status.HTTP_409_CONFLICT) - + +# with transaction.atomic(): +# +# category = serializer.validated_data['category'] +# category = NewCategory.objects.select_for_update().get(id=category.id) +# zekken_number = category.category_number +# category.category_number = F('category_number') + 1 +# category.save() +# category.refresh_from_db() # F() 式の結果を評価 +# +# team = serializer.save(owner=self.request.user, zekken_number=zekken_number) +# logger.info(f"Team created successfully: {team.id}") +# +# # 外部システムの更新 +# success = self.register_team( +# team.owner, +# team.zekken_number, +# team.owner.event_code, +# team.team_name, +# team.category.category_name, +# team.owner.password +# ) +# if not success: +# logger.error("Failed to register external system") +# raise serializers.ValidationError("外部システムの更新に失敗しました。") +# logger.info("External system register successfully") +# +# def register_team(self, owner,zekken_number,event_code,team_name,category_name,password): +# logger.info(f"register_team ==> zekken_number={zekken_number},event_code={event_code},team_name={team_name},category_name={category_name},password={password}") +# api_url = f"{settings.FRONTEND_URL}/gifuroge/register_team" +# user = owner +# +# headers = { +# "Content-Type": "application/x-www-form-urlencoded" +# } +# data = { +# "zekken_number": zekken_number, +# "event_code": event_code, +# "team_name": team_name, +# "class_name": category_name, +# "password": password # パスワードの扱いに注意が必要です +# } +# +# try: +# response = requests.post(api_url,headers=headers,data=data) +# response.raise_for_status() +# logger.info(f"Team registered successfully for team {team_name}") +# return True +# +# except requests.RequestException as e: +# logger.error(f"Failed to register team for entry {entry.id}. Error: {str(e)}") +# # エラーが発生しても、エントリー自体は作成されています +# # 必要に応じて、ここでエラーハンドリングを追加できます +# return False +# +# def destroy(self, request, *args, **kwargs): +# team = self.get_object() +# if team.members.exists(): +# return Response( +# { +# "error": "チームにメンバーが残っているため削除できません。", +# "error_code": "TEAM_HAS_MEMBERS" +# }, +# status=status.HTTP_400_BAD_REQUEST +# ) +# +# #return Response({"error": "チームにメンバーが残っているため削除できません。"}, status=status.HTTP_400_BAD_REQUEST) +# return super().destroy(request, *args, **kwargs) +# +# def update_external_system(zekken_number, event_code, team_name, class_name, password): +# api_url = f"{settings.FRONTEND_URL}/gifuroge/update_team_name" +# headers = { +# "Content-Type": "application/x-www-form-urlencoded" +# } +# data = { +# "zekken_number": zekken_number, +# "new_team_name": team_name, +# "event_code": event_code, +# } +# try: +# response = requests.post(api_url,headers=headers, data=data) +# response.raise_for_status() +# +# return True +# except requests.RequestException as e: +# logger.error(f"Failed to update external system. Error: {str(e)}") +# return False +# # def update(self, request, *args, **kwargs): # try: -# return super().update(request, *args, **kwargs) +# partial = kwargs.pop('partial', False) +# instance = self.get_object() +# serializer = self.get_serializer(instance, data=request.data, partial=partial) +# serializer.is_valid(raise_exception=True) +# self.perform_update(serializer) +# +# if getattr(instance, '_prefetched_objects_cache', None): +# instance._prefetched_objects_cache = {} +# +# return Response(serializer.data) # except Exception as e: # return Response({"error": "更新に失敗しました。競合が発生した可能性があります。"}, status=status.HTTP_409_CONFLICT) - - def perform_update(self, serializer): - with transaction.atomic(): - team = serializer.save() - - # 外部システムの更新 - success = update_external_system( - team.zekken_number, - team.owner.event_code, - team.team_name, - team.category.category_name, - team.owner.password - ) - if not success: - raise serializers.ValidationError("外部システムの更新に失敗しました。") - else: - print("岐阜ロゲシステム更新に成功") - - @action(detail=True, methods=['post']) - def copy(self, request, pk=None): - original_team = self.get_object() - with transaction.atomic(): - category = NewCategory.objects.select_for_update().get(id=original_team.category.id) - new_zekken_number = category.category_number - category.category_number = F('category_number') + 1 - category.save() - category.refresh_from_db() # F() 式の結果を評価 - - new_team = Team.objects.create( - zekken_number=new_zekken_number, - team_name=f"{original_team.team_name} (コピー)", - category=category, - owner=request.user - ) - for member in original_team.members.all(): - Member.objects.create( - team=new_team, - user=member.user - ) - return Response(TeamSerializer(new_team).data, status=status.HTTP_201_CREATED) - +# +# +## def update(self, request, *args, **kwargs): +## try: +## return super().update(request, *args, **kwargs) +## except Exception as e: +## return Response({"error": "更新に失敗しました。競合が発生した可能性があります。"}, status=status.HTTP_409_CONFLICT) +# +# def perform_update(self, serializer): +# with transaction.atomic(): +# team = serializer.save() +# +# # 外部システムの更新 +# success = update_external_system( +# team.zekken_number, +# team.owner.event_code, +# team.team_name, +# team.category.category_name, +# team.owner.password +# ) +# if not success: +# raise serializers.ValidationError("外部システムの更新に失敗しました。") +# else: +# print("岐阜ロゲシステム更新に成功") +# +# @action(detail=True, methods=['post']) +# def copy(self, request, pk=None): +# original_team = self.get_object() +# with transaction.atomic(): +# category = NewCategory.objects.select_for_update().get(id=original_team.category.id) +# new_zekken_number = category.category_number +# category.category_number = F('category_number') + 1 +# category.save() +# category.refresh_from_db() # F() 式の結果を評価 +# +# new_team = Team.objects.create( +# zekken_number=new_zekken_number, +# team_name=f"{original_team.team_name} (コピー)", +# category=category, +# owner=request.user +# ) +# for member in original_team.members.all(): +# Member.objects.create( +# team=new_team, +# user=member.user +# ) +# return Response(TeamSerializer(new_team).data, status=status.HTTP_201_CREATED) +# class NewCategoryViewSet(viewsets.ModelViewSet): queryset = NewCategory.objects.all() serializer_class = NewCategorySerializer - permission_classes = [IsAuthenticated] + #permission_classes = [IsAuthenticated] + + + @action(detail=True, methods=['POST']) + def get_zekken_number(self, request, pk=None): + try: + with transaction.atomic(): + category = NewCategory.objects.select_for_update().get(pk=pk) + category.category_number += 1 + category.save() + serializer = self.get_serializer(category) + return Response(serializer.data) + except NewCategory.DoesNotExist: + return Response({"error": "Category not found"}, status=status.HTTP_404_NOT_FOUND) + except Exception as e: + return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST) class NewCategoryListView(generics.ListAPIView): queryset = NewCategory.objects.all() @@ -1168,73 +1209,117 @@ class EntryViewSet(viewsets.ModelViewSet): # 両方のチームに関連するエントリーを取得 return Entry.objects.filter(Q(team__id__in=owned_team_ids) | Q(team__id__in=member_team_ids)) - - def create(self, request, *args, **kwargs): - serializer = self.get_serializer(data=request.data) - try: - serializer.is_valid(raise_exception=True) - self.perform_create(serializer) - headers = self.get_success_headers(serializer.data) - return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) - except DRFValidationError as e: - return Response({'error': self.format_errors(e.detail)}, status=status.HTTP_400_BAD_REQUEST) - # except IntegrityError: - # return Response({'error': '既に登録済みです'}, status=status.HTTP_400_BAD_REQUEST) - except IntegrityError as e: - return Response({'error': f'データベースエラー: {str(e)}'}, status=status.HTTP_400_BAD_REQUEST) - - except Exception as e: - return Response({'error': f"予期せぬエラーが発生しました: {str(e),'type': str(type(e))}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - + @transaction.atomic def perform_create(self, serializer): - serializer.save(owner=self.request.user) + category = serializer.validated_data['category'] + category = NewCategory.objects.select_for_update().get(id=category.id) + zekken_number = category.category_number + category.category_number = F('category_number') + 1 + category.save() + category.refresh_from_db() + team = serializer.validated_data['team'] + entry = serializer.save(owner=self.request.user, zekken_number=zekken_number) - def update(self, request, *args, **kwargs): - logger.info(f"Update method called for Entry with ID: {kwargs.get('pk')}") - logger.debug(f"Request data: {request.data}") - - partial = kwargs.pop('partial', False) - instance = self.get_object() - serializer = self.get_serializer(instance, data=request.data, partial=partial) + # 外部システムの更新 + success = self.register_team( + entry.zekken_number, + team.owner.event_code, + team.team_name, + category.category_name, + team.owner.password + ) + if not success: + logger.error("Failed to register external system") + raise serializers.ValidationError("外部システムの更新に失敗しました。") + logger.info("External system registered successfully") + def register_team(self, zekken_number, event_code, team_name, category_name, password): + api_url = f"{settings.FRONTEND_URL}/gifuroge/register_team" + headers = {"Content-Type": "application/x-www-form-urlencoded"} + data = { + "zekken_number": zekken_number, + "event_code": event_code, + "team_name": team_name, + "class_name": category_name, + "password": password + } try: - serializer.is_valid(raise_exception=True) - logger.debug(f"Serializer validated data: {serializer.validated_data}") - except serializers.ValidationError as e: - logger.error(f"Validation error: {e.detail}") - return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST) - - try: - self.perform_update(serializer) - logger.info(f"Entry updated successfully: {serializer.data}") - except Exception as e: - logger.exception(f"Error updating Entry: {str(e)}") - return Response({"error": "An error occurred while updating the entry."}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + response = requests.post(api_url, headers=headers, data=data) + response.raise_for_status() + logger.info(f"Team registered successfully for zekken_number {zekken_number}") + return True + except requests.RequestException as e: + logger.error(f"Failed to register team. Error: {str(e)}") + return False - return Response(serializer.data) - - def destroy(self, request, *args, **kwargs): - instance = self.get_object() - self.perform_destroy(instance) - return Response(status=status.HTTP_204_NO_CONTENT) - - def get_error_message(self, exception): - if hasattr(exception, 'detail'): - if isinstance(exception.detail, dict): - return '. '.join([f"{key}: {', '.join(value)}" for key, value in exception.detail.items()]) - elif isinstance(exception.detail, list): - return '. '.join(exception.detail) - return str(exception) - - def format_errors(self, errors): - if isinstance(errors, list): - return '. '.join(errors) - elif isinstance(errors, dict): - return '. '.join([f"{key}: {value}" if isinstance(value, str) else f"{key}: {', '.join(value)}" for key, value in errors.items()]) - else: - return str(errors) +# def create(self, request, *args, **kwargs): +# serializer = self.get_serializer(data=request.data) +# try: +# serializer.is_valid(raise_exception=True) +# self.perform_create(serializer) +# headers = self.get_success_headers(serializer.data) +# return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) +# except DRFValidationError as e: +# return Response({'error': self.format_errors(e.detail)}, status=status.HTTP_400_BAD_REQUEST) +# # except IntegrityError: +# # return Response({'error': '既に登録済みです'}, status=status.HTTP_400_BAD_REQUEST) +# except IntegrityError as e: +# return Response({'error': f'データベースエラー: {str(e)}'}, status=status.HTTP_400_BAD_REQUEST) +# +# except Exception as e: +# return Response({'error': f"予期せぬエラーが発生しました: {str(e),'type': str(type(e))}"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) +# +# def perform_create(self, serializer): +# serializer.save(owner=self.request.user) +# +# +# def update(self, request, *args, **kwargs): +# logger.info(f"Update method called for Entry with ID: {kwargs.get('pk')}") +# logger.debug(f"Request data: {request.data}") +# +# partial = kwargs.pop('partial', False) +# instance = self.get_object() +# serializer = self.get_serializer(instance, data=request.data, partial=partial) +# +# try: +# serializer.is_valid(raise_exception=True) +# logger.debug(f"Serializer validated data: {serializer.validated_data}") +# except serializers.ValidationError as e: +# logger.error(f"Validation error: {e.detail}") +# return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST) +# +# try: +# self.perform_update(serializer) +# logger.info(f"Entry updated successfully: {serializer.data}") +# except Exception as e: +# logger.exception(f"Error updating Entry: {str(e)}") +# return Response({"error": "An error occurred while updating the entry."}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) +# +# +# return Response(serializer.data) +# +# def destroy(self, request, *args, **kwargs): +# instance = self.get_object() +# self.perform_destroy(instance) +# return Response(status=status.HTTP_204_NO_CONTENT) +# +# def get_error_message(self, exception): +# if hasattr(exception, 'detail'): +# if isinstance(exception.detail, dict): +# return '. '.join([f"{key}: {', '.join(value)}" for key, value in exception.detail.items()]) +# elif isinstance(exception.detail, list): +# return '. '.join(exception.detail) +# return str(exception) +# +# def format_errors(self, errors): +# if isinstance(errors, list): +# return '. '.join(errors) +# elif isinstance(errors, dict): +# return '. '.join([f"{key}: {value}" if isinstance(value, str) else f"{key}: {', '.join(value)}" for key, value in errors.items()]) +# else: +# return str(errors) class MemberViewSet(viewsets.ModelViewSet):