Python backend for a Slack's kudos plugin.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: split users equally

+9 -8
+9 -8
kefi/models/plazas/helpers.py
··· 102 102 results = session.exec(query).all() 103 103 users = [attendance.user for attendance in results] 104 104 random.shuffle(users) 105 - return group_users(users) 105 + return split_users_in_groups(users) 106 106 107 107 108 - def group_users(users: list[User]) -> list[list]: 109 - group_size = 3 110 - for size in settings.PLAZA_SIZE_OPTIONS: 111 - if len(users) % size == 0: 112 - group_size = size 108 + def split_users_in_groups(users: list[User]) -> list[list]: 109 + group_size = next( 110 + filter(lambda size: len(users) % size == 0, settings.PLAZA_SIZE_OPTIONS), 111 + settings.PLAZA_SIZE_OPTIONS[0], 112 + ) 113 113 grouped_users = list( 114 114 [users[i : i + group_size] for i in range(0, len(users), group_size)] 115 115 ) 116 116 if len(grouped_users[-1]) < group_size: 117 - orphanUsers = grouped_users.pop() 118 - grouped_users[-1].extend(orphanUsers) 117 + orphan_users = grouped_users.pop() 118 + for i, user in enumerate(orphan_users): 119 + grouped_users[i % len(grouped_users)].append(user) 119 120 return grouped_users 120 121 121 122