From fae1cee6478e1afcc1f171f72b2d6f0d9450af5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Fri, 10 Jun 2016 02:00:50 +0200 Subject: [PATCH] Ajout d'un attribu `listing` aux spectacles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Indique si les places sont sur listing ou au contraire sont des places physiques. L'interface admin sépare en deux les spectacles listing/non-listing. --- bda/admin.py | 18 ++++++++++++++++-- bda/models.py | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/bda/admin.py b/bda/admin.py index 8af71d00..064f8482 100644 --- a/bda/admin.py +++ b/bda/admin.py @@ -15,10 +15,24 @@ class ChoixSpectacleInline(admin.TabularInline): class AttributionInline(admin.TabularInline): model = Attribution + extra = 0 + def get_queryset(self, request): + qs = super(AttributionInline, self).get_queryset(request) + return qs.filter(spectacle__listing=False) + +class AttributionInlineListing(admin.TabularInline): + model = Attribution + exclude = ('given', ) + extra = 0 + def get_queryset(self, request): + qs = super(AttributionInlineListing, self).get_queryset(request) + return qs.filter(spectacle__listing=True) class ParticipantAdmin(admin.ModelAdmin): #inlines = [ChoixSpectacleInline] - inlines = [AttributionInline] + inlines = [ + AttributionInline, + AttributionInlineListing] def get_queryset(self, request): return Participant.objects.annotate(nb_places = Count('attributions'), total = Sum('attributions__price')) @@ -124,7 +138,7 @@ class ChoixSpectacleAdmin(admin.ModelAdmin): class SpectacleAdmin(admin.ModelAdmin): model = Spectacle - list_display = ("title", "date", "location", "slots", "price") + list_display = ("title", "date", "location", "slots", "price", "listing") list_filter = ("location",) search_fields = ("title", "location__name") diff --git a/bda/models.py b/bda/models.py index cab8ce41..2b4dfe5d 100644 --- a/bda/models.py +++ b/bda/models.py @@ -37,6 +37,7 @@ class Spectacle(models.Model): slots = models.IntegerField("Places") priority = models.IntegerField("Priorité", default=1000) tirage = models.ForeignKey(Tirage) + listing = models.BooleanField("Les places sont sur listing") class Meta: verbose_name = "Spectacle"