Fix some issues
This commit is contained in:
@ -389,6 +389,9 @@ class NewCategorySerializer(serializers.ModelSerializer):
|
||||
class NewEvent2Serializer(serializers.ModelSerializer):
|
||||
# API変更要求書対応: deadline_datetime フィールド追加
|
||||
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:
|
||||
model = NewEvent2
|
||||
@ -396,7 +399,8 @@ class NewEvent2Serializer(serializers.ModelSerializer):
|
||||
'id', 'event_name', 'start_datetime', 'end_datetime',
|
||||
'deadlineDateTime', 'deadline_datetime', 'status', 'public',
|
||||
'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):
|
||||
|
||||
@ -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_simulator import rogaining_simulator
|
||||
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 .multi_image_upload_views import multi_image_upload, image_list, image_detail
|
||||
from .gpx_route_views import gpx_test_data, available_routes
|
||||
@ -39,6 +40,7 @@ from django.conf.urls.static import static
|
||||
|
||||
router = DefaultRouter()
|
||||
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_line', viewset=Location_lineViewSet, basename="location_line")
|
||||
@ -141,6 +143,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('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'),
|
||||
|
||||
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() {
|
||||
console.log('loadEventCodes called');
|
||||
try {
|
||||
const apiUrl = `${API_BASE_URL}/events/`;
|
||||
const apiUrl = `${API_BASE_URL}/events-supervisor/`;
|
||||
console.log('Fetching events from URL:', apiUrl);
|
||||
|
||||
const response = await fetch(apiUrl, {
|
||||
@ -876,8 +876,8 @@
|
||||
|
||||
data.forEach(event => {
|
||||
const option = document.createElement('option');
|
||||
option.value = event.code;
|
||||
option.textContent = event.name;
|
||||
option.value = event.event_name; // event_nameを使用
|
||||
option.textContent = event.event_name; // event_nameを使用
|
||||
select.appendChild(option);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user