diff --git a/maraudes/notes.py b/maraudes/notes.py index 2ae9c1d..598532b 100644 --- a/maraudes/notes.py +++ b/maraudes/notes.py @@ -18,10 +18,9 @@ class Observation(Note): verbose_name = "Observation" def __str__(self): - return "" % self.sujet + return "%s" % self.sujet - def get_date(self): - return self.rencontre.date - - def get_header(self): - return ('Rencontre', [self.rencontre.lieu, "%smin" % self.rencontre.duree]) + def save(self, *args, **kwargs): + if not self.created_date: + self.created_date = self.rencontre.date + return super().save(*args, **kwargs) diff --git a/notes/admin.py b/notes/admin.py index ab1dc34..c1a6ee4 100644 --- a/notes/admin.py +++ b/notes/admin.py @@ -6,5 +6,5 @@ from .models import * @admin.register(Note) class NoteAdmin(admin.ModelAdmin): - list_display = ['id', 'sujet'] - list_filter = ('sujet',) + list_display = ['created_date', 'sujet'] + list_filter = ('sujet', 'created_date', 'created_by') diff --git a/notes/models.py b/notes/models.py index 7a3bec0..6e150a6 100644 --- a/notes/models.py +++ b/notes/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.utils.html import format_html class Note(models.Model): """ Note relative à un sujet. @@ -15,25 +16,51 @@ class Note(models.Model): blank=True, null=True ) - #date_created = models.DateField('Crée le') - + created_date = models.DateField('Crée le', blank=True, null=True) def as_table(self): - pass + html = format_html( +"{} {}\ +{}\ +\n{}", + self.sujet, + self.created_date, + self.created_by, + self.text + ) + return html - def get_header(self): - """ Informations included in headers """ - return ('Note', []) + def as_inline_table(self): + html = format_html( +"{} {} \n\ +{}\n\ +{}", + self.subclass.__qualname__, + self.created_date, + self.created_by, + self.text + ) + return html - def get_date(self): - raise NotImplementedError - - def header_label(self): - return self.get_header()[0] - - def header_infos(self): - return self.get_header()[1] + def _get_child_and_subclass(self): + self._child_instance = None + self._subclass = None + for f in self._meta.get_fields(): + if f.is_relation and f.one_to_one: + self._child_instance = getattr(self, f.name) + self._subclass = self._child_instance.__class__ + return @property - def date(self): - return self.get_date() + def subclass(self): + if not hasattr(self, '_subclass'): + self._get_child_and_subclass() + return self._subclass + + def cast(self): + if not hasattr(self, '_child_instance'): + self._get_child_and_subclass() + return self._child_instance + + def __str__(self): + return "%s of %s" % (self.subclass.__qualname__, self.created_by) diff --git a/suivi/templates/suivis/details.html b/suivi/templates/suivis/details.html deleted file mode 100644 index 5516c8e..0000000 --- a/suivi/templates/suivis/details.html +++ /dev/null @@ -1,9 +0,0 @@ - - -
-
{% include "suivis/sujet_suivi.html" %}
-
{% include "sujets/sujet_details_inner.html" %}
-
diff --git a/suivi/templates/suivis/index.html b/suivi/templates/suivis/index.html deleted file mode 100644 index 6ad660b..0000000 --- a/suivi/templates/suivis/index.html +++ /dev/null @@ -1,19 +0,0 @@ -
-
-
Sujets
- -
-
- -{% if user.is_superuser %} -
-
-
Administration
- -
-
-{% endif %} diff --git a/suivi/templates/suivis/sujet_suivi.html b/suivi/templates/suivis/sujet_suivi.html deleted file mode 100644 index 13979d5..0000000 --- a/suivi/templates/suivis/sujet_suivi.html +++ /dev/null @@ -1,14 +0,0 @@ -
- - {% for note in notes %} - - -{% endfor %} -
{{note.date}} -
-{{ note.header_label }} -{% for info in note.header_infos %}{{ info }} -{%endfor%} -
-
{{note.note}}
-
diff --git a/suivi/views.py b/suivi/views.py index 62b1bc0..0a2d63c 100644 --- a/suivi/views.py +++ b/suivi/views.py @@ -17,16 +17,16 @@ class SuivisView(views.WebsiteProtectedMixin): class IndexView(SuivisView, generic.TemplateView): - template_name = "suivis/index.html" + template_name = "suivi/index.html" header_small = "Tableau de bord" class SuiviSujetView(SuivisView, generic.DetailView): model = Sujet - template_name = "suivis/details.html" + template_name = "suivi/details.html" context_object_name = "sujet" - def get_context_date(self, **kwargs): - context = super().get_context_data(**kwargs) + def get_context_data(self, *args, **kwargs): + context = super().get_context_data(*args, **kwargs) context['notes'] = self.object.notes.all() return context