Commit Graph

33 Commits

Author SHA1 Message Date
8557f8a5f5 refactor: python-dateutil 换成标准库
- contest 后台创建/编辑:dateutil.parser.parse 换成
  datetime.fromisoformat。serializer 里 start_time/end_time 声明的是
  DateTimeField,而 validate_serializer 做的是 request.data = s.data,
  即重新序列化一遍,所以视图拿到的必定是 DRF 规范化后的 ISO 8601,
  dateutil 的宽容解析能力在这里从来没用上
- AI 学情统计:relativedelta 换成 shift_months 辅助函数,复刻月末
  收缩语义(1月31日 + 1个月 = 2月28/29日)。_parse_duration 的配置
  由 delta 对象改为 rewind/advance 可调用,周档和月档统一

删除依赖:python-dateutil、six

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:05:50 -06:00
f94d29cf93 feat: add Teacher Admin role to four-tier permission system
Introduces a four-tier role system: Regular User → Student Admin →
Teacher Admin → Super Admin. Teacher Admin can manage own contests,
problemsets, and view classroom data. Student Admin (renamed from Admin)
retains problem management only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-02 18:13:33 -06:00
6ab2886f77 remove contest type 2026-05-26 23:10:27 -06:00
57c0572fd9 async 2026-05-26 21:25:26 -06:00
980b803517 feat: update all query filters to treat AST_CHECK_FAILED as accepted
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 20:45:15 -06:00
fdf4bb1ad9 fix 2026-05-21 19:30:22 -06:00
083747c241 fix: use pk=None pattern for problem cloning, consistent with AddContestProblemAPI 2026-05-21 19:24:08 -06:00
9c1b958444 feat: add contest clone API endpoint 2026-05-21 19:21:04 -06:00
028ea6e5f9 fmt 2026-04-23 13:57:56 -06:00
cbe0e297fd update acm helper 2025-10-06 00:06:59 +08:00
a6d76a64c4 重构用户权限 2025-09-25 18:41:23 +08:00
virusdefender
a5f0c8eb31 remove celery and use dramatiq 2019-03-11 17:59:24 +08:00
zema1
03c68419b0 remove restriction when using open api 2018-12-16 10:36:43 +08:00
zema1
7aeec10391 fix error path in download submissions 2018-09-26 17:48:46 +08:00
zema1
c1a4ce147f Added: contest submissions download view 2018-08-28 20:56:03 +08:00
virusdefender
8454b36792 fix permission 2018-01-04 19:39:24 +08:00
zema1
0f9f34df65 支持选取已有题目作为比赛题目 2017-12-03 18:52:32 +08:00
zema1
4c2db34b9d add ACM contest admin helper api 2017-12-03 15:39:02 +08:00
zema1
727fbf48d8 添加contest ip限制api;
OI problem的AC,total count也算入profile了
2017-11-10 20:00:00 +08:00
zema1
37d6dd84ee 修复contest announcement的一些问题 2017-11-06 19:05:21 +08:00
zema1
f0655ee305 全局的announcement api 2017-10-30 15:07:52 +08:00
zema1
d650252a1a separate contest submission and regular submission 2017-09-30 10:26:54 +08:00
zemal
ee49d0a815 添加contest权限验证、contest密码验证api
添加problem、contest单元测试。
2017-07-18 11:18:18 +08:00
virusdefender
8128e076f2 format code 2017-04-19 01:37:10 +08:00
zhanghedr
60ebece853 add contest tests 2017-02-26 23:18:22 -05:00
Howard
e87c567f55 Fix url and admin check in contest (#67)
- Fix url
 - Add contest_announcement get and fix bug
2017-02-16 15:03:31 +08:00
virusdefender
817e5aadae rename some method and add some decorator 2017-02-10 11:46:23 +08:00
virusdefender
02940029ef add contest announcement 2017-01-29 17:04:56 +08:00
virusdefender
5ced3d9ca0 add edit contest api 2017-01-27 23:20:56 +08:00
virusdefender
3150012eb1 add contest search api 2017-01-26 17:59:41 +08:00
virusdefender
5b7aacc6ac allow empty password 2017-01-26 17:06:24 +08:00
virusdefender
27b2c92d8d add contest list api 2017-01-26 13:45:39 +08:00
virusdefender
33f8a6c5a3 add create and get contest list api 2017-01-26 12:33:00 +08:00