forked from DGNum/gestioCOF
creates initial models
This commit is contained in:
parent
3e634e70c1
commit
f44b3fc33c
2 changed files with 43 additions and 1 deletions
21
bda/admin.py
21
bda/admin.py
|
@ -9,7 +9,7 @@ from django.core.mail import send_mail
|
|||
from django.contrib import admin
|
||||
from django.db.models import Sum, Count
|
||||
from bda.models import Spectacle, Salle, Participant, ChoixSpectacle,\
|
||||
Attribution, Tirage
|
||||
Attribution, Tirage, SpectacleRevente
|
||||
from django import forms
|
||||
|
||||
from datetime import timedelta
|
||||
|
@ -204,9 +204,28 @@ class SalleAdmin(admin.ModelAdmin):
|
|||
search_fields = ('name', 'address')
|
||||
|
||||
|
||||
class SpectacleReventeAdmin(admin.ModelAdmin):
|
||||
model = SpectacleRevente
|
||||
|
||||
def spectacle(self, obj):
|
||||
return obj.attribution.spectacle
|
||||
|
||||
def participant(self, obj):
|
||||
return obj.attribution.participant
|
||||
|
||||
list_display = ("spectacle", "participant", "date", "sold")
|
||||
readonly_fields = ("shotgun",)
|
||||
list_filter = ("sold", )
|
||||
search_fields = ("spectacle__title",
|
||||
"participant__user__username",
|
||||
"participant__user__firstname",
|
||||
"participant__user__lastname",)
|
||||
|
||||
|
||||
admin.site.register(Spectacle, SpectacleAdmin)
|
||||
admin.site.register(Salle, SalleAdmin)
|
||||
admin.site.register(Participant, ParticipantAdmin)
|
||||
admin.site.register(Attribution, AttributionAdmin)
|
||||
admin.site.register(ChoixSpectacle, ChoixSpectacleAdmin)
|
||||
admin.site.register(Tirage, TirageAdmin)
|
||||
admin.site.register(SpectacleRevente, SpectacleReventeAdmin)
|
||||
|
|
|
@ -5,6 +5,7 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import calendar
|
||||
import datetime
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
|
@ -179,3 +180,25 @@ class Attribution(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
return "%s -- %s" % (self.participant, self.spectacle)
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class SpectacleRevente(models.Model):
|
||||
attribution = models.OneToOneField(Attribution)
|
||||
date = models.DateTimeField("Date de mise en vente",
|
||||
default=timezone.now)
|
||||
sold = models.BooleanField("Vendue", default=False)
|
||||
|
||||
def get_expiration_time(self):
|
||||
remaining_time = (self.attribution.spectacle.date - self.date)
|
||||
delay = max(datetime.timedelta(hours=2),
|
||||
min(remaining_time/2, datetime.timedelta(days=2)))
|
||||
return self.date + delay
|
||||
expiration_time = property(get_expiration_time)
|
||||
|
||||
def get_shotgun(self):
|
||||
return timezone.now > self.expiration_time
|
||||
shotgun = property(get_shotgun)
|
||||
|
||||
def __str__(self):
|
||||
return "%s" % self.attribution
|
||||
|
|
Loading…
Reference in a new issue