summaryrefslogtreecommitdiffstats
path: root/pharos-dashboard/notification/models.py
diff options
context:
space:
mode:
authormaxbr <maxbr@mi.fu-berlin.de>2016-09-19 10:13:26 +0200
committermaxbr <maxbr@mi.fu-berlin.de>2016-09-19 10:13:26 +0200
commitd77560162ebf4805bab5eaaf051467590f2b414f (patch)
treedb76388904b975891d308dc10de4e48b5f905a54 /pharos-dashboard/notification/models.py
parent3666bf8b35db7a4fb22e8f795185c599f510443f (diff)
Send notifications for booking start and end
JIRA: PHAROS-265 Change-Id: I53a37ac31dda70935752afc6da3315e6dfcbc90f Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
Diffstat (limited to 'pharos-dashboard/notification/models.py')
-rw-r--r--pharos-dashboard/notification/models.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/pharos-dashboard/notification/models.py b/pharos-dashboard/notification/models.py
new file mode 100644
index 0000000..80f65df
--- /dev/null
+++ b/pharos-dashboard/notification/models.py
@@ -0,0 +1,22 @@
+from django.db import models
+
+class BookingNotification(models.Model):
+ id = models.AutoField(primary_key=True)
+ type = models.CharField(max_length=100)
+ booking = models.ForeignKey('booking.Booking', on_delete=models.CASCADE)
+ submit_time = models.DateTimeField()
+ submitted = models.BooleanField(default=False)
+
+ def get_content(self):
+ return {
+ 'start': self.booking.start.isoformat(),
+ 'end': self.booking.end.isoformat(),
+ 'user': self.booking.user.username,
+ 'purpose': self.booking.purpose
+ }
+
+ def save(self, *args, **kwargs):
+ notifications = self.booking.bookingnotification_set.filter(type=self.type)
+ if notifications.count() > 1:
+ raise ValueError('Doubled Notification')
+ return super(BookingNotification, self).save(*args, **kwargs) \ No newline at end of file