Hi guys!
I have this application in which users can request an absence and superuser approves it. I am trying to make a signal to trigger a notification. Righ now user request an absence and that same user receives the notification, but I want the admin - superuser to receive it. Can you help me?
The request absence model:
class Request(models.Model):
name = models.ForeignKey(User, on_delete=models.CASCADE)
CHOICES = (
(‘VACATION’, ‘Vacation Days’),
(‘MEDICAL’, ‘Medical Leave’),
(‘JURY’, ‘Jury Duty’),
(
‘REMOTE’,
‘Remote Work’,
),
)
absence_type = models.CharField(max_length=20,
choices=CHOICES,
default=“Remote Work”)
absence_comments = models.CharField(max_length=100)
start_date = models.DateTimeField(default=timezone.now)
end_date = models.DateTimeField(default=timezone.now)
begin_hour = models.TimeField(auto_now=False, null=True)
end_hour = models.TimeField(auto_now=False, null=True)
The notification model:
NOTIFICATION_TYPES = ((1, ‘Requested’), (2, ‘Replied’))
request = models.ForeignKey('absence.Request', on_delete=models.CASCADE,
related_name="noti_request",
blank=True,
null=True)
sender = models.ForeignKey(User,
on_delete=models.CASCADE,
related_name="noti_from_user")
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="noti_to_user")
notification_type = models.IntegerField(choices=NOTIFICATION_TYPES)
text_preview = models.CharField(max_length=90, blank=True)
date = models.DateTimeField(auto_now_add=True)
is_seen = models.BooleanField(default=False)
Here is the code to the signal/notification:
def employee_requested_absence(sender, instance, *args, **kwargs):
request = instance
sender = request.name
notify = Notification(request=request,
sender=sender,
user=request.name,
notification_type=1)
notify.save()
post_save.connect(Request.employee_requested_absence, sender=Request)
Can you help me please? I am really stuck. Thank you so much for your attention!