7

Add users excluded by randomisation to excluded_users list

This commit is contained in:
Kaitlyn Crawford
2018-02-09 12:35:09 +02:00
parent 3162191a16
commit 56a8e106d8
2 changed files with 7 additions and 0 deletions

View File

@ -190,6 +190,9 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
if self.request.user.is_authenticated(): if self.request.user.is_authenticated():
segment.static_users.add(self.request.user) segment.static_users.add(self.request.user)
additional_segments.append(segment) additional_segments.append(segment)
elif result:
if self.request.user.is_authenticated():
segment.excluded_users.add(self.request.user)
self.set_segments(current_segments + additional_segments) self.set_segments(current_segments + additional_segments)
self.update_visit_count() self.update_visit_count()

View File

@ -107,6 +107,7 @@ class SegmentAdminForm(WagtailAdminModelForm):
adapter = get_segment_adapter(request) adapter = get_segment_adapter(request)
users_to_add = [] users_to_add = []
users_to_exclude = []
sessions = Session.objects.iterator() sessions = Session.objects.iterator()
take_session = takewhile( take_session = takewhile(
lambda x: instance.count == 0 or len(users_to_add) <= instance.count, lambda x: instance.count == 0 or len(users_to_add) <= instance.count,
@ -121,8 +122,11 @@ class SegmentAdminForm(WagtailAdminModelForm):
passes = adapter._test_rules(instance.get_rules(), request, instance.match_any) passes = adapter._test_rules(instance.get_rules(), request, instance.match_any)
if passes and instance.randomise_into_segment(): if passes and instance.randomise_into_segment():
users_to_add.append(user) users_to_add.append(user)
elif passes:
users_to_exclude.append(user)
instance.static_users.add(*users_to_add) instance.static_users.add(*users_to_add)
instance.excluded_users.add(*users_to_exclude)
return instance return instance