3535from django .utils .translation import gettext as _ , pgettext
3636from pytools import not_none
3737
38- from course .constants import FlowPermission , ParticipationPermission as PPerm
39- from course .content import FlowDesc , get_flow_desc
38+ from course .constants import ParticipationPermission as PPerm
39+ from course .content import get_flow_desc
4040from course .models import FlowPageVisit , FlowSession
4141from course .utils import (
4242 CoursePageContext ,
4949if TYPE_CHECKING :
5050 from collections .abc import Callable
5151
52- from course .page .base import PageBase
5352 from course .utils import CoursePageContext
5453
5554
@@ -235,29 +234,6 @@ def html(self):
235234# }}}
236235
237236
238- def is_flow_multiple_submit (flow_desc : FlowDesc ):
239- return any (FlowPermission .change_answer in rule .permissions
240- for rule in flow_desc .rules .access )
241-
242-
243- def is_page_multiple_submit (flow_desc : FlowDesc , page : PageBase ):
244- result = is_flow_multiple_submit (flow_desc )
245-
246- page_rules = page .access_rules
247- if page_rules is None :
248- return result
249-
250- if result :
251- if FlowPermission .change_answer in page_rules .remove_permissions :
252- result = False
253-
254- else :
255- if FlowPermission .change_answer in page_rules .add_permissions :
256- result = True
257-
258- return result
259-
260-
261237# {{{ flow analytics
262238
263239def make_grade_histogram (pctx : CoursePageContext , flow_id : str ):
@@ -370,7 +346,7 @@ def make_page_answer_stats_list(
370346 .distinct ("flow_session__participation__id" )
371347 .order_by ("flow_session__participation__id" ,
372348 "visit_time" ))
373- elif is_page_multiple_submit ( flow_desc , page_desc ) :
349+ else :
374350 visits = (visits
375351 .distinct ("page_data__id" )
376352 .order_by ("page_data__id" , "-visit_time" ))
@@ -528,9 +504,6 @@ def page_analytics(pctx: CoursePageContext, flow_id: str, group_id: str, page_id
528504 if not pctx .has_permission (PPerm .view_analytics ):
529505 raise PermissionDenied (_ ("may not view analytics" ))
530506
531- flow_desc = get_flow_desc (pctx .repo , pctx .course , flow_id ,
532- pctx .course_commit_sha )
533-
534507 restrict_to_first_attempt = int (
535508 bool (pctx .request .GET .get ("restrict_to_first_attempt" ) == "1" ))
536509
@@ -549,13 +522,11 @@ def page_analytics(pctx: CoursePageContext, flow_id: str, group_id: str, page_id
549522
550523 if connection .features .can_distinct_on_fields :
551524
552- is_multiple_submit = is_flow_multiple_submit (flow_desc )
553-
554525 if restrict_to_first_attempt :
555526 visits = (visits
556527 .distinct ("flow_session__participation__id" )
557528 .order_by ("flow_session__participation__id" , "visit_time" ))
558- elif is_multiple_submit :
529+ else :
559530 visits = (visits
560531 .distinct ("page_data__id" )
561532 .order_by ("page_data__id" , "-visit_time" ))
0 commit comments