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
|
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):
|
class CompteRendu(Maraude):
|
||||||
""" Proxy for Maraude objects.
|
""" Proxy for Maraude objects.
|
||||||
Gives access to related Observation and Rencontre
|
Gives access to related Observation and Rencontre
|
||||||
@@ -21,7 +37,7 @@ class CompteRendu(Maraude):
|
|||||||
observations = []
|
observations = []
|
||||||
for r in self._iter(order=order, reverse=reverse):
|
for r in self._iter(order=order, reverse=reverse):
|
||||||
observations += r.observations.get_queryset()
|
observations += r.observations.get_queryset()
|
||||||
return observations
|
return list(split_by_12h_blocks(observations, field=order))
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
""" Iterates on related 'rencontres' objects using default ordering """
|
""" Iterates on related 'rencontres' objects using default ordering """
|
||||||
|
|||||||
@@ -88,6 +88,8 @@ class IndexView(DerniereMaraudeMixin, generic.TemplateView):
|
|||||||
## MARAUDES
|
## MARAUDES
|
||||||
@webpage
|
@webpage
|
||||||
class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView):
|
class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView):
|
||||||
|
""" Vue détaillé d'un compte-rendu de maraude """
|
||||||
|
|
||||||
model = CompteRendu
|
model = CompteRendu
|
||||||
context_object_name = "maraude"
|
context_object_name = "maraude"
|
||||||
template_name = "maraudes/details.html"
|
template_name = "maraudes/details.html"
|
||||||
@@ -107,6 +109,8 @@ class MaraudeDetailsView(DerniereMaraudeMixin, generic.DetailView):
|
|||||||
|
|
||||||
@webpage
|
@webpage
|
||||||
class MaraudeListView(DerniereMaraudeMixin, generic.ListView):
|
class MaraudeListView(DerniereMaraudeMixin, generic.ListView):
|
||||||
|
""" Vue de la liste des compte-rendus de maraude """
|
||||||
|
|
||||||
model = CompteRendu
|
model = CompteRendu
|
||||||
template_name = "maraudes/liste.html"
|
template_name = "maraudes/liste.html"
|
||||||
paginate_by = 10
|
paginate_by = 10
|
||||||
@@ -125,6 +129,8 @@ class MaraudeListView(DerniereMaraudeMixin, generic.ListView):
|
|||||||
## COMPTE-RENDU DE MARAUDE
|
## COMPTE-RENDU DE MARAUDE
|
||||||
@webpage
|
@webpage
|
||||||
class CompteRenduCreateView(generic.DetailView):
|
class CompteRenduCreateView(generic.DetailView):
|
||||||
|
""" Vue pour la création d'un compte-rendu de maraude """
|
||||||
|
|
||||||
model = CompteRendu
|
model = CompteRendu
|
||||||
template_name = "compte_rendu/compterendu_create.html"
|
template_name = "compte_rendu/compterendu_create.html"
|
||||||
context_object_name = "maraude"
|
context_object_name = "maraude"
|
||||||
@@ -228,7 +234,8 @@ class CompteRenduCreateView(generic.DetailView):
|
|||||||
|
|
||||||
@webpage
|
@webpage
|
||||||
class CompteRenduUpdateView(generic.DetailView):
|
class CompteRenduUpdateView(generic.DetailView):
|
||||||
""" Mettre à jour le compte-rendu de la maraude """
|
""" Vue pour mettre à jour le compte-rendu de la maraude """
|
||||||
|
|
||||||
model = CompteRendu
|
model = CompteRendu
|
||||||
context_object_name = "maraude"
|
context_object_name = "maraude"
|
||||||
template_name = "compte_rendu/compterendu_update.html"
|
template_name = "compte_rendu/compterendu_update.html"
|
||||||
|
|||||||
Reference in New Issue
Block a user