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"