From 22dc83d595db4f4755ed36d3173c711dce63c5af Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Sun, 2 Jan 2022 10:34:04 +0000 Subject: [PATCH] Do not display qualified levels also as started --- training/models.py | 6 ++++-- training/templates/level_detail.html | 24 ++++++++++++++---------- training/views.py | 3 ++- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/training/models.py b/training/models.py index 6501d1cf..86c795ee 100644 --- a/training/models.py +++ b/training/models.py @@ -12,10 +12,9 @@ class Trainee(Profile, RevisionMixin): class Meta: proxy = True - # TODO remove levels that the user has a qualification in # FIXME use queryset def started_levels(self): - return [level for level in TrainingLevel.objects.all() if level.percentage_complete(self) > 0] + return [level for level in TrainingLevel.objects.all() if level.percentage_complete(self) > 0 and level.pk not in self.level_qualifications.values_list('level', flat=True)] @property def is_supervisor(self): @@ -109,6 +108,9 @@ class TrainingItemQualification(models.Model): else: return "info" + def get_absolute_url(self): + return reverse('trainee_item_detail', kwargs={'pk': self.trainee.pk}) + class Meta: unique_together = ["trainee", "item", "depth"] order_with_respect_to = 'item' diff --git a/training/templates/level_detail.html b/training/templates/level_detail.html index c8d55e13..e7ec7cea 100644 --- a/training/templates/level_detail.html +++ b/training/templates/level_detail.html @@ -96,6 +96,9 @@

Users with this level

+ {% for user in users_with %} + {% user_level_if_present user object as level_qualification %} + {% if forloop.first %} @@ -105,18 +108,19 @@ - {% for user in users_with %} - {% user_level_if_present user object as level_qualification %} - - - - - - {% empty %} - Nobody here but us chickens... - {% endfor %} + {% endif %} + + + + + + {% if forloop.last %}
{{user}}{% if level_qualification.confirmed_on %}

Qualified on {{ level_qualification.confirmed_on }}

{%else%}Unconfirmed{%endif%}
View Profile
{{user}}{% if level_qualification.confirmed_on %}

Qualified on {{ level_qualification.confirmed_on }}

{%else%}Unconfirmed{%endif%}
View Profile
+ {% endif %} + {% empty %} + Nobody here but us chickens... + {% endfor %}
diff --git a/training/views.py b/training/views.py index a36a812b..d19e7d1c 100644 --- a/training/views.py +++ b/training/views.py @@ -51,7 +51,8 @@ class TraineeItemDetail(generic.ListView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - context["page_title"] = "Detailed Training Record for {}".format(models.Trainee.objects.get(pk=self.kwargs['pk'])) + trainee = models.Trainee.objects.get(pk=self.kwargs['pk']) + context["page_title"] = "Detailed Training Record for {}".format(trainee.get_absolute_url(), trainee) return context