diff --git a/pedagogy/models.py b/pedagogy/models.py index cf75a1ad..8e40e03d 100644 --- a/pedagogy/models.py +++ b/pedagogy/models.py @@ -51,6 +51,33 @@ class UV(models.Model): """ return user.is_subscribed + def __grade_average_generic(self, field): + comments = self.comments.filter(**{field + "__gte": 0}) + if not comments.exists(): + return -1 + + return int(sum(comments.values_list(field, flat=True)) / comments.count()) + + @cached_property + def grade_global_average(self): + return self.__grade_average_generic("grade_global") + + @cached_property + def grade_utility_average(self): + return self.__grade_average_generic("grade_utility") + + @cached_property + def grade_interest_average(self): + return self.__grade_average_generic("grade_interest") + + @cached_property + def grade_teaching_average(self): + return self.__grade_average_generic("grade_teaching") + + @cached_property + def grade_work_load_average(self): + return self.__grade_average_generic("grade_work_load") + def __str__(self): return self.code diff --git a/pedagogy/templates/pedagogy/uv_detail.jinja b/pedagogy/templates/pedagogy/uv_detail.jinja index 6ddc7c2e..42b02b9c 100644 --- a/pedagogy/templates/pedagogy/uv_detail.jinja +++ b/pedagogy/templates/pedagogy/uv_detail.jinja @@ -14,6 +14,12 @@

{{ object.key_concepts|markdown }}

{% trans %}UV manager: {% endtrans %}{{ object.manager }}

+

{{ object.grade_global_average }}

+

{{ object.grade_utility_average }}

+

{{ object.grade_interest_average }}

+

{{ object.grade_teaching_average }}

+

{{ object.grade_work_load_average }}

+ {% if object.comments.exists() %}

{% trans %}Comments{% endtrans %}

{% for comment in object.comments.all() %}