diff --git a/RIGS/templatetags/filters.py b/RIGS/templatetags/filters.py index 60f31088..64afbab0 100644 --- a/RIGS/templatetags/filters.py +++ b/RIGS/templatetags/filters.py @@ -191,21 +191,6 @@ def linkornone(target, namespace=None, autoescape=True): return "None" -@register.simple_tag -def user_has_qualification(user, item, depth): - if tmodels.TrainingItem.user_has_qualification(item, user, depth) is not None: - return mark_safe("") - else: - return mark_safe("") - -@register.simple_tag -def user_level_if_present(user, level): - return tmodels.TrainingLevelQualification.objects.filter(trainee=user, level=level).first() - -@register.simple_tag -def percentage_complete(level, user): - return level.percentage_complete(user) - @register.inclusion_tag('partials/button.html') def button(type, url=None, pk=None, clazz="", icon=None, text="", id=None, style=None): if type == 'edit': diff --git a/training/models.py b/training/models.py index 1b94d982..00cb4b2b 100644 --- a/training/models.py +++ b/training/models.py @@ -18,7 +18,7 @@ class Trainee(Profile): return self.qualifications_obtained.filter(depth=depth) def is_user_qualified_in(self, item, required_depth): - qual = self.qualifications_obtained.get(item=item) + qual = self.qualifications_obtained.filter(item=item).first() # this is a somewhat ghetto version of get_or_none return qual is not None and qual.depth >= required_depth # Items @@ -114,9 +114,14 @@ class TrainingLevel(models.Model, RevisionMixin): def percentage_complete(self, user): # FIXME needed_qualifications = self.requirements.all() - relavant_qualifications = [x for x in user.qualifications_obtained.all() if x in self.requirements.all()] + relavant_qualifications = 0.0 + # TODO Efficiency... + for req in needed_qualifications: + if user.is_user_qualified_in(req.item, req.depth): + relavant_qualifications += 1.0 + if len(needed_qualifications) > 0: - return round(len(relavant_qualifications) / len(needed_qualifications)) + return int(relavant_qualifications / float(len(needed_qualifications)) * 100) else: return 0 diff --git a/training/templates/trainee_detail.html b/training/templates/trainee_detail.html index 2abd1df4..ab838696 100644 --- a/training/templates/trainee_detail.html +++ b/training/templates/trainee_detail.html @@ -1,8 +1,8 @@ {% extends 'base_rigs.html' %} -{% load user_has_qualification from filters %} -{% load percentage_complete from filters %} -{% load user_level_if_present from filters %} +{% load user_has_qualification from tags %} +{% load percentage_complete from tags %} +{% load user_level_if_present from tags %} {% block content %}
@@ -22,7 +22,7 @@
{% percentage_complete level object as completion %} -
{{completion}}% complete
+
{{completion}}% complete