summaryrefslogtreecommitdiffstats
path: root/dashboard/src/notifier/models.py
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2018-10-24 15:12:32 -0400
committerParker Berberian <pberberian@iol.unh.edu>2018-11-07 10:32:56 -0500
commit81cfb043f06ab71da7c021a063f80f6df58305cc (patch)
tree862b6b8a653298d503ecbf082e747211e6d33442 /dashboard/src/notifier/models.py
parentd6e337fa62c32155941333fe8fedc28e4f663700 (diff)
Rewrite Notification subsystem
In this commit: - delete a lot of really bad and / or unused code - redesign a much simpler Notification model - create and send notifications to the user's inbox on booking start & end - migrations - emails user when booking is ready and when it ends Not in this commit: - Creating notifications from lab messages - warning messages when a booking is about to end - creating "summary" notifications when e.g. a booking has been fulfilled by a lab Change-Id: I69b4dc36c3f2bce76d810106baadeef5a562cc7d Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'dashboard/src/notifier/models.py')
-rw-r--r--dashboard/src/notifier/models.py40
1 files changed, 6 insertions, 34 deletions
diff --git a/dashboard/src/notifier/models.py b/dashboard/src/notifier/models.py
index ed0edeb..5e7c60e 100644
--- a/dashboard/src/notifier/models.py
+++ b/dashboard/src/notifier/models.py
@@ -8,44 +8,16 @@
##############################################################################
from django.db import models
-from booking.models import Booking
from account.models import UserProfile
-from fernet_fields import EncryptedTextField
-from account.models import Lab
-class MetaBooking(models.Model):
- id = models.AutoField(primary_key=True)
- booking = models.OneToOneField(Booking, on_delete=models.CASCADE, related_name="metabooking")
- ending_notified = models.BooleanField(default=False)
- ended_notified = models.BooleanField(default=False)
- created_notified = models.BooleanField(default=False)
-
-
-class LabMessage(models.Model):
- lab = models.ForeignKey(Lab, on_delete=models.CASCADE)
- msg = models.TextField() # django template should be put here
-
-
-class Notifier(models.Model):
- id = models.AutoField(primary_key=True)
- title = models.CharField(max_length=240)
- content = EncryptedTextField()
- user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True, blank=True)
- sender = models.CharField(max_length=240, default='unknown')
- message_type = models.CharField(max_length=240, default='email', choices=(
- ('email', 'Email'),
- ('webnotification', 'Web Notification')))
- msg_sent = ''
+class Notification(models.Model):
+ title = models.CharField(max_length=150)
+ content = models.TextField()
+ recipients = models.ManyToManyField(UserProfile)
def __str__(self):
return self.title
- """
- Implement for next PR: send Notifier by media agreed to by user
- """
- def send(self):
- pass
-
- def getEmail(self):
- return self.user.email_addr
+ def to_preview_html(self):
+ return "<h3>" + self.title + "</h3>" # TODO - template?