From 4618b82398ade09d0770492ef1005e7c547a77c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:59:11 +0000 Subject: [PATCH 1/2] Initial plan From 073f9dedbee0c28a5c4752df940f83fd77d967f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:05:14 +0000 Subject: [PATCH 2/2] Fix exception flow: don't include if_has_tag when restrict_to_same_tag is unchecked Agent-Logs-Url: https://github.com/inducer/relate/sessions/0aa84353-e04a-4ba5-aded-c88f012d12a5 Co-authored-by: inducer <352067+inducer@users.noreply.github.com> --- course/views.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/course/views.py b/course/views.py index b9a54c211..fd16ba115 100644 --- a/course/views.py +++ b/course/views.py @@ -1187,13 +1187,11 @@ def grant_exception_stage_3( # {{{ put together access rule if form.cleaned_data["create_access_exception"]: - new_access_rule_json = { + new_access_rule_json: dict[str, object] = { "permissions": [str(p) for p in permissions], - "if_has_tag": ( - session.access_rules_tag - if restricted_to_same_tag else - None) } + if restricted_to_same_tag: + new_access_rule_json["if_has_tag"] = session.access_rules_tag # Ensure that JSON validates, but do not use it. access_rule_ta.validate_python(new_access_rule_json, context=vctx) @@ -1252,15 +1250,13 @@ def grant_exception_stage_3( as_local_time(due_local_naive) .replace(tzinfo=None)) - new_grading_rule_json = { + new_grading_rule_json: dict[str, object] = { "description": descr, "due": due_local_naive, - "if_has_tag": ( - session.access_rules_tag - if restricted_to_same_tag else - None), "generates_grade": form.cleaned_data["generates_grade"], } + if restricted_to_same_tag: + new_grading_rule_json["if_has_tag"] = session.access_rules_tag def transfer_attr(name: str): if form.cleaned_data[name] is not None: