Fix ROute issue
This commit is contained in:
@ -1017,9 +1017,9 @@ class GpsLogAdmin(admin.ModelAdmin):
|
||||
|
||||
@admin.register(GpsCheckin)
|
||||
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']
|
||||
search_fields = ['zekken_number', 'event_code', 'cp_number']
|
||||
search_fields = ['zekken', 'event_code', 'cp_number']
|
||||
readonly_fields = ['create_at']
|
||||
|
||||
@admin.register(Checkpoint)
|
||||
|
||||
@ -919,10 +919,16 @@ class GpsCheckin(models.Model):
|
||||
default=0,
|
||||
help_text="チェックポイントの順序番号"
|
||||
)
|
||||
zekken = models.CharField(
|
||||
max_length=20,
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="ゼッケン番号(実テーブルフィールド名に合わせて修正)"
|
||||
)
|
||||
zekken_number = models.TextField(
|
||||
null=False,
|
||||
default='',
|
||||
help_text="ゼッケン番号"
|
||||
help_text="ゼッケン番号(後方互換性のため残す)"
|
||||
)
|
||||
event_id = models.IntegerField(
|
||||
null=True,
|
||||
@ -1026,6 +1032,17 @@ class GpsCheckin(models.Model):
|
||||
blank=True,
|
||||
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',
|
||||
on_delete=models.CASCADE,
|
||||
@ -1068,9 +1085,9 @@ class GpsCheckin(models.Model):
|
||||
)
|
||||
|
||||
class Meta:
|
||||
db_table = 'gps_checkins'
|
||||
db_table = 'rog_gpscheckin' # 実際のテーブル名に合わせて修正
|
||||
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'),
|
||||
]
|
||||
|
||||
|
||||
@ -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_test import test_gifuroge,practice
|
||||
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 .multi_image_upload_views import multi_image_upload, image_list, image_detail
|
||||
from .gpx_route_views import gpx_test_data, available_routes
|
||||
@ -143,7 +144,7 @@ urlpatterns += [
|
||||
|
||||
# for Supervisor Web app
|
||||
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('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'),
|
||||
|
||||
@ -2513,8 +2513,8 @@ def get_zekken_numbers(request, event_code):
|
||||
# GpsCheckinテーブルからも検索(過去の移行データ)
|
||||
gps_checkins = GpsCheckin.objects.filter(
|
||||
event_code=event_code,
|
||||
zekken_number__gt=0
|
||||
).values_list('zekken_number', flat=True).distinct().order_by('zekken_number')
|
||||
zekken__gt=''
|
||||
).values_list('zekken', flat=True).distinct().order_by('zekken')
|
||||
|
||||
gps_list = list(gps_checkins)
|
||||
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):
|
||||
photos = []
|
||||
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")
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ def get_event_participants_ranking(request):
|
||||
for entry in entries:
|
||||
# このエントリーのチェックイン記録を取得
|
||||
checkins = GpsCheckin.objects.filter(
|
||||
zekken_number=str(entry.zekken_number),
|
||||
zekken=str(entry.zekken_number),
|
||||
event_code=event_code
|
||||
)
|
||||
|
||||
@ -211,7 +211,7 @@ def get_participant_validation_details(request):
|
||||
|
||||
# チェックイン記録の取得
|
||||
checkins = GpsCheckin.objects.filter(
|
||||
zekken_number=str(zekken_number),
|
||||
zekken=str(zekken_number),
|
||||
event_code=event_code
|
||||
).order_by('path_order')
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
|
||||
def get_events_for_supervisor(request):
|
||||
"""
|
||||
Supervisor用のイベント一覧取得API
|
||||
認証なし
|
||||
認証なし・CSRF保護なし(urls.pyでcsrf_exemptを適用)
|
||||
"""
|
||||
try:
|
||||
events = NewEvent2.objects.all()
|
||||
|
||||
Reference in New Issue
Block a user