diff --git a/vendor/symposion/reviews/models.py b/vendor/symposion/reviews/models.py index 13f76258b4dc9130078bf4d06ccdce66ae34c01d..3739bd950a71070aa3828dd8242e2bce20e66512 100644 --- a/vendor/symposion/reviews/models.py +++ b/vendor/symposion/reviews/models.py @@ -10,7 +10,7 @@ from django.db.models import Case, When, Value from django.db.models import Count from django.db.models.signals import post_save -from django.contrib.auth.models import User +from django.contrib.auth import get_user_model from django.utils.translation import ugettext_lazy as _ from symposion import constants @@ -18,6 +18,8 @@ from symposion.text_parser import parse from symposion.proposals.models import ProposalBase from symposion.schedule.models import Presentation +User = get_user_model() + class Votes(object): ABSTAIN = "0" @@ -51,8 +53,16 @@ class ReviewAssignment(models.Model): (AUTO_ASSIGNED_LATER, _("auto-assigned, later")), ] - proposal = models.ForeignKey(ProposalBase, verbose_name=_("Proposal")) - user = models.ForeignKey(User, verbose_name=_("User")) + proposal = models.ForeignKey( + ProposalBase, + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + user = models.ForeignKey( + User, + verbose_name=_("User"), + on_delete=models.CASCADE, + ) origin = models.IntegerField(choices=ORIGIN_CHOICES, verbose_name=_("Origin")) @@ -91,8 +101,17 @@ class ReviewAssignment(models.Model): class ProposalMessage(models.Model): - proposal = models.ForeignKey(ProposalBase, related_name="messages", verbose_name=_("Proposal")) - user = models.ForeignKey(User, verbose_name=_("User")) + proposal = models.ForeignKey( + ProposalBase, + related_name="messages", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + user = models.ForeignKey( + User, + verbose_name=_("User"), + on_delete=models.CASCADE, + ) message = models.TextField(verbose_name=_("Message")) message_html = models.TextField(blank=True) @@ -111,8 +130,17 @@ class ProposalMessage(models.Model): class Review(models.Model): VOTES = VOTES - proposal = models.ForeignKey(ProposalBase, related_name="reviews", verbose_name=_("Proposal")) - user = models.ForeignKey(User, verbose_name=_("User")) + proposal = models.ForeignKey( + ProposalBase, + related_name="reviews", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + user = models.ForeignKey( + User, + verbose_name=_("User"), + on_delete=models.CASCADE, + ) # No way to encode "-0" vs. "+0" into an IntegerField, and I don't feel # like some complicated encoding system. @@ -208,8 +236,17 @@ class Review(models.Model): class LatestVote(models.Model): VOTES = VOTES - proposal = models.ForeignKey(ProposalBase, related_name="votes", verbose_name=_("Proposal")) - user = models.ForeignKey(User, verbose_name=_("User")) + proposal = models.ForeignKey( + ProposalBase, + related_name="votes", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + user = models.ForeignKey( + User, + verbose_name=_("User"), + on_delete=models.CASCADE, + ) # No way to encode "-0" vs. "+0" into an IntegerField, and I don't feel # like some complicated encoding system. @@ -232,7 +269,12 @@ class LatestVote(models.Model): class ProposalResult(models.Model): - proposal = models.OneToOneField(ProposalBase, related_name="result", verbose_name=_("Proposal")) + proposal = models.OneToOneField( + ProposalBase, + related_name="result", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) score = models.DecimalField(max_digits=5, decimal_places=2, default=Decimal("0.00"), verbose_name=_("Score")) comment_count = models.PositiveIntegerField(default=0, verbose_name=_("Comment count")) # vote_count only counts non-abstain votes. @@ -297,8 +339,17 @@ class ProposalResult(models.Model): class Comment(models.Model): - proposal = models.ForeignKey(ProposalBase, related_name="comments", verbose_name=_("Proposal")) - commenter = models.ForeignKey(User, verbose_name=_("Commenter")) + proposal = models.ForeignKey( + ProposalBase, + related_name="comments", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + commenter = models.ForeignKey( + User, + verbose_name=_("Commenter"), + on_delete=models.CASCADE, + ) text = models.TextField(verbose_name=_("Text")) text_html = models.TextField(blank=True) @@ -329,9 +380,19 @@ class NotificationTemplate(models.Model): class ResultNotification(models.Model): - proposal = models.ForeignKey(ProposalBase, related_name="notifications", verbose_name=_("Proposal")) - template = models.ForeignKey(NotificationTemplate, null=True, blank=True, - on_delete=models.SET_NULL, verbose_name=_("Template")) + proposal = models.ForeignKey( + ProposalBase, + related_name="notifications", + verbose_name=_("Proposal"), + on_delete=models.CASCADE, + ) + template = models.ForeignKey( + NotificationTemplate, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("Template") + ) timestamp = models.DateTimeField(default=datetime.now, verbose_name=_("Timestamp")) to_address = models.EmailField(verbose_name=_("To address")) from_address = models.EmailField(verbose_name=_("From address"))