From 9008d1df3cab40f9d52c84f182f966c0c7aa9c95 Mon Sep 17 00:00:00 2001 From: Marnanel Thurman Date: Sat, 24 Oct 2020 23:10:39 +0100 Subject: [PATCH] Follow's save() and delete() methods gain a "send_signal" param, defaulting to False --- kepi/trilby_api/models/follow.py | 15 ++++++++++----- kepi/trilby_api/views.py | 12 +++++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/kepi/trilby_api/models/follow.py b/kepi/trilby_api/models/follow.py index 78966e0..be708c6 100644 --- a/kepi/trilby_api/models/follow.py +++ b/kepi/trilby_api/models/follow.py @@ -73,19 +73,24 @@ class Follow(models.Model): self.following, ) - def save(self, *args, **kwargs): + def save(self, + send_signal = False, + *args, **kwargs): newly_made = self.pk is None super().save(*args, **kwargs) - if newly_made: + if send_signal and newly_made: logger.debug("%s: sending 'followed'", self) trilby_signals.followed.send(sender=self) - def delete(self, *args, **kwargs): + def delete(self, + send_signal = False, + *args, **kwargs): - logger.debug("%s: sending 'unfollowed'", self) - trilby_signals.unfollowed.send(sender=self) + if send_signal: + logger.debug("%s: sending 'unfollowed'", self) + trilby_signals.unfollowed.send(sender=self) super().delete(*args, **kwargs) diff --git a/kepi/trilby_api/views.py b/kepi/trilby_api/views.py index ced0e86..dd739f9 100644 --- a/kepi/trilby_api/views.py +++ b/kepi/trilby_api/views.py @@ -265,7 +265,9 @@ class Follow(DoSomethingWithPerson): ) with transaction.atomic(): - follow.save() + follow.save( + send_signal = True, + ) logger.info(' -- follow: %s', follow) logger.debug(' -- offer ID: %s', offer) @@ -278,7 +280,9 @@ class Follow(DoSomethingWithPerson): ) with transaction.atomic(): - follow_back.save() + follow_back.save( + send_signal = True, + ) logger.info(' -- follow back: %s', follow_back) @@ -300,7 +304,9 @@ class Unfollow(DoSomethingWithPerson): logger.info(' -- unfollowing: %s', follow) with transaction.atomic(): - follow.delete() + follow.delete( + send_signal = True, + ) return the_person