diff --git a/maraudes/managers.py b/maraudes/managers.py index 6e47710..19cc045 100644 --- a/maraudes/managers.py +++ b/maraudes/managers.py @@ -63,10 +63,9 @@ class MaraudeManager(Manager): """ Dernière maraude """ return self.get_past().last() - @cached_property - def in_progress(self): + def get_in_progress(self): """ Retourne la maraude en cours, ou None """ - d, t = timezone.now().date(), timezone.now().time() + d, t = self.today, timezone.localtime(timezone.now()).time() # Prendre le jour précédent s'il est entre minuit et 2h du matin depassement = False @@ -74,12 +73,16 @@ class MaraudeManager(Manager): d = d - datetime.timedelta(days=1) depassement = True - maraude_du_jour = self.get(date=d) - - if maraude_du_jour: + try: + maraude_du_jour = self.get(date=d) if depassement or t >= maraude_du_jour.heure_debut: return maraude_du_jour - return None + else: + return None + except self.model.DoesNotExist: + return None + + diff --git a/maraudes/views.py b/maraudes/views.py index b74fe4f..78c3a28 100644 --- a/maraudes/views.py +++ b/maraudes/views.py @@ -98,14 +98,13 @@ class IndexView(NoteFormMixin, MaraudeurMixin, generic.TemplateView): def redirect_to_current_compterendu(request): - prochaine_maraude = Maraude.objects.get_next_of(request.user) - current_date = timezone.localtime(timezone.now()).date() - if (not prochaine_maraude or - not prochaine_maraude.date == current_date): + maraude_en_cours = Maraude.objects.get_in_progress() + + if not maraude_en_cours: return redirect("maraudes:index") - kwargs = {'pk': prochaine_maraude.pk} - if not prochaine_maraude.est_terminee(): + kwargs = {'pk': maraude_en_cours.pk} + if not maraude_en_cours.est_terminee(): return redirect("maraudes:create", **kwargs) else: return redirect("notes:details-maraude", **kwargs) diff --git a/notes/admin.py b/notes/admin.py index 34853fa..e0d3755 100644 --- a/notes/admin.py +++ b/notes/admin.py @@ -24,5 +24,5 @@ class NoteAdmin(admin.ModelAdmin): 'fields': ['sujet', 'text']}), ] - list_display = ['created_date', 'sujet', 'child_class', 'text'] + list_display = ['created_date', 'sujet', 'cast', 'text'] list_filter = ('created_date', 'created_by') diff --git a/notes/models.py b/notes/models.py index d09e774..b68d63e 100644 --- a/notes/models.py +++ b/notes/models.py @@ -104,11 +104,7 @@ class Note(models.Model): return super().save(*args, **kwargs) def __str__(self): - return "<%s: %s>" % (self.child_class, self.sujet) - - @classmethod - def __str__(cls): - return "<%s>" % cls.__qualname__ + return str(self.sujet) def note_author(self): return None @@ -148,6 +144,8 @@ class Note(models.Model): self._child_class = self._child_instance.__class__ return + + @property def child_class(self): if not hasattr(self, '_child_class'): diff --git a/notes/templates/notes/details_sujet.html b/notes/templates/notes/details_sujet.html index 6143824..3942933 100644 --- a/notes/templates/notes/details_sujet.html +++ b/notes/templates/notes/details_sujet.html @@ -89,13 +89,13 @@ {% block sidebar %} {{ block.super }} -