forked from DGNum/gestioCOF
Grod commit dégueux avec une tonne de trucs. Berk.
This commit is contained in:
parent
d5b3d3f958
commit
64b8ee4133
17 changed files with 536 additions and 209 deletions
68
bda/admin.py
68
bda/admin.py
|
@ -4,7 +4,7 @@ from django.core.mail import send_mail
|
|||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from django.contrib import admin
|
||||
from django.db.models import Sum
|
||||
from django.db.models import Sum, Count
|
||||
from bda.models import Spectacle, Salle, Participant, ChoixSpectacle, Attribution
|
||||
|
||||
class ChoixSpectacleInline(admin.TabularInline):
|
||||
|
@ -17,13 +17,18 @@ class AttributionInline(admin.TabularInline):
|
|||
class ParticipantAdmin(admin.ModelAdmin):
|
||||
#inlines = [ChoixSpectacleInline]
|
||||
inlines = [AttributionInline]
|
||||
def queryset(self, request):
|
||||
return Participant.objects.annotate(nb_places = Count('attributions'),
|
||||
total = Sum('attributions__price'))
|
||||
def nb_places(self, obj):
|
||||
return len(obj.attribution_set.all())
|
||||
return obj.nb_places
|
||||
nb_places.admin_order_field = "nb_places"
|
||||
nb_places.short_description = "Nombre de places"
|
||||
def total(self, obj):
|
||||
tot = obj.attributions.aggregate(total = Sum('price'))['total']
|
||||
tot = obj.total
|
||||
if tot: return u"%.02f €" % tot
|
||||
else: return u"0 €"
|
||||
total.admin_order_field = "total"
|
||||
total.short_description = "Total à payer"
|
||||
list_display = ("user", "nb_places", "total", "paid", "paymenttype")
|
||||
list_filter = ("paid",)
|
||||
|
@ -56,7 +61,7 @@ Voici tes choix de spectacles tels que notre système les a enregistrés :\n\n""
|
|||
Artistiquement,
|
||||
Le BdA"""
|
||||
send_mail ("Choix de spectacles (BdA du COF)", mail,
|
||||
"bda@clipper.ens.fr", [member.user.email],
|
||||
"bda@ens.fr", [member.user.email],
|
||||
fail_silently = True)
|
||||
count = len(queryset.all())
|
||||
if count == 1:
|
||||
|
@ -81,35 +86,48 @@ pour les spectacles suivants :
|
|||
%s
|
||||
|
||||
*Paiement*
|
||||
Ces spectacles sont à régler avant le vendredi 19 Octobre, pendant les
|
||||
heures de permanences du COF (tous les jours de la semaine entre 12h et
|
||||
14h, et entre 18h et 20h). Des facilités de paiement sont bien évidemment
|
||||
possibles (encaissement échelonné des chèques).
|
||||
L'intégralité de ces places de spectacles est à régler à partir du jeudi
|
||||
10 octobre et AVANT le mercredi 23 octobre, au bureau du COF pendant les
|
||||
heures de permanences (du lundi au vendredi entre 12h et 14h, et entre 18h
|
||||
et 20h). Des facilités de paiement sont bien évidemment possibles : nous
|
||||
pouvons ne pas encaisser le chèque immédiatement, ou bien découper votre
|
||||
paiement en deux fois.
|
||||
|
||||
*Mode de retrait des places*
|
||||
Pour l'Opéra de Paris, le théâtre de la Colline et le théâtre du Châtelet,
|
||||
les places sont à retirer au COF le jour du paiement.
|
||||
Au moment du paiement, une enveloppe vous sera remise, contenant les
|
||||
places pour l'Opéra de Paris, pour les premiers spectacles de la Comédie
|
||||
française, certains spectacles du Châtelet et du Théâtre de la Ville.
|
||||
|
||||
Pour les concerts Radio France, le théâtre des Champs-Élysées et la Salle
|
||||
Pleyel, les places seront nominatives et à retirer au théâtre le soir de
|
||||
la représentation au moins une demi-heure avant le début du spectacle.
|
||||
Pour les concerts Radio France, le Théâtre des Champs-Élysées, le théâtre
|
||||
du Rond-Point, le théâtre de la Colline, le théâtre de l'Athénée, l'IRCAM,
|
||||
la Cité de la musique et le 104, le Studio-Théâtre de la Comédie
|
||||
française, les places seront nominatives et à retirer au théâtre le soir
|
||||
de la représentation au moins une demi-heure avant le début du spectacle.
|
||||
|
||||
Pour le théâtre de l'Odéon, la Comédie Française, le théâtre de la Ville,
|
||||
le théâtre de Chaillot et l'IRCAM, les places seront distribuées dans vos
|
||||
casiers environ une semaine avant la représentation (un mail vous en
|
||||
avertira).
|
||||
Pour le théâtre de l'Odéon, la salle Richelieu le théâtre du Vieux
|
||||
colombier de la Comédie française, certains spectacles du théâtre de la
|
||||
Ville et du théâtre de Châtelet ainsi que pour le théâtre de Chaillot, les
|
||||
places seront distribuées environ une semaine avant la représentation (un
|
||||
mail vous en avertira).
|
||||
|
||||
Culturellement vôtre,
|
||||
Nous vous rappelons que l'obtention de places du BdA vous engage à
|
||||
respecter les règles de fonctionnement :
|
||||
http://www.cof.ens.fr/bda/?page_id=1370
|
||||
Le système de revente des places via les mails BdA-revente sera très
|
||||
prochainement disponible, directement sur votre compte GestioCOF.
|
||||
|
||||
En vous souhaitant de très beaux spectacles tout au long de l'année,
|
||||
--
|
||||
Le BdA"""
|
||||
Le Bureau des Arts
|
||||
(Chloé, Emilie, Jaime, Maxime, Olivier)
|
||||
"""
|
||||
attribs_text = ""
|
||||
name = member.user.get_full_name()
|
||||
for attrib in attribs:
|
||||
attribs_text += u"- 1 place pour %s\n" % attrib
|
||||
mail = mail % (name, attribs_text)
|
||||
send_mail ("Places de spectacle (BdA du COF)", mail,
|
||||
"bda@clipper.ens.fr", [member.user.email],
|
||||
send_mail ("Résultats du tirage au sort", mail,
|
||||
"bda@ens.fr", [member.user.email],
|
||||
fail_silently = True)
|
||||
count = len(queryset.all())
|
||||
if count == 1:
|
||||
|
@ -136,7 +154,13 @@ class ChoixSpectacleAdmin(admin.ModelAdmin):
|
|||
list_filter = ("double", "autoquit")
|
||||
search_fields = ('participant__user__username', 'participant__user__first_name', 'participant__user__last_name')
|
||||
|
||||
admin.site.register(Spectacle)
|
||||
class SpectacleAdmin(admin.ModelAdmin):
|
||||
model = Spectacle
|
||||
list_display = ("title", "date", "location", "slots", "price")
|
||||
list_filter = ("location",)
|
||||
search_fields = ("title", "location__name")
|
||||
|
||||
admin.site.register(Spectacle, SpectacleAdmin)
|
||||
admin.site.register(Salle)
|
||||
admin.site.register(Participant, ParticipantAdmin)
|
||||
admin.site.register(Attribution, AttributionAdmin)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue