Fix ROute issue
This commit is contained in:
@ -224,6 +224,9 @@ LEAFLET_CONFIG = {
|
|||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
|
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
|
||||||
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication', ),
|
'DEFAULT_AUTHENTICATION_CLASSES': ('knox.auth.TokenAuthentication', ),
|
||||||
|
'DEFAULT_PERMISSION_CLASSES': [
|
||||||
|
'rest_framework.permissions.IsAuthenticated',
|
||||||
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1017,9 +1017,9 @@ class GpsLogAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
@admin.register(GpsCheckin)
|
@admin.register(GpsCheckin)
|
||||||
class GpsCheckinAdmin(admin.ModelAdmin):
|
class GpsCheckinAdmin(admin.ModelAdmin):
|
||||||
list_display = ['id', 'zekken_number', 'event_code', 'cp_number', 'create_at']
|
list_display = ['id', 'zekken', 'event_code', 'cp_number', 'create_at']
|
||||||
list_filter = ['event_code', 'create_at', 'validate_location']
|
list_filter = ['event_code', 'create_at', 'validate_location']
|
||||||
search_fields = ['zekken_number', 'event_code', 'cp_number']
|
search_fields = ['zekken', 'event_code', 'cp_number']
|
||||||
readonly_fields = ['create_at']
|
readonly_fields = ['create_at']
|
||||||
|
|
||||||
@admin.register(Checkpoint)
|
@admin.register(Checkpoint)
|
||||||
|
|||||||
@ -919,10 +919,16 @@ class GpsCheckin(models.Model):
|
|||||||
default=0,
|
default=0,
|
||||||
help_text="チェックポイントの順序番号"
|
help_text="チェックポイントの順序番号"
|
||||||
)
|
)
|
||||||
|
zekken = models.CharField(
|
||||||
|
max_length=20,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
help_text="ゼッケン番号(実テーブルフィールド名に合わせて修正)"
|
||||||
|
)
|
||||||
zekken_number = models.TextField(
|
zekken_number = models.TextField(
|
||||||
null=False,
|
null=False,
|
||||||
default='',
|
default='',
|
||||||
help_text="ゼッケン番号"
|
help_text="ゼッケン番号(後方互換性のため残す)"
|
||||||
)
|
)
|
||||||
event_id = models.IntegerField(
|
event_id = models.IntegerField(
|
||||||
null=True,
|
null=True,
|
||||||
@ -1026,6 +1032,17 @@ class GpsCheckin(models.Model):
|
|||||||
blank=True,
|
blank=True,
|
||||||
help_text="統合チームリレーション"
|
help_text="統合チームリレーション"
|
||||||
)
|
)
|
||||||
|
team_name = models.CharField(
|
||||||
|
max_length=255,
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
help_text="チーム名(実テーブルフィールド)"
|
||||||
|
)
|
||||||
|
checkin_time = models.DateTimeField(
|
||||||
|
null=True,
|
||||||
|
blank=True,
|
||||||
|
help_text="チェックイン時刻(実テーブルフィールド)"
|
||||||
|
)
|
||||||
checkpoint = models.ForeignKey(
|
checkpoint = models.ForeignKey(
|
||||||
'Checkpoint',
|
'Checkpoint',
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
@ -1068,9 +1085,9 @@ class GpsCheckin(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = 'gps_checkins'
|
db_table = 'rog_gpscheckin' # 実際のテーブル名に合わせて修正
|
||||||
indexes = [
|
indexes = [
|
||||||
models.Index(fields=['zekken_number', 'event_code', 'path_order'], name='idx_zekken_event'),
|
models.Index(fields=['zekken', 'event_code', 'path_order'], name='idx_zekken_event'),
|
||||||
models.Index(fields=['create_at'], name='idx_create_at'),
|
models.Index(fields=['create_at'], name='idx_create_at'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ from .views_apis.api_admin_validation import get_event_participants_ranking, get
|
|||||||
from .views_apis.api_simulator import rogaining_simulator
|
from .views_apis.api_simulator import rogaining_simulator
|
||||||
from .views_apis.api_test import test_gifuroge,practice
|
from .views_apis.api_test import test_gifuroge,practice
|
||||||
from .views_apis.api_supervisor import get_events_for_supervisor
|
from .views_apis.api_supervisor import get_events_for_supervisor
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from .app_version_views import app_version_check, AppVersionManagementView
|
from .app_version_views import app_version_check, AppVersionManagementView
|
||||||
from .multi_image_upload_views import multi_image_upload, image_list, image_detail
|
from .multi_image_upload_views import multi_image_upload, image_list, image_detail
|
||||||
from .gpx_route_views import gpx_test_data, available_routes
|
from .gpx_route_views import gpx_test_data, available_routes
|
||||||
@ -143,7 +144,7 @@ urlpatterns += [
|
|||||||
|
|
||||||
# for Supervisor Web app
|
# for Supervisor Web app
|
||||||
path('events/', views.get_events, name='get_events'),
|
path('events/', views.get_events, name='get_events'),
|
||||||
path('events-supervisor/', get_events_for_supervisor, name='get_events_for_supervisor'), # 新規追加
|
path('events-supervisor/', csrf_exempt(get_events_for_supervisor), name='get_events_for_supervisor'), # 新規追加
|
||||||
path('debug/urls/', views.debug_urls, name='debug_urls'),
|
path('debug/urls/', views.debug_urls, name='debug_urls'),
|
||||||
path('zekken_numbers/<str:event_code>/', views.get_zekken_numbers, name='get_zekken_numbers'),
|
path('zekken_numbers/<str:event_code>/', views.get_zekken_numbers, name='get_zekken_numbers'),
|
||||||
path('team_info/<int:zekken_number>/', views.get_team_info, name='get_team_info'),
|
path('team_info/<int:zekken_number>/', views.get_team_info, name='get_team_info'),
|
||||||
|
|||||||
@ -2513,8 +2513,8 @@ def get_zekken_numbers(request, event_code):
|
|||||||
# GpsCheckinテーブルからも検索(過去の移行データ)
|
# GpsCheckinテーブルからも検索(過去の移行データ)
|
||||||
gps_checkins = GpsCheckin.objects.filter(
|
gps_checkins = GpsCheckin.objects.filter(
|
||||||
event_code=event_code,
|
event_code=event_code,
|
||||||
zekken_number__gt=0
|
zekken__gt=''
|
||||||
).values_list('zekken_number', flat=True).distinct().order_by('zekken_number')
|
).values_list('zekken', flat=True).distinct().order_by('zekken')
|
||||||
|
|
||||||
gps_list = list(gps_checkins)
|
gps_list = list(gps_checkins)
|
||||||
print(f"GpsCheckin table found {len(gps_list)} records: {gps_list[:10]}")
|
print(f"GpsCheckin table found {len(gps_list)} records: {gps_list[:10]}")
|
||||||
@ -2912,9 +2912,9 @@ def _get_final_report( zekken, event_code):
|
|||||||
def _get_photo_list(zekken, event_code):
|
def _get_photo_list(zekken, event_code):
|
||||||
photos = []
|
photos = []
|
||||||
try:
|
try:
|
||||||
print(f"Query parameters - zekken_number: {zekken}, event_code: {event_code}")
|
print(f"Query parameters - zekken: {zekken}, event_code: {event_code}")
|
||||||
|
|
||||||
checkins = GpsCheckin.objects.filter(zekken_number=zekken, event_code=event_code)
|
checkins = GpsCheckin.objects.filter(zekken=zekken, event_code=event_code)
|
||||||
# クエリ結果の件数を出力
|
# クエリ結果の件数を出力
|
||||||
print(f"Found {checkins.count()} checkins")
|
print(f"Found {checkins.count()} checkins")
|
||||||
|
|
||||||
|
|||||||
@ -57,7 +57,7 @@ def get_event_participants_ranking(request):
|
|||||||
for entry in entries:
|
for entry in entries:
|
||||||
# このエントリーのチェックイン記録を取得
|
# このエントリーのチェックイン記録を取得
|
||||||
checkins = GpsCheckin.objects.filter(
|
checkins = GpsCheckin.objects.filter(
|
||||||
zekken_number=str(entry.zekken_number),
|
zekken=str(entry.zekken_number),
|
||||||
event_code=event_code
|
event_code=event_code
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ def get_participant_validation_details(request):
|
|||||||
|
|
||||||
# チェックイン記録の取得
|
# チェックイン記録の取得
|
||||||
checkins = GpsCheckin.objects.filter(
|
checkins = GpsCheckin.objects.filter(
|
||||||
zekken_number=str(zekken_number),
|
zekken=str(zekken_number),
|
||||||
event_code=event_code
|
event_code=event_code
|
||||||
).order_by('path_order')
|
).order_by('path_order')
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
|
|||||||
def get_events_for_supervisor(request):
|
def get_events_for_supervisor(request):
|
||||||
"""
|
"""
|
||||||
Supervisor用のイベント一覧取得API
|
Supervisor用のイベント一覧取得API
|
||||||
認証なし
|
認証なし・CSRF保護なし(urls.pyでcsrf_exemptを適用)
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
events = NewEvent2.objects.all()
|
events = NewEvent2.objects.all()
|
||||||
|
|||||||
Reference in New Issue
Block a user