Files
Reskreen/nextcloud/models/alerts.py

41 lines
1.0 KiB
Python

import logging
from django.dispatch import Signal
logger = logging.getLogger(__name__)
new_membership = Signal(Signal("user"))
ending_membership = Signal(Signal("user"))
updating_membership = Signal(["user"])
from django.db.models.signals import post_save, post_delete
from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
def my_callback(sender,created,instance, **kwargs):
if created:
new_membership.send(sender=sender, user=instance)
else:
# TODO remove this temps part
User = get_user_model()
users = User.objects.all()
for usr in users:
print(f"sync {usr}")
new_membership.send(sender=sender, user=usr)
updating_membership.send(sender=sender, user=usr)
updating_membership.send(sender=sender, user=instance)
def del_callback(sender, instance, **kwargs):
ending_membership.send(sender=sender, user=instance)
post_save.connect(my_callback, sender=User)
post_delete.connect(del_callback, sender=User)