diff --git a/src/apps/api/views/competitions.py b/src/apps/api/views/competitions.py index bb7eeec7b..12a40cf6e 100644 --- a/src/apps/api/views/competitions.py +++ b/src/apps/api/views/competitions.py @@ -156,6 +156,23 @@ def create(self, request, *args, **kwargs): for index in range(len(phase['tasks'])): phase['tasks'][index] = phase['tasks'][index]['task'] + # TODO - This is Temporary. Need to change Leaderboard to Phase connect to M2M and handle this correctly. + # save leaderboard individually, then pass pk to each phase + print(f"{request.data['leaderboards']}") + data = request.data + if 'leaderboards' in data: + leaderboard_data = data['leaderboards'][0] + if(leaderboard_data['id']): + leaderboard_instance = Leaderboard.objects.get(id=leaderboard_data['id']) + leaderboard = LeaderboardSerializer(leaderboard_instance, data=data['leaderboards'][0]) + else: + leaderboard = LeaderboardSerializer(data=data['leaderboards'][0]) + leaderboard.is_valid() + leaderboard.save() + leaderboard_id = leaderboard["id"].value + for phase in data['phases']: + phase['leaderboard'] = leaderboard_id + serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) diff --git a/src/tests/functional/test_competitions.py b/src/tests/functional/test_competitions.py index 7a1e2cc48..0bd8e3d8b 100644 --- a/src/tests/functional/test_competitions.py +++ b/src/tests/functional/test_competitions.py @@ -137,7 +137,7 @@ def test_manual_competition_creation(self): self.find('div[selenium="add-column"]').click() sleep(LONG_WAIT) self.find('input[selenium="column-key"]').send_keys('cOlUmN kEy') - self.find('input[selenium="column-precision"]').send_keys('cOlUmN pReCiSiOn') + self.find('input[selenium="column-precision"]').send_keys('3') self.find('input[selenium="hidden"]').click() self.find('div[selenium="save3"]').click() sleep(LONG_WAIT)