added new graph : Rencontre par lieu to 'statistiques' module

This commit is contained in:
artus40
2017-10-25 16:34:22 +02:00
parent 569916abd0
commit 821732af1c
5 changed files with 45 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ from graphos.sources.simple import SimpleDataSource
from graphos.renderers import gchart
from notes.models import Sujet
from .models import GroupeLieux
NOM_MOIS = {
1: "Janvier",
@@ -274,3 +275,24 @@ class RencontreParHeureChart(gchart.AreaChart):
data[intervalle] += 1
return data
class RencontreParLieuChart(PieWrapper):
@property
def labels(self):
for groupe_lieux in GroupeLieux.objects.all():
yield (groupe_lieux.label,
tuple(groupe_lieux.lieux.values_list('pk', flat=True))
)
def get_count_for_group(self, lieu_pks):
return self.queryset.filter(rencontre__lieu__pk__in=lieu_pks).count()
def __init__(self, queryset):
self.queryset = queryset
data = [('Lieu de rencontre', 'Nombre de rencontres')]
if self.queryset:
data += [(label, self.get_count_for_group(lieu_pks)) for label, lieu_pks in self.labels]
super().__init__(data=data,
title="Fréquentation par lieu")