diff --git a/maraudes/templates/maraudes/panel_dernieres_maraudes.html b/maraudes/templates/maraudes/panel_dernieres_maraudes.html
new file mode 100644
index 0000000..fa62a11
--- /dev/null
+++ b/maraudes/templates/maraudes/panel_dernieres_maraudes.html
@@ -0,0 +1,16 @@
+{% if dernieres_maraudes %}
+
{% endif %}
diff --git a/maraudes/views.py b/maraudes/views.py
index e13a2f1..44442e7 100644
--- a/maraudes/views.py
+++ b/maraudes/views.py
@@ -12,6 +12,7 @@ from .models import ( Maraude, Maraudeur,
Rencontre, Lieu,
Planning, )
from .compte_rendu import CompteRendu
+from notes.models import Note
# Forms
from django import forms
from django.forms import inlineformset_factory, modelformset_factory, modelform_factory
@@ -29,11 +30,7 @@ class MaraudesView(views.WebsiteProtectedMixin):
permissions = ['maraudes.view_maraudes']
-class IndexView(MaraudesView, generic.TemplateView):
- header = "La Maraude"
- header_small = "Tableau de bord"
-
- template_name = "maraudes/index.html"
+class DerniereMaraudeMixin(object):
count = 5
@cached_property
def dernieres_maraudes(self):
@@ -49,9 +46,16 @@ class IndexView(MaraudesView, generic.TemplateView):
context['dernieres_maraudes'] = self.dernieres_maraudes
return context
+class IndexView(MaraudesView, DerniereMaraudeMixin, generic.TemplateView):
+ header = "La Maraude"
+ header_small = "Tableau de bord"
+
+ template_name = "maraudes/index.html"
+
+
## MARAUDES
-class MaraudeDetailsView(MaraudesView, generic.DetailView):
+class MaraudeDetailsView(MaraudesView, DerniereMaraudeMixin, generic.DetailView):
model = Maraude
context_object_name = "maraude"
template_name = "maraudes/details.html"
@@ -62,6 +66,11 @@ class MaraudeDetailsView(MaraudesView, generic.DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
+ context['notes'] = Note.objects.get_queryset().filter(
+ created_date=self.object.date
+ ).order_by(
+ 'created_time'
+ )
context['compte_rendu'] = CompteRendu.objects.get(pk=self.object.pk)
return context
diff --git a/notes/managers.py b/notes/managers.py
new file mode 100644
index 0000000..88c1c24
--- /dev/null
+++ b/notes/managers.py
@@ -0,0 +1,9 @@
+from django.db.models import Manager
+
+class NoteManager(Manager):
+
+ def by_date(self):
+ return self.get_queryset().order_by('created_date')
+
+ def by_time(self):
+ return self.get_queryset().order_by('created_time')
diff --git a/notes/models.py b/notes/models.py
index 45af202..1bfc61c 100644
--- a/notes/models.py
+++ b/notes/models.py
@@ -1,6 +1,8 @@
from django.db import models
from django.utils.html import format_html
+from . import managers
+
class Note(models.Model):
""" Note relative à un sujet.
@@ -13,6 +15,8 @@ class Note(models.Model):
"""
+ objects = managers.NoteManager()
+
sujet = models.ForeignKey(
'sujets.Sujet',
related_name="notes",
@@ -25,11 +29,12 @@ class Note(models.Model):
null=True
)
created_date = models.DateField('Crée le', blank=True, null=True)
-
+ created_time = models.TimeField('Heure', blank=True, null=True)
def save(self, *args, **kwargs):
- if not self.created_date: # Retrieve from child class instance
- self.created_date = self.cast().get_date()
+ child_instance = self.cast()
+ self.created_date = child_instance.note_date()
+ self.created_time = child_instance.note_time()
return super().save(*args, **kwargs)
def _get_child_class_and_instance(self):
@@ -68,7 +73,7 @@ class Note(models.Model):
setattr(self,
private_name,
# Call *child instance* method
- getattr(self.cast(), 'get_%s' % name)()
+ getattr(self.cast(), 'note_%s' % name)()
)
return getattr(self, private_name)
return getter
diff --git a/notes/templates/notes/table_inline.html b/notes/templates/notes/table_inline.html
index 7520bc9..87790c8 100644
--- a/notes/templates/notes/table_inline.html
+++ b/notes/templates/notes/table_inline.html
@@ -3,7 +3,7 @@
{{header}} {{small}}
{% for label in labels %}
- {{label}}
+ {{label}}
{% endfor %}
diff --git a/notes/templatetags/notes.py b/notes/templatetags/notes.py
index a6a48e9..eb63476 100644
--- a/notes/templatetags/notes.py
+++ b/notes/templatetags/notes.py
@@ -5,10 +5,21 @@ from django import template
register = template.Library()
@register.inclusion_tag("notes/table_inline.html")
-def inline_table(note):
+def inline_table(note, header=None):
bg_color, bg_label_color = note.bg_colors
+
+ if not header:
+ header = "date"
+ if not header in ['sujet', 'date']:
+ raise ValueError('header must be "sujet" or "date"')
+
+ if header == "date":
+ header_field = "created_date"
+ elif header == "sujet":
+ header_field = "sujet"
+
return {
- 'header': note.created_date,
+ 'header': getattr(note, header_field),
'small': note.child_class.__qualname__,
'bg_color': bg_color or "default",
'bg_label_color': bg_label_color or "info",
diff --git a/suivi/templates/suivi/sujet_suivi.html b/suivi/templates/suivi/sujet_suivi.html
index e0bb206..c70a2dc 100644
--- a/suivi/templates/suivi/sujet_suivi.html
+++ b/suivi/templates/suivi/sujet_suivi.html
@@ -1,8 +1,13 @@
{% load notes %}
+
+
Notes
+ Total : {{ notes.count }}
+
{% for note in notes %}
{% inline_table note %}
{% endfor %}
+