Commit Graph

34 Commits

Author SHA1 Message Date
38f92ed911 chore: 删 11 个无引用序列化器;撤回一处误判的"修复"
## 撤回:增删题单题目本来就会重算进度,我诊断错了

上一个 commit 我给 ProblemSetProblemAdminAPI 的 post/delete 加了显式的
sync_all_progress_for_problemset,理由是"增删题目不重算进度"。**那是错的。**

problemset/signals.py 里有 post_save / post_delete 信号接收器,
在 ProblemSetProblem 变化时同步进度**并重算奖章**,且 apps.py 的 ready()
确实导入了 signals。我的显式调用只是让同一件事做两遍。

更该记住的是**为什么当时没发现**:那一版测试只看"进度有没有更新",
而信号和我的调用都会让它更新 —— 分不出是谁干的,所以照样是绿的。
这次的测试改成先撤掉调用再验,并直接断言信号已注册在 post_save/post_delete 上,
这样才真的有区分力。6/6 通过。

同一批修复里的另外 5 条经复核都成立,保留。特别是「移除用户留下孤儿奖章」——
signals.py 里**没有**针对 ProblemSetProgress 的 post_delete,那条必须自己清。

## 删无引用序列化器(-78 行)

全仓 106 个序列化器,11 个无任何引用:

  account:   FileUploadForm, GenerateUserSerializer, SSOSerializer,
             UserChangeEmailSerializer, UserChangePasswordSerializer,
             UsernameOrEmailCheckSerializer
  contest:   CreateContestAnnouncementSerializer, EditContestAnnouncementSerializer
  problem:   CreateProblemCodeTemplateSerializer
  flowchart: FlowchartSubmissionMergedSerializer, FlowchartSubmissionSummarySerializer

前 8 个是上一个 commit 删掉的视图留下的(FileUploadForm 正是
SimditorFileUploadAPIView 用的),后 3 个是原本就死的。
检测器同样做了自检:拿 3 个明确在用的序列化器反测,没有误判。
另外确认这 11 个都没有字符串形式的动态引用。

`ruff check .` 全绿。行尾未被改动(上一轮踩过这个坑,这次脚本里加了断言)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 07:19:02 -06:00
3a9ab83ba5 style: ruff format 全仓库
行宽 180 下把历史遗留的折行表达式合并,无语义改动。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 04:45:26 -06:00
6ab2886f77 remove contest type 2026-05-26 23:10:27 -06:00
9c1b958444 feat: add contest clone API endpoint 2026-05-21 19:21:04 -06:00
c466dfd3c6 change enum 2026-05-09 02:30:47 -06:00
028ea6e5f9 fmt 2026-04-23 13:57:56 -06:00
yuetsh
77cf8db4c4 比赛添加标签 2024-07-01 16:09:27 +08:00
zema1
4c2db34b9d add ACM contest admin helper api 2017-12-03 15:39:02 +08:00
zema1
ee89df9ff2 去除不必要的serializer 2017-12-01 17:19:31 +08:00
zema1
13e3260fd3 添加UserSerailizer admin返回real_name 2017-11-29 14:06:32 +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
zemal
14b850c652 完成ACM ContestProblem相关判题逻辑
contest,submission等表默认-create_time排序
2017-08-01 16:52:48 +08:00
zemal
8b85f86124 reformat code. 2017-07-18 11:25:08 +08:00
zemal
ee49d0a815 添加contest权限验证、contest密码验证api
添加problem、contest单元测试。
2017-07-18 11:18:18 +08:00
zemal
53d0cae8ea contest and contest_problems api.
add ordering for contest and submission models
2017-07-17 21:28:06 +08:00
zemal
ee2f5f5dd7 去掉dataTime的格式化,因为格式化后moment.js不能识别为标准时间 2017-07-15 23:18:07 +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
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
virusdefender
61ab910d53 重构 2016-09-25 14:07:45 +08:00
virusdefender
d7532ad446 增加Special Judge的基础配置和创建Special Judge题目的逻辑 2016-04-04 16:43:43 +08:00
virusdefender
38202b6bf2 增加公开比赛题目的功能 2015-10-29 18:58:21 +08:00
virusdefender
84e776a8b4 修复 contest model 变化带来的部分错误 2015-10-24 13:14:51 +08:00
sxw@401
444cbc4324 添加比赛排名的封榜功能,rank页面从redis中读取排名信息而不是向mysql查询,封榜后redis中的数据便不再更新了 2015-09-12 22:00:24 +08:00
esp
001a4e6bd4 重新修改后台比赛编辑前后端时间不一致问题,修改了后端serializers,通过继承原来的serializer.DateTimeField类替换contestSerilazer中的DateTime.这会影响到contestAdminApi的return,并不影响其他页面.而且通过timezone.local()方法转换时区 2015-08-31 22:04:58 +08:00
esp
f723aa91ad [后端]为比赛problem model添加分数(score)字段,用于记分模式的比赛 2015-08-24 12:21:46 +08:00
virusdefender
1fe35bd6e0 创建了单个比赛的详情页 2015-08-22 20:46:52 +08:00
hohoTT
8b4580d8f6 后端比赛与比赛题目部分已修改完成 2015-08-22 14:00:09 +08:00
hohoTT
53d2b674c9 修改并完善比赛及其他部分的内容及测试 2015-08-21 18:16:34 +08:00
hohoTT
bdf3fa9ed9 后端修改比赛创建部分,同时在models中增加了几个字段 2015-08-18 20:12:27 +08:00
hohoTT
937c382b25 后端比赛和比赛题目的部分,还有要增加和修改的地方 2015-08-18 14:59:00 +08:00