Fix some issues

This commit is contained in:
2025-08-28 11:59:46 +09:00
parent 2a962181b2
commit bba0422efb
4 changed files with 59 additions and 4 deletions

View File

@ -389,6 +389,9 @@ class NewCategorySerializer(serializers.ModelSerializer):
class NewEvent2Serializer(serializers.ModelSerializer): class NewEvent2Serializer(serializers.ModelSerializer):
# API変更要求書対応: deadline_datetime フィールド追加 # API変更要求書対応: deadline_datetime フィールド追加
deadline_datetime = serializers.DateTimeField(source='deadlineDateTime', read_only=True) deadline_datetime = serializers.DateTimeField(source='deadlineDateTime', read_only=True)
# Supervisor web app compatibility
code = serializers.CharField(source='event_name', read_only=True)
name = serializers.CharField(source='event_name', read_only=True)
class Meta: class Meta:
model = NewEvent2 model = NewEvent2
@ -396,7 +399,8 @@ class NewEvent2Serializer(serializers.ModelSerializer):
'id', 'event_name', 'start_datetime', 'end_datetime', 'id', 'event_name', 'start_datetime', 'end_datetime',
'deadlineDateTime', 'deadline_datetime', 'status', 'public', 'deadlineDateTime', 'deadline_datetime', 'status', 'public',
'hour_3', 'hour_5', 'class_general', 'class_family', 'hour_3', 'hour_5', 'class_general', 'class_family',
'class_solo_male', 'class_solo_female' 'class_solo_male', 'class_solo_female',
'code', 'name' # Supervisor compatibility
] ]
def to_representation(self, instance): def to_representation(self, instance):

View File

@ -19,6 +19,7 @@ from .views_apis.api_bulk_upload import bulk_upload_photos, confirm_checkin_vali
from .views_apis.api_admin_validation import get_event_participants_ranking, get_participant_validation_details, get_event_zekken_list from .views_apis.api_admin_validation import get_event_participants_ranking, get_participant_validation_details, get_event_zekken_list
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 .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
@ -39,6 +40,7 @@ from django.conf.urls.static import static
router = DefaultRouter() router = DefaultRouter()
router.register(r'newevent2', views.NewEvent2ViewSet) router.register(r'newevent2', views.NewEvent2ViewSet)
router.register(r'events', views.NewEvent2ViewSet) # Alias for newevent2
router.register(prefix='location', viewset=LocationViewSet, basename='location') router.register(prefix='location', viewset=LocationViewSet, basename='location')
router.register(prefix='location_line', viewset=Location_lineViewSet, basename="location_line") router.register(prefix='location_line', viewset=Location_lineViewSet, basename="location_line")
@ -141,6 +143,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('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'),

View File

@ -0,0 +1,48 @@
#!/usr/bin/env python3
"""
Supervisor Web App用のAPI
認証なしでアクセス可能
"""
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework import status
from rog.models import NewEvent2
from rog.serializers import NewEvent2Serializer
import logging
logger = logging.getLogger(__name__)
@api_view(['GET'])
@permission_classes([AllowAny])
def get_events_for_supervisor(request):
"""
Supervisor用のイベント一覧取得API
認証なし
"""
try:
events = NewEvent2.objects.all()
data = []
for event in events:
data.append({
'id': event.id,
'code': event.event_name,
'name': event.event_name,
'event_name': event.event_name,
'start_datetime': event.start_datetime,
'end_datetime': event.end_datetime,
'status': event.status,
'public': event.public
})
return Response(data, status=status.HTTP_200_OK)
except Exception as e:
logger.error(f"Error in get_events_for_supervisor: {str(e)}")
return Response(
{'error': 'イベント取得中にエラーが発生しました'},
status=status.HTTP_500_INTERNAL_SERVER_ERROR
)

View File

@ -850,7 +850,7 @@
async function loadEventCodes() { async function loadEventCodes() {
console.log('loadEventCodes called'); console.log('loadEventCodes called');
try { try {
const apiUrl = `${API_BASE_URL}/events/`; const apiUrl = `${API_BASE_URL}/events-supervisor/`;
console.log('Fetching events from URL:', apiUrl); console.log('Fetching events from URL:', apiUrl);
const response = await fetch(apiUrl, { const response = await fetch(apiUrl, {
@ -876,8 +876,8 @@
data.forEach(event => { data.forEach(event => {
const option = document.createElement('option'); const option = document.createElement('option');
option.value = event.code; option.value = event.event_name; // event_nameを使用
option.textContent = event.name; option.textContent = event.event_name; // event_nameを使用
select.appendChild(option); select.appendChild(option);
}); });