diff options
author | Alban Gruin | 2017-01-27 22:48:47 +0100 |
---|---|---|
committer | Alban Gruin | 2017-01-27 22:48:47 +0100 |
commit | 5c52392e274757c09b05f62581c52a197cb51ce6 (patch) | |
tree | 2fab92af6f347db64eeb521b79ea4edd07340043 /models.py | |
parent | 0253cd15092b580eecc7a711a2070920b2a90d66 (diff) |
Création de différentes classes permettant d'effectuer un group by simple
* GroupedCompiler rajoute une étape à get_group_by() pour insérer de manière simple les champs à
grouper
* GroupedQuery rajoute une liste stockant les champs à grouper
* GroupedQuerySet implémente la fonction group_by()
* GroupedManager change le type de QuerySet par défaut pour GroupedQuerySet
Le manager des cours se base sur GroupedManager
Diffstat (limited to 'models.py')
-rw-r--r-- | models.py | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -2,6 +2,8 @@ from django.db import models from django.db.models import Q from django.utils.text import slugify +from .db import GroupedManager + import hashlib import os @@ -107,7 +109,7 @@ class Room(models.Model): verbose_name_plural = "salles" -class CourseManager(models.Manager): +class CourseManager(GroupedManager): def get_courses_for_group(self, group, **filters): return self.get_queryset().filter(Q(groups__td__isnull=True) | Q(groups__td=group.td), Q(groups__tp__isnull=True) | Q(groups__tp=group.tp), groups__mention=group.mention, groups__subgroup=group.subgroup, **filters).order_by("begin") |