@@ -70,14 +70,38 @@ def get_links(
7070
7171
7272class ProblemTable (Table ):
73- fields = ["number" , "name" , "points_publicly_visible" ]
73+ fields = ["number" , "name" , "grading_status" , " points_publicly_visible" ]
7474 labels = {
7575 "name" : "Názov" ,
7676 "number" : "č." ,
77+ "grading_status" : "Opravené" ,
7778 "points_publicly_visible" : "Zverejnené body" ,
7879 }
7980 templates = {"points_publicly_visible" : "tables/fields/boolean.html" }
8081
82+ def get_grading_status_content (self , object : Problem ):
83+ from seminare .submits .models import FileSubmit
84+
85+ if FileSubmit not in object .accepted_submit_classes :
86+ return "-"
87+
88+ rule_engine = object .problem_set .get_rule_engine ()
89+ enrollments = rule_engine .get_enrollments ()
90+
91+ submits = rule_engine .get_enrollments_problems_effective_submits (
92+ FileSubmit , enrollments , [object ]
93+ ).values_list ("enrollment_id" , "score" )
94+
95+ total = set ()
96+ graded = set ()
97+
98+ for eid , score in submits :
99+ total .add (eid )
100+ if score is not None :
101+ graded .add (eid )
102+
103+ return f"{ len (graded )} / { len (total )} " if total else "0 / 0"
104+
81105 def get_links (
82106 self , object : Problem , context : dict
83107 ) -> list [tuple [str , str ] | tuple [str , str , str ]]:
0 commit comments