Fixed the algorithm for picking teams
This commit is contained in:
@@ -2,11 +2,10 @@ from collections import deque
|
|||||||
|
|
||||||
|
|
||||||
def get_teams(event): # noqa: C901, PLR0912
|
def get_teams(event): # noqa: C901, PLR0912
|
||||||
members_max = 3
|
members_max = 5
|
||||||
min_front = 1
|
min_front = 2
|
||||||
min_back = 2
|
min_back = 2
|
||||||
|
|
||||||
|
|
||||||
def bfs(tree):
|
def bfs(tree):
|
||||||
result = []
|
result = []
|
||||||
queue = deque([tree])
|
queue = deque([tree])
|
||||||
@@ -48,9 +47,10 @@ def get_teams(event): # noqa: C901, PLR0912
|
|||||||
users = {}
|
users = {}
|
||||||
|
|
||||||
for user in db_users:
|
for user in db_users:
|
||||||
users[str(user.id)] = tuple(bfs(user.skills))
|
users[str(user.id)] = tuple(bfs(user.skills)[1:])
|
||||||
|
print(users)
|
||||||
frontend_users, backend_users = sort_and_divide_users(users)
|
frontend_users, backend_users = sort_and_divide_users(users)
|
||||||
|
print(frontend_users, backend_users)
|
||||||
teams = []
|
teams = []
|
||||||
while len(frontend_users) >= min_front and len(backend_users) >= min_back:
|
while len(frontend_users) >= min_front and len(backend_users) >= min_back:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ from rest_framework.viewsets import ModelViewSet
|
|||||||
|
|
||||||
from api.events.models import Event
|
from api.events.models import Event
|
||||||
from api.events.serializers import EventSerializer
|
from api.events.serializers import EventSerializer
|
||||||
from api.users.serializers import UserSerializer
|
|
||||||
from api.events.utils import get_teams
|
from api.events.utils import get_teams
|
||||||
|
from api.users.serializers import UserSerializer
|
||||||
|
|
||||||
|
|
||||||
class EventViewSet(ModelViewSet):
|
class EventViewSet(ModelViewSet):
|
||||||
|
|||||||
Reference in New Issue
Block a user