add problemset

This commit is contained in:
2025-10-22 18:47:40 +08:00
parent 9235b111c0
commit 07aaff69f2
16 changed files with 1404 additions and 4 deletions

View File

64
problemset/urls/admin.py Normal file
View File

@@ -0,0 +1,64 @@
from django.urls import path
from problemset.views.admin import (
ProblemSetAdminAPI,
ProblemSetBadgeAdminAPI,
ProblemSetDetailAdminAPI,
ProblemSetProblemAdminAPI,
ProblemSetProgressAdminAPI,
ProblemSetStatusAPI,
ProblemSetVisibleAPI,
)
urlpatterns = [
# 管理员题单管理API
path("problemset/", ProblemSetAdminAPI.as_view(), name="admin_problemset_api"),
path(
"problemset/<int:problem_set_id>/",
ProblemSetDetailAdminAPI.as_view(),
name="admin_problemset_detail_api",
),
path(
"problemset/<int:problem_set_id>/problems/",
ProblemSetProblemAdminAPI.as_view(),
name="admin_problemset_problems_api",
),
path(
"problemset/<int:problem_set_id>/problems/<int:problem_id>/",
ProblemSetProblemAdminAPI.as_view(),
name="admin_problemset_problem_detail_api",
),
# 管理员奖章管理API
path(
"problemset/<int:problem_set_id>/badges/",
ProblemSetBadgeAdminAPI.as_view(),
name="admin_problemset_badges_api",
),
path(
"problemset/<int:problem_set_id>/badges/<int:badge_id>/",
ProblemSetBadgeAdminAPI.as_view(),
name="admin_problemset_badge_detail_api",
),
# 管理员进度管理API
path(
"problemset/<int:problem_set_id>/progress/",
ProblemSetProgressAdminAPI.as_view(),
name="admin_problemset_progress_api",
),
path(
"problemset/<int:problem_set_id>/progress/<int:user_id>/",
ProblemSetProgressAdminAPI.as_view(),
name="admin_problemset_progress_detail_api",
),
# 题单状态管理API
path(
"problemset/visible/",
ProblemSetVisibleAPI.as_view(),
name="admin_problemset_visible_api",
),
path(
"problemset/status/",
ProblemSetStatusAPI.as_view(),
name="admin_problemset_status_api",
),
]

54
problemset/urls/oj.py Normal file
View File

@@ -0,0 +1,54 @@
from django.urls import path
from problemset.views.oj import (
ProblemSetAPI,
ProblemSetDetailAPI,
ProblemSetProblemAPI,
ProblemSetProgressAPI,
UserBadgeAPI,
UserProgressAPI,
ProblemSetBadgeAPI,
)
urlpatterns = [
# 题单相关API
path("api/problemset/", ProblemSetAPI.as_view(), name="problemset_api"),
path(
"api/problemset/<int:problem_set_id>/",
ProblemSetDetailAPI.as_view(),
name="problemset_detail_api",
),
path(
"api/problemset/<int:problem_set_id>/problems/",
ProblemSetProblemAPI.as_view(),
name="problemset_problems_api",
),
path(
"api/problemset/<int:problem_set_id>/problems/<int:problem_id>/",
ProblemSetProblemAPI.as_view(),
name="problemset_problem_detail_api",
),
# 进度相关API
path(
"api/problemset/progress/",
ProblemSetProgressAPI.as_view(),
name="problemset_progress_api",
),
path(
"api/problemset/<int:problem_set_id>/progress/",
ProblemSetProgressAPI.as_view(),
name="problemset_progress_detail_api",
),
path("api/user/progress/", UserProgressAPI.as_view(), name="user_progress_api"),
# 奖章相关API
path("api/user/badges/", UserBadgeAPI.as_view(), name="user_badges_api"),
path(
"api/user/badges/<int:badge_id>/",
UserBadgeAPI.as_view(),
name="user_badge_detail_api",
),
path(
"api/problemset/<int:problem_set_id>/badges/",
ProblemSetBadgeAPI.as_view(),
name="problemset_badges_api",
),
]