Add users excluded by randomisation to excluded_users list
This commit is contained in:
@ -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()
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user