3fefc550fe
- Django backend with DRF (clubs, wrestlers, trainers, exercises, templates, trainings, homework, locations, leistungstest) - Next.js 16 frontend with React, Shadcn UI, Tailwind - JWT authentication - Full CRUD for all entities - Calendar view for trainings - Homework management system - Leistungstest tracking
55 lines
3.1 KiB
Python
55 lines
3.1 KiB
Python
from django.contrib import admin
|
|
from django.urls import path, include
|
|
from django.conf import settings
|
|
from django.conf.urls.static import static
|
|
from rest_framework.routers import DefaultRouter
|
|
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
|
|
|
|
from clubs.views import ClubViewSet
|
|
from wrestlers.views import WrestlerViewSet
|
|
from trainers.views import TrainerViewSet
|
|
from locations.views import LocationViewSet
|
|
from exercises.views import ExerciseViewSet
|
|
from templates.views import TrainingTemplateViewSet, TemplateExerciseViewSet
|
|
from trainings.views import TrainingViewSet, AttendanceViewSet, TrainingExerciseViewSet
|
|
from homework.views import HomeworkViewSet, HomeworkExerciseItemViewSet, HomeworkAssignmentViewSet, HomeworkStatusViewSet, TrainingHomeworkAssignmentViewSet
|
|
from auth_app.views import login, register, refresh_token, me, user_preferences
|
|
from stats.views import dashboard_stats
|
|
from leistungstest.views import LeistungstestStatsViewSet
|
|
|
|
router = DefaultRouter()
|
|
router.register(r'clubs', ClubViewSet, basename='club')
|
|
router.register(r'wrestlers', WrestlerViewSet, basename='wrestler')
|
|
router.register(r'trainers', TrainerViewSet, basename='trainer')
|
|
router.register(r'locations', LocationViewSet, basename='location')
|
|
router.register(r'exercises', ExerciseViewSet, basename='exercise')
|
|
router.register(r'templates', TrainingTemplateViewSet, basename='template')
|
|
router.register(r'template-exercises', TemplateExerciseViewSet, basename='template-exercise')
|
|
router.register(r'trainings', TrainingViewSet, basename='training')
|
|
router.register(r'attendances', AttendanceViewSet, basename='attendance')
|
|
router.register(r'training-exercises', TrainingExerciseViewSet, basename='training-exercise')
|
|
router.register(r'homework', HomeworkViewSet, basename='homework')
|
|
router.register(r'homework-exercise-items', HomeworkExerciseItemViewSet, basename='homework-exercise-item')
|
|
router.register(r'homework-assignments', HomeworkAssignmentViewSet, basename='homework-assignment')
|
|
router.register(r'homework-status', HomeworkStatusViewSet, basename='homework-status')
|
|
router.register(r'training-assignments', TrainingHomeworkAssignmentViewSet, basename='training-assignment')
|
|
router.register(r'leistungstest-stats', LeistungstestStatsViewSet, basename='leistungstest-stats')
|
|
|
|
urlpatterns = [
|
|
path('admin/', admin.site.urls),
|
|
path('api/v1/', include(router.urls)),
|
|
path('api/v1/auth/login/', login, name='login'),
|
|
path('api/v1/auth/register/', register, name='register'),
|
|
path('api/v1/auth/refresh/', refresh_token, name='refresh_token'),
|
|
path('api/v1/auth/me/', me, name='me'),
|
|
path('api/v1/auth/preferences/', user_preferences, name='user_preferences'),
|
|
path('api/v1/stats/dashboard/', dashboard_stats, name='dashboard-stats'),
|
|
path('api/v1/training-log/', include('training_log.urls')),
|
|
path('api/v1/leistungstest/', include('leistungstest.urls')),
|
|
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
|
|
path('api/docs/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
|
|
]
|
|
|
|
if settings.DEBUG:
|
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|