corrected order of observations returned by CompteRendu.get_observations()
This commit is contained in:
@@ -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 """
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user