From e3e3e10f7abf3bb44027eb197d61759f2797ff5a Mon Sep 17 00:00:00 2001 From: Jan-Tarek Butt <tarek@ring0.de> Date: Wed, 13 Dec 2023 21:51:44 +0100 Subject: [PATCH] crawler/models.py: extent build-in User profile. Nodes: add last_seen. Monitor: add notify counter and last notification date Signed-off-by: Jan-Tarek Butt <tarek@ring0.de> --- crawler/models.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/crawler/models.py b/crawler/models.py index 35b1823..10f0534 100644 --- a/crawler/models.py +++ b/crawler/models.py @@ -6,19 +6,27 @@ class Node(models.Model): node_id = models.CharField(max_length=12, primary_key=True) # hostname of the node node_name = models.CharField(max_length=64) + last_seen = models.DateTimeField() entry_date = models.DateField(auto_now_add=True) is_online = models.BooleanField(default=True) def __str__(self): - return f"{self.node_id} - {self.node_name} - {self.entry_date} - {self.is_online}" + return f"{self.node_id} - {self.node_name} - {self.last_seen} - {self.entry_date} - {self.is_online}" class Monitor(models.Model): user_id = models.ForeignKey(User, on_delete=models.CASCADE) node_id = models.ForeignKey(Node, on_delete=models.CASCADE) - notify = models.BooleanField() + notify = models.BooleanField(default=True) + notify_count = models.PositiveIntegerField(default=0) + last_notified = models.DateField(null=True,blank=True) def __str__(self): - return f"{self.user_id.username} - {self.node_id.node_id} - {self.notify}" + return f"{self.user_id.username} - {self.node_id.node_id} - {self.notify} - {self.notify_count} - {self.last_notified}" class Meta: unique_together = ['user_id', 'node_id'] + +class UserProfile(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + max_notification_interval = models.PositiveIntegerField(default=2) + days_between_notification = models.PositiveIntegerField(default=1) -- GitLab