From 6b19d0e8b825436832a384d7f1797bf07246516f Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Mon, 3 Jan 2022 15:31:54 +0000 Subject: [PATCH] Fix has_required_levels logic being backward --- training/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/training/models.py b/training/models.py index 1190aaec..d005e651 100644 --- a/training/models.py +++ b/training/models.py @@ -202,7 +202,8 @@ class TrainingLevel(models.Model, RevisionMixin): def user_has_requirements(self, user): has_required_items = all(TrainingItem.user_has_qualification(req.item, user, req.depth) for req in self.requirements.all()) - has_required_levels = not self.prerequisite_levels.all().exists() or set(user.level_qualifications.values_list('level', flat=True)).issubset(set(self.prerequisite_levels.all())) + # Always true if there are no prerequisites, otherwise get a set of prerequsite IDs and check if they are a subset of the set of qualification IDs + has_required_levels = not self.prerequisite_levels.all().exists() or set(self.prerequisite_levels.values_list('pk', flat=True)).issubset(set(user.level_qualifications.values_list('level', flat=True))) return has_required_items and has_required_levels def __str__(self):