diff options
author | Jack Morgan <jack.morgan@intel.com> | 2016-09-21 15:48:38 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@172.30.200.206> | 2016-09-21 15:48:38 +0000 |
commit | dcc6fa43043c685b7443cbc27da12ad9bf2225c4 (patch) | |
tree | 7927874aa51afd638e69f46d773e1c0b09d40f6b /tools/pharos-dashboard/notification/models.py | |
parent | 47f2f0a3224b8c990d5b9ab6c9628f9d7cf231b8 (diff) | |
parent | 3c8baae57206988fbdfc2d858ddc3f134e552f07 (diff) |
Merge changes from topic 'pharos-dashboard'
* changes:
Add a REST API for the dashboard
Send notifications for booking start and end
Diffstat (limited to 'tools/pharos-dashboard/notification/models.py')
-rw-r--r-- | tools/pharos-dashboard/notification/models.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/pharos-dashboard/notification/models.py b/tools/pharos-dashboard/notification/models.py new file mode 100644 index 00000000..80f65df4 --- /dev/null +++ b/tools/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 |