Fix some issues
This commit is contained in:
@ -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):
|
||||||
|
|||||||
@ -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'),
|
||||||
|
|||||||
48
rog/views_apis/api_supervisor.py
Normal file
48
rog/views_apis/api_supervisor.py
Normal 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
|
||||||
|
)
|
||||||
@ -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);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user