Prevent multiple entries in entitled_users_at_stop
This commit is contained in:
parent
a94f00672b
commit
f54050a83c
@ -275,9 +275,11 @@ class BasePoll(models.Model):
|
|||||||
|
|
||||||
def calculate_entitled_users(self):
|
def calculate_entitled_users(self):
|
||||||
entitled_users = []
|
entitled_users = []
|
||||||
|
entitled_users_ids = set()
|
||||||
for group in self.groups.all():
|
for group in self.groups.all():
|
||||||
for user in group.user_set.all():
|
for user in group.user_set.all():
|
||||||
if user.is_present:
|
if user.is_present and user.id not in entitled_users_ids:
|
||||||
|
entitled_users_ids.add(user.id)
|
||||||
entitled_users.append(
|
entitled_users.append(
|
||||||
{
|
{
|
||||||
"user_id": user.id,
|
"user_id": user.id,
|
||||||
|
@ -1208,6 +1208,19 @@ class StopMotionPoll(TestCase):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_stop_poll_assert_no_duplicate_entitled_users(self):
|
||||||
|
self.setup_entitled_users()
|
||||||
|
delegate_group = get_group_model().objects.get(pk=GROUP_DELEGATE_PK)
|
||||||
|
self.admin.groups.add(delegate_group)
|
||||||
|
self.poll.groups.add(delegate_group)
|
||||||
|
|
||||||
|
response = self.client.post(reverse("motionpoll-stop", args=[self.poll.pk]))
|
||||||
|
self.assertHttpStatusVerbose(response, status.HTTP_200_OK)
|
||||||
|
self.assertEqual(
|
||||||
|
MotionPoll.objects.get().entitled_users_at_stop,
|
||||||
|
[{"user_id": self.admin.id, "voted": False, "vote_delegated_to_id": None}],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class PublishMotionPoll(TestCase):
|
class PublishMotionPoll(TestCase):
|
||||||
def advancedSetUp(self):
|
def advancedSetUp(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user