diff --git a/vendor/symposion/schedule/models.py b/vendor/symposion/schedule/models.py index 613d1d4c1f48cb64bb8975c5fe2f1058b0854523..6698eb25649805a10c4c6d1ccb1f508e3d88668d 100644 --- a/vendor/symposion/schedule/models.py +++ b/vendor/symposion/schedule/models.py @@ -1,7 +1,7 @@ import datetime from django.core.exceptions import ObjectDoesNotExist -from django.contrib.auth.models import User +from django.contrib.auth import get_user_model from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -11,11 +11,17 @@ from symposion.proposals.models import ProposalBase from symposion.conference.models import Section from symposion.speakers.models import Speaker +User = get_user_model() + class Schedule(models.Model): objects = DefaultSelectRelatedManager() - section = models.OneToOneField(Section, verbose_name=_("Section")) + section = models.OneToOneField( + Section, + verbose_name=_("Section"), + on_delete=models.CASCADE, + ) published = models.BooleanField(default=True, verbose_name=_("Published")) hidden = models.BooleanField(_("Hide schedule from overall conference view"), default=False) @@ -35,7 +41,11 @@ class Day(models.Model): objects = DefaultSelectRelatedManager() - schedule = models.ForeignKey(Schedule, verbose_name=_("Schedule")) + schedule = models.ForeignKey( + Schedule, + verbose_name=_("Schedule"), + on_delete=models.CASCADE, + ) date = models.DateField(verbose_name=_("Date")) def __str__(self): @@ -53,7 +63,11 @@ class Day(models.Model): class Room(models.Model): - schedule = models.ForeignKey(Schedule, verbose_name=_("Schedule")) + schedule = models.ForeignKey( + Schedule, + verbose_name=_("Schedule"), + on_delete=models.CASCADE, + ) name = models.CharField(max_length=65, verbose_name=_("Name")) order = models.PositiveIntegerField(verbose_name=_("Order")) @@ -70,8 +84,8 @@ class Room(models.Model): class Track(models.Model): name = models.CharField(max_length=80, verbose_name=_("Track")) - room = models.ForeignKey(Room) - day = models.ForeignKey(Day) + room = models.ForeignKey(Room, on_delete=models.CASCADE) + day = models.ForeignKey(Day, on_delete=models.CASCADE) def __str__(self): return self.name @@ -88,7 +102,11 @@ class SlotKind(models.Model): break, lunch, or X-minute talk. """ - schedule = models.ForeignKey(Schedule, verbose_name=_("schedule")) + schedule = models.ForeignKey( + Schedule, + verbose_name=_("schedule"), + on_delete=models.CASCADE, + ) label = models.CharField(max_length=50, verbose_name=_("Label")) def __str__(self): @@ -103,8 +121,16 @@ class Slot(models.Model): objects = DefaultSelectRelatedManager() name = models.CharField(max_length=512, editable=False) - day = models.ForeignKey(Day, verbose_name=_("Day")) - kind = models.ForeignKey(SlotKind, verbose_name=_("Kind")) + day = models.ForeignKey( + Day, + verbose_name=_("Day"), + on_delete=models.CASCADE, + ) + kind = models.ForeignKey( + SlotKind, + verbose_name=_("Kind"), + on_delete=models.CASCADE, + ) start = models.TimeField(verbose_name=_("Start")) end = models.TimeField(verbose_name=_("End")) exclusive = models.BooleanField( @@ -194,8 +220,16 @@ class SlotRoom(models.Model): Links a slot with a room. """ - slot = models.ForeignKey(Slot, verbose_name=_("Slot")) - room = models.ForeignKey(Room, verbose_name=_("Room")) + slot = models.ForeignKey( + Slot, + verbose_name=_("Slot"), + on_delete=models.CASCADE, + ) + room = models.ForeignKey( + Room, + verbose_name=_("Room"), + on_delete=models.CASCADE, + ) def __str__(self): return "%s %s" % (self.room, self.slot) @@ -210,11 +244,23 @@ class SlotRoom(models.Model): class Presentation(models.Model): objects = DefaultSelectRelatedManager() - slot = models.OneToOneField(Slot, null=True, blank=True, related_name="content_ptr", verbose_name=_("Slot")) + slot = models.OneToOneField( + Slot, + null=True, + blank=True, + related_name="content_ptr", + verbose_name=_("Slot"), + on_delete=models.CASCADE, + ) title = models.CharField(max_length=100, verbose_name=_("Title")) abstract = models.TextField(verbose_name=_("Abstract")) abstract_html = models.TextField(blank=True) - speaker = models.ForeignKey(Speaker, related_name="presentations", verbose_name=_("Speaker")) + speaker = models.ForeignKey( + Speaker, + related_name="presentations", + verbose_name=_("Speaker"), + on_delete=models.CASCADE, + ) additional_speakers = models.ManyToManyField(Speaker, related_name="copresentations", blank=True, verbose_name=_("Additional speakers")) unpublish = models.BooleanField( @@ -222,8 +268,18 @@ class Presentation(models.Model): verbose_name=_("Do not publish"), ) cancelled = models.BooleanField(default=False, verbose_name=_("Cancelled")) - proposal_base = models.OneToOneField(ProposalBase, related_name="presentation", verbose_name=_("Proposal base")) - section = models.ForeignKey(Section, related_name="presentations", verbose_name=_("Section")) + proposal_base = models.OneToOneField( + ProposalBase, + related_name="presentation", + verbose_name=_("Proposal base"), + on_delete=models.CASCADE, + ) + section = models.ForeignKey( + Section, + related_name="presentations", + verbose_name=_("Section"), + on_delete=models.CASCADE, + ) def save(self, *args, **kwargs): self.abstract_html = parse(self.abstract) @@ -256,7 +312,12 @@ class Presentation(models.Model): class Session(models.Model): - day = models.ForeignKey(Day, related_name="sessions", verbose_name=_("Day")) + day = models.ForeignKey( + Day, + related_name="sessions", + verbose_name=_("Day"), + on_delete=models.CASCADE, + ) slots = models.ManyToManyField(Slot, related_name="sessions", verbose_name=_("Slots")) def sorted_slots(self): @@ -318,8 +379,16 @@ class SessionRole(models.Model): (SESSION_ROLE_RUNNER, _("Session Runner")), ] - session = models.ForeignKey(Session, verbose_name=_("Session")) - user = models.ForeignKey(User, verbose_name=_("User")) + session = models.ForeignKey( + Session, + verbose_name=_("Session"), + on_delete=models.CASCADE, + ) + user = models.ForeignKey( + User, + verbose_name=_("User"), + on_delete=models.CASCADE, + ) role = models.IntegerField(choices=SESSION_ROLE_TYPES, verbose_name=_("Role")) status = models.NullBooleanField(verbose_name=_("Status"))