fix
This commit is contained in:
@@ -16,7 +16,6 @@ from .schemas import (
|
|||||||
SubmissionIn,
|
SubmissionIn,
|
||||||
SubmissionOut,
|
SubmissionOut,
|
||||||
RatingScoreIn,
|
RatingScoreIn,
|
||||||
ScoreBucket,
|
|
||||||
TaskStatsOut,
|
TaskStatsOut,
|
||||||
TopSubmission,
|
TopSubmission,
|
||||||
UserTag,
|
UserTag,
|
||||||
@@ -288,27 +287,6 @@ def get_task_stats(request, task_id: int, classname: Optional[str] = None):
|
|||||||
else:
|
else:
|
||||||
dist["count_4_plus"] += 1
|
dist["count_4_plus"] += 1
|
||||||
|
|
||||||
# Score distribution from latest submissions (exclude unrated score=0).
|
|
||||||
# Rating scale is 1-5 stars; one bucket per star level.
|
|
||||||
score_dist = {
|
|
||||||
"range_1_2": 0, "range_2_3": 0, "range_3_4": 0,
|
|
||||||
"range_4_5": 0, "range_5": 0,
|
|
||||||
}
|
|
||||||
for sub in latest_subs:
|
|
||||||
if sub.score == 0:
|
|
||||||
continue
|
|
||||||
s = sub.score
|
|
||||||
if s >= 5:
|
|
||||||
score_dist["range_5"] += 1
|
|
||||||
elif s >= 4:
|
|
||||||
score_dist["range_4_5"] += 1
|
|
||||||
elif s >= 3:
|
|
||||||
score_dist["range_3_4"] += 1
|
|
||||||
elif s >= 2:
|
|
||||||
score_dist["range_2_3"] += 1
|
|
||||||
else:
|
|
||||||
score_dist["range_1_2"] += 1
|
|
||||||
|
|
||||||
# Top 5 submissions by rating count
|
# Top 5 submissions by rating count
|
||||||
top_subs_qs = (
|
top_subs_qs = (
|
||||||
Submission.objects.filter(task=task, user_id__in=student_ids)
|
Submission.objects.filter(task=task, user_id__in=student_ids)
|
||||||
@@ -350,7 +328,6 @@ def get_task_stats(request, task_id: int, classname: Optional[str] = None):
|
|||||||
unsubmitted_users=unsubmitted_users,
|
unsubmitted_users=unsubmitted_users,
|
||||||
unrated_users=unrated_users,
|
unrated_users=unrated_users,
|
||||||
submission_count_distribution=SubmissionCountBucket(**dist),
|
submission_count_distribution=SubmissionCountBucket(**dist),
|
||||||
score_distribution=ScoreBucket(**score_dist),
|
|
||||||
top_submissions=top_submissions,
|
top_submissions=top_submissions,
|
||||||
flag_stats=flag_stats,
|
flag_stats=flag_stats,
|
||||||
classes=all_classes,
|
classes=all_classes,
|
||||||
|
|||||||
@@ -141,14 +141,6 @@ class SubmissionCountBucket(Schema):
|
|||||||
count_4_plus: int # users with 4+ submissions
|
count_4_plus: int # users with 4+ submissions
|
||||||
|
|
||||||
|
|
||||||
class ScoreBucket(Schema):
|
|
||||||
range_1_2: int # [1, 2) ★
|
|
||||||
range_2_3: int # [2, 3) ★★
|
|
||||||
range_3_4: int # [3, 4) ★★★
|
|
||||||
range_4_5: int # [4, 5) ★★★★
|
|
||||||
range_5: int # [5, 5] ★★★★★
|
|
||||||
|
|
||||||
|
|
||||||
class FlagStats(Schema):
|
class FlagStats(Schema):
|
||||||
red: int
|
red: int
|
||||||
blue: int
|
blue: int
|
||||||
@@ -165,7 +157,6 @@ class TaskStatsOut(Schema):
|
|||||||
unsubmitted_users: list[UserTag]
|
unsubmitted_users: list[UserTag]
|
||||||
unrated_users: list[UserTag]
|
unrated_users: list[UserTag]
|
||||||
submission_count_distribution: SubmissionCountBucket
|
submission_count_distribution: SubmissionCountBucket
|
||||||
score_distribution: ScoreBucket
|
|
||||||
top_submissions: list[TopSubmission]
|
top_submissions: list[TopSubmission]
|
||||||
flag_stats: FlagStats
|
flag_stats: FlagStats
|
||||||
classes: list[str]
|
classes: list[str]
|
||||||
|
|||||||
Reference in New Issue
Block a user