diff --git a/maraudes/templates/maraudes/index.html b/maraudes/templates/maraudes/index.html index 9c7ff65..43819c0 100644 --- a/maraudes/templates/maraudes/index.html +++ b/maraudes/templates/maraudes/index.html @@ -26,6 +26,9 @@ {% if derniers_sujets_rencontres %} {% table derniers_sujets_rencontres cols=3 cell_template="maraudes/table_cell_derniers_sujets.html" header="Ces derniers temps..." %} {% endif %} + {% if derniers_sujets_signales %} + {% table derniers_sujets_signales cols=3 cell_template="maraudes/table_cell_derniers_signalements.html" header="Signalements récents" %} + {% endif %} {% if user.is_superuser and missing_cr %} diff --git a/maraudes/templates/maraudes/table_cell_derniers_signalements.html b/maraudes/templates/maraudes/table_cell_derniers_signalements.html new file mode 100644 index 0000000..2dc8c1c --- /dev/null +++ b/maraudes/templates/maraudes/table_cell_derniers_signalements.html @@ -0,0 +1 @@ +{{ object.sujet }} diff --git a/maraudes/views.py b/maraudes/views.py index a70c4ca..addf698 100644 --- a/maraudes/views.py +++ b/maraudes/views.py @@ -17,6 +17,7 @@ from .models import ( Maraude, Maraudeur, CompteRendu, Rencontre, Lieu, Planning, ) +from .notes import Signalement # Forms from .forms import ( RencontreForm, ObservationInlineFormSet, @@ -35,6 +36,31 @@ def derniers_sujets_rencontres(): return list(sujets) +def derniers_sujets_signales(): + def recent_filter(qs): + NUMBER_OF_MONTH_BACKWARDS = 1 # Must be lower than 12 ! + + current_date = timezone.localtime(timezone.now()).date() + recent_dates = [(current_date.month, current_date.year)] + + for i in range(1, NUMBER_OF_MONTH_BACKWARDS + 1): + prev_month, prev_year = current_date.month - i, current_date.year + if prev_month <= 0: + prev_month += 12 + prev_year -= 1 + recent_dates.append( + (prev_month, prev_year) + ) + + # Select recent ones + filtered = [] + for month, year in recent_dates: + filtered += list(qs.filter(created_date__year=year, created_date__month=month)) + + return filtered + + return recent_filter(Signalement.objects.all()) + class IndexView(NoteFormMixin, MaraudeurMixin, generic.TemplateView): @@ -58,6 +84,7 @@ class IndexView(NoteFormMixin, MaraudeurMixin, generic.TemplateView): context = super().get_context_data(**kwargs) context['prochaine_maraude'] = Maraude.objects.get_next_of(self.request.user) context['derniers_sujets_rencontres'] = derniers_sujets_rencontres() + context['derniers_sujets_signales'] = derniers_sujets_signales() if self.request.user.is_superuser: context['missing_cr'] = CompteRendu.objects.get_queryset().filter(