changed redirect_to_current_compterendu view to use Maraude manager's

get_in_progress(), which is now a method instead of cache property.
+ better display of admin panel's buttons in sujets detail views
This commit is contained in:
artus40
2017-08-28 17:35:56 +02:00
parent 67a04f1c18
commit 0d3798f087
5 changed files with 24 additions and 24 deletions

View File

@@ -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
try:
maraude_du_jour = self.get(date=d)
if maraude_du_jour:
if depassement or t >= maraude_du_jour.heure_debut:
return maraude_du_jour
else:
return None
except self.model.DoesNotExist:
return None

View File

@@ -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)

View File

@@ -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')

View File

@@ -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'):

View File

@@ -89,13 +89,13 @@
{% block sidebar %}
{{ block.super }}
<hr />
{% if user.is_superuser %}
<hr />
<div class="panel panel-primary text-right"><div class="panel-heading"><h4 class="panel-title"><strong>Administration :</strong></h4></div>
<div class="panel-body">
<div class="btn-group" role="group" aria-label="...">
<a href="{% url 'admin:notes_note_changelist' %}?sujet__exact={{sujet.pk}}" class="btn btn-primary">{% bootstrap_icon "wrench" %} Éditer les notes</a>
<a href="{% url 'notes:sujets-merge' pk=object.pk %}" class="btn btn-default">{% bootstrap_icon "paste" %} Fusionner</a>
<div class="panel-body text-center">
<div class="btn-group-vertical" role="group" aria-label="...">
<a href="{% url 'admin:notes_note_changelist' %}?sujet__exact={{sujet.pk}}" class="btn btn-primary">{% bootstrap_icon "pencil" %} Éditer les notes</a>
<a href="{% url 'notes:sujets-merge' pk=object.pk %}" class="btn btn-danger">{% bootstrap_icon "paste" %} Fusionner</a>
</div>
</div>
</div>