diff --git a/maraudes/compte_rendu.py b/maraudes/compte_rendu.py index ebca6ee..001d65a 100644 --- a/maraudes/compte_rendu.py +++ b/maraudes/compte_rendu.py @@ -2,6 +2,22 @@ from .models import Maraude from collections import OrderedDict +import datetime + +def split_by_12h_blocks(iterable, field="heure_debut"): + """ Move object with given 'field' time under 12:00 to the end of stream. + Apart from this, order is untouched. + """ + to_end = [] + for note in iterable: + if getattr(note, "created_time") <= datetime.time(12): + to_end.append(note) + else: + yield note + + for note in to_end: + yield note + class CompteRendu(Maraude): """ Proxy for Maraude objects. Gives access to related Observation and Rencontre @@ -21,7 +37,7 @@ class CompteRendu(Maraude): observations = [] for r in self._iter(order=order, reverse=reverse): observations += r.observations.get_queryset() - return observations + return list(split_by_12h_blocks(observations, field=order)) def __iter__(self): """ Iterates on related 'rencontres' objects using default ordering """ diff --git a/maraudes/views.py b/maraudes/views.py index 5471136..e97828e 100644 --- a/maraudes/views.py +++ b/maraudes/views.py @@ -88,6 +88,8 @@ class IndexView(DerniereMaraudeMixin, generic.TemplateView): ## MARAUDES @webpage class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView): + """ Vue détaillé d'un compte-rendu de maraude """ + model = CompteRendu context_object_name = "maraude" template_name = "maraudes/details.html" @@ -107,6 +109,8 @@ class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView): @webpage class MaraudeListView(DerniereMaraudeMixin, generic.ListView): + """ Vue de la liste des compte-rendus de maraude """ + model = CompteRendu template_name = "maraudes/liste.html" paginate_by = 10 @@ -125,6 +129,8 @@ class MaraudeListView(DerniereMaraudeMixin, generic.ListView): ## COMPTE-RENDU DE MARAUDE @webpage class CompteRenduCreateView(generic.DetailView): + """ Vue pour la création d'un compte-rendu de maraude """ + model = CompteRendu template_name = "compte_rendu/compterendu_create.html" context_object_name = "maraude" @@ -228,7 +234,8 @@ class CompteRenduCreateView(generic.DetailView): @webpage class CompteRenduUpdateView(generic.DetailView): - """ Mettre à jour le compte-rendu de la maraude """ + """ Vue pour mettre à jour le compte-rendu de la maraude """ + model = CompteRendu context_object_name = "maraude" template_name = "compte_rendu/compterendu_update.html"