Some more optimizations

This commit is contained in:
cuom1999 2023-02-18 16:38:47 -06:00
parent a9dc97a46d
commit 3f6841932b
9 changed files with 65 additions and 44 deletions

View file

@ -3,34 +3,39 @@ from . import registry
@registry.function
def submission_layout(
submission, profile_id, user, editable_problem_ids, completed_problem_ids
submission,
profile_id,
user,
editable_problem_ids,
completed_problem_ids,
tester_problem_ids,
):
problem_id = submission.problem_id
can_view = False
if problem_id in editable_problem_ids:
can_view = True
return True
if problem_id in tester_problem_ids:
return True
if profile_id == submission.user_id:
can_view = True
return True
if user.has_perm("judge.change_submission"):
can_view = True
return True
if user.has_perm("judge.view_all_submission"):
can_view = True
return True
if submission.problem.is_public and user.has_perm("judge.view_public_submission"):
can_view = True
return True
if submission.problem_id in completed_problem_ids:
can_view |= (
submission.problem.is_public or profile_id in submission.problem.tester_ids
)
if not can_view and hasattr(submission, "contest"):
if hasattr(submission, "contest"):
contest = submission.contest.participation.contest
if contest.is_editable_by(user):
can_view = True
return True
return can_view
if submission.problem_id in completed_problem_ids and submission.problem.is_public:
return True
return False