From 33545b028e7f10f9e1b1481e5a2cdde970cc2537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Fri, 4 Nov 2016 08:35:17 +0100 Subject: [PATCH] Messages et docstrings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajout d'un message à l'aide de `message_user` lorsque les actions sont effectuées - Ajouts de docstrings là où c'est préconisé par pylint. --- bda/admin.py | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/bda/admin.py b/bda/admin.py index 668cc6dd..87a269d4 100644 --- a/bda/admin.py +++ b/bda/admin.py @@ -5,15 +5,15 @@ from __future__ import print_function from __future__ import unicode_literals from django.core.mail import send_mail - from django.contrib import admin from django.db.models import Sum, Count +from django.template.defaultfilters import pluralize +from django.utils import timezone +from django import forms from bda.models import Spectacle, Salle, Participant, ChoixSpectacle,\ Attribution, Tirage, Quote, CategorieSpectacle, SpectacleRevente -from django import forms from datetime import timedelta -from django.utils import timezone import autocomplete_light @@ -212,9 +212,15 @@ class SalleAdmin(admin.ModelAdmin): class SpectacleReventeAdmin(admin.ModelAdmin): + """ + Administration des reventes de spectacles + """ model = SpectacleRevente def spectacle(self, obj): + """ + Raccourci vers le spectacle associé à la revente. + """ return obj.attribution.spectacle list_display = ("spectacle", "seller", "date", "soldTo") @@ -225,17 +231,32 @@ class SpectacleReventeAdmin(admin.ModelAdmin): 'seller__user__first_name', 'seller__user__last_name'] - actions = ['transfer', 'reinit', ] + actions = ['transfer', 'reinit'] actions_on_bottom = True def transfer(self, request, queryset): - for revente in queryset.exclude(soldTo__isnull=True).all(): + """ + Effectue le transfert des reventes pour lesquels on connaît l'acheteur. + """ + reventes = queryset.exclude(soldTo__isnull=True).all() + count = reventes.count() + for revente in reventes: attrib = revente.attribution attrib.participant = revente.soldTo attrib.save() + self.message_user( + request, + "%d attribution%s %s été transférée%s avec succès." % ( + count, pluralize(count), + pluralize(count, "a,ont"), pluralize(count)) + ) transfer.short_description = "Transférer les reventes sélectionnées" def reinit(self, request, queryset): + """ + Réinitialise les reventes. + """ + count = queryset.count() for revente in queryset.all(): revente.date = timezone.now() - timedelta(hours=1) revente.soldTo = None @@ -244,6 +265,12 @@ class SpectacleReventeAdmin(admin.ModelAdmin): if revente.answered_mail: revente.answered_mail.clear() revente.save() + self.message_user( + request, + "%d attribution%s %s été réinitialisée%s avec succès." % ( + count, pluralize(count), + pluralize(count, "a,ont"), pluralize(count)) + ) reinit.short_description = "Réinitialiser les reventes sélectionnées"