From a68e5710108677920f488e847e2579ee4177ec98 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 15 Sep 2022 11:10:31 +0200 Subject: [PATCH] fix #640 double email when registered participant is also a follower --- rowers/tests/test_races.py | 13 +++++++++++++ rowers/views/racesviews.py | 17 ++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/rowers/tests/test_races.py b/rowers/tests/test_races.py index 5e1ad403..2da85163 100644 --- a/rowers/tests/test_races.py +++ b/rowers/tests/test_races.py @@ -69,6 +69,15 @@ class ChallengesTest(TestCase): gdproptindate=timezone.now(), rowerplan='basic') + self.u3 = UserFactory() + self.follower = Rower.objects.create(user=self.u3, + birthdate=datetime.datetime.now()-datetime.timedelta(days=28*365), + gdproptin=True,surveydone=True, + gdproptindate=timezone.now(), + rowerplan='basic') + + + self.c = Client() self.user_workouts = WorkoutFactory.create_batch(5, user=self.r) self.factory = RequestFactory() @@ -160,6 +169,10 @@ class ChallengesTest(TestCase): ) self.SpeedOrder.save() + flw = VirtualRaceFollower.objects.create(race=self.SpeedOrder, + user=self.u3, + emailaddress='bla@bla.com') + self.result = VirtualRaceResult( userid = self.u2.id, username = self.u2.username, diff --git a/rowers/views/racesviews.py b/rowers/views/racesviews.py index 8bf4efd1..3ced8b20 100644 --- a/rowers/views/racesviews.py +++ b/rowers/views/racesviews.py @@ -1873,6 +1873,8 @@ def virtualevent_addboat_view(request, id=0): otherrecords = resultobj.objects.filter( race=race).exclude(userid=r.id) + registereduserids = [otherrecord.userid for otherrecord in otherrecords] + for otherrecord in otherrecords: try: otheruser = Rower.objects.get(id=otherrecord.userid) @@ -1892,19 +1894,20 @@ def virtualevent_addboat_view(request, id=0): followers = VirtualRaceFollower.objects.filter(race=race) - for follower in followers: # pragma: no cover + for follower in followers: othername = '' if follower.user: othername = follower.user.first_name+' '+follower.user.last_name registeredname = r.user.first_name+' '+r.user.last_name email = follower.emailaddress - _ = myqueue( - queue, - handle_sendemail_raceregistration, - email, othername, - registeredname, race.name, race.id, - ) + if follower.user.id not in registereduserids: + _ = myqueue( + queue, + handle_sendemail_raceregistration, + email, othername, + registeredname, race.name, race.id, + ) url = reverse('virtualevent_view', kwargs={