Index: sitescripts/notifications/web/notification.py |
diff --git a/sitescripts/notifications/web/notification.py b/sitescripts/notifications/web/notification.py |
index 918df55d2202e0e1125efebb9b994aa79aa13f2e..745a085988507f0e377a52232663e6dba3dc826a 100644 |
--- a/sitescripts/notifications/web/notification.py |
+++ b/sitescripts/notifications/web/notification.py |
@@ -34,13 +34,14 @@ def _determine_groups(version, notifications): |
return groups |
-def _assign_groups(notifications): |
- groups = [] |
+def _assign_groups(groups, notifications): |
selection = random.random() |
start = 0 |
for notification in notifications: |
if 'variants' not in notification: |
continue |
+ if notification['id'] in [g['id'] for g in groups]: |
+ continue |
group = {'id': notification['id'], 'variant': 0} |
groups.append(group) |
for i, variant in enumerate(notification['variants']): |
@@ -51,7 +52,6 @@ def _assign_groups(notifications): |
if selected: |
group['variant'] = i + 1 |
break |
- return groups |
def _get_active_variant(notifications, groups): |
@@ -111,8 +111,7 @@ def notification(environ, start_response): |
notifications = load_notifications() |
groups = _determine_groups(version, notifications) |
notifications = [x for x in notifications if not x.get('inactive', False)] |
- if not groups: |
- groups = _assign_groups(notifications) |
+ _assign_groups(groups, notifications) |
response = _create_response(notifications, groups) |
response_headers = [('Content-Type', 'application/json; charset=utf-8'), |
('ABP-Notification-Version', response['version'])] |