from django.conf import settings
from django.db import models
from pinaxcon.raffle.mixins import PrizeMixin, RaffleMixin
@@ -26,11 +27,18 @@ class Prize(PrizeMixin, models.Model):
unlocked.
"""
description = models.CharField(max_length=255)
raffle = models.ForeignKey('pinaxcon_raffle.Raffle', related_name='prizes')
raffle = models.ForeignKey(
'pinaxcon_raffle.Raffle',
related_name='prizes',
on_delete=models.CASCADE,
)
order = models.PositiveIntegerField()
winning_ticket = models.OneToOneField(
'pinaxcon_raffle.DrawnTicket', null=True,
blank=True, related_name='+', on_delete=models.PROTECT
'pinaxcon_raffle.DrawnTicket',
null=True,
blank=True,
related_name='+',
on_delete=models.PROTECT,
class Meta:
@@ -45,9 +53,16 @@ class PrizeAudit(models.Model):
Stores an audit event for changes to a particular :model:`pinaxcon_raffle.Prize`.
reason = models.CharField(max_length=255)
prize = models.ForeignKey('pinaxcon_raffle.Prize', related_name='audit_events')
prize = models.ForeignKey(
'pinaxcon_raffle.Prize',
related_name='audit_events',
user = models.ForeignKey('auth.User')
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
timestamp = models.DateTimeField(auto_now_add=True)
@@ -62,8 +77,15 @@ class Draw(models.Model):
Stores a draw for a given :model:`pinaxcon_raffle.Raffle`, along with audit fields
for the creating :model:`auth.User` and the creation timestamp.
raffle = models.ForeignKey('pinaxcon_raffle.Raffle', related_name='draws')
drawn_by = models.ForeignKey('auth.User')
related_name='draws',
drawn_by = models.ForeignKey(
drawn_time = models.DateTimeField(auto_now_add=True)
def __str__(self):
@@ -78,9 +100,18 @@ class DrawnTicket(models.Model):
ticket = models.CharField(max_length=255)
draw = models.ForeignKey('pinaxcon_raffle.Draw')
prize = models.ForeignKey('pinaxcon_raffle.Prize')
lineitem = models.ForeignKey('registrasion.LineItem')
draw = models.ForeignKey(
'pinaxcon_raffle.Draw',
lineitem = models.ForeignKey(
'registrasion.LineItem',
return f"{self.ticket}: {self.draw.raffle}"
\ No newline at end of file