Commit Graph

42 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
989b33d827 refactor: 移除 2FA 功能与三个冗余依赖
2FA 早已是死代码:TOTP 相关端点标注为前端未调用,前端唯一的
two_factor_auth 是硬编码 false,没有任何入口能打开它。

- 删除 TwoFactorAuthAPI、CheckTFARequiredAPI、_totp* 辅助函数、
  TwoFactorAuthCodeSerializer 及各 serializer 的 tfa_code 字段
- 删除管理端写 two_factor_auth/tfa_token 的分支。登录已不再校验
  TOTP,若保留写入路径,置 True 会变成静默的安全降级
- 删除 User.two_factor_auth / tfa_token 字段(迁移 0009)
- 移除 django-dbconn-retry:仅挂在 INSTALLED_APPS,代码零引用。
  DATABASES 未配置 CONN_MAX_AGE(默认 0),本就没有持久连接需要
  重连修复。要开持久连接用 Django 自带的 CONN_HEALTH_CHECKS
- requests 换成 httpx(openai 已经引入):删除废弃的
  ReleaseNotesAPI,judge dispatcher 显式传 timeout=None 以保持
  requests 原本的无超时行为,判题请求是同步等结果的

依赖净减 5 个:otpauth、qrcode、requests、charset-normalizer、
django-dbconn-retry

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:00:45 -06:00
502078b51b update 2026-08-05 08:18:02 -06:00
7974d12475 build: move ruff from dev to main dependencies (needed at runtime for code formatting)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:05:12 -06:00
0764946c17 add wc 2026-06-03 07:19:57 -06:00
57c0572fd9 async 2026-05-26 21:25:26 -06:00
8731012f47 use asgi 2026-05-26 07:37:05 -06:00
ed8a2f575f update 2026-05-25 21:57:38 -06:00
ae372b4ee1 fix pip 2026-05-05 07:43:25 -06:00
0fd7dedea6 update deps 2026-05-05 07:23:59 -06:00
f2b046c650 update 2025-12-20 22:04:03 +08:00
22d4a9057b add ws 2025-10-07 17:03:14 +08:00
6e1e3ef0c6 新增AI分析 2025-09-24 01:02:29 +08:00
92adfd5415 update 2025-06-13 18:55:38 +08:00
yuetsh
5a8fb8d81a remove pytz 2024-06-11 15:07:48 +08:00
6cf7087339 update Django to v5 2024-06-05 17:40:45 +08:00
bf906fcf25 update python deps 2024-06-04 18:48:19 +08:00
Mikucat
954463f9fd chore: update denpendencies 2024-04-04 15:37:43 +08:00
Beichi-CHs
af641dd421 fix useless escape symbol 2021-11-19 00:26:42 +08:00
Beichi-CHs
3754fa2542 upgrade build configration 2021-11-18 12:38:49 +08:00
virusdefender
ece38de1d5 database connection retry 2019-03-26 10:02:49 +08:00
virusdefender
a5f0c8eb31 remove celery and use dramatiq 2019-03-11 17:59:24 +08:00
virusdefender
6b7654a0c3 update to django 2.0 2019-03-11 11:25:10 +08:00
zimo.zhang
50c8487a50 fix requirement warning 2018-07-15 12:35:14 +08:00
virusdefender
3c70ecbd19 add sentry 2017-12-24 11:01:33 +08:00
zema1
e8b06f0487 add generate user api 2017-11-18 08:26:41 +08:00
zema1
e8841eae82 add dockerfiles 2017-10-23 20:59:44 +08:00
zema1
1b0952cd0d update settings 2017-10-23 10:47:26 +08:00
zema1
5d03ec5aab add pick one api 2017-10-21 20:39:39 +08:00
zema1
1e4ede6d1a 大幅优化数据库查询, 升级django至1.11 LTS, 升级python至3.6.2 2017-08-29 19:35:22 +08:00
zemal
b05f864106 Merge branch 'chiaki_dev' into zemal_dev
* chiaki_dev:
  fix ci
  Add submission module

# Conflicts:
#	requirements.txt
2017-05-09 14:41:26 +08:00
Chiaki
4dd52f6727 fix ci 2017-05-08 17:31:16 +08:00
virusdefender
8128e076f2 format code 2017-04-19 01:37:10 +08:00
Chiaki
ee05af8e5a Add sso and 2fa api 2017-04-18 15:19:26 +08:00
Chiaki
1a4cb9332e Fix deploy requirements.txt 2017-04-18 14:42:28 +08:00
Chiaki
2c4518e803 Fix deploy requirements.txt 2017-04-18 14:40:36 +08:00
virusdefender
33f8a6c5a3 add create and get contest list api 2017-01-26 12:33:00 +08:00
virusdefender
b5e48bb8da add coverage 2017-01-24 13:28:32 +08:00
virusdefender
d1e505dc24 add timezone in user profile 2017-01-24 13:21:49 +08:00
virusdefender
32c1b89080 flake8 2017-01-23 16:25:14 +08:00
virusdefender
3e42e6648e reinit 2017-01-23 16:01:56 +08:00
virusdefender
2f77be5c4b dev deploy 2016-10-30 12:56:47 +08:00