28222d634d
- Add role field to UserProfile (superadmin/admin/trainer) - Add role-based permission classes - Create UserManagementViewSet with CRUD and password change - Add API types and components for user management - Create users management page in settings - Only superadmins can manage users
56 lines
3.2 KiB
Python
56 lines
3.2 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 UserManagementViewSet, 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')
|
|
router.register(r'auth/users', UserManagementViewSet, basename='usermanagement')
|
|
|
|
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)
|