Files
WrestleDesk/backend/wrestleDesk/urls.py
T
Andrej Spielmann 3fefc550fe Initial commit: WrestleDesk full project
- 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
2026-03-26 13:24:57 +01:00

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)