diff --git a/src/apps/api/views/competitions.py b/src/apps/api/views/competitions.py index 4f6288da9..666a2f5ab 100644 --- a/src/apps/api/views/competitions.py +++ b/src/apps/api/views/competitions.py @@ -501,6 +501,16 @@ def get_leaderboard(self, request, pk): columns = [col for col in query['columns']] submissions_keys = {} for submission in query['submissions']: + + # count number of entries/number of submissions for the owner of this submission for this phase + num_entries = Submission.objects.filter(owner__username=submission['owner'], phase=phase).count() + + # get date of last submission by the owner of this submission for this phase + last_entry_date = Submission.objects.filter(owner__username=submission['owner'], phase=phase)\ + .values('created_when')\ + .order_by('-created_when')[0]['created_when']\ + .strftime('%Y-%m-%d') + submission_key = f"{submission['owner']}{submission['parent'] or submission['id']}" if submission_key not in submissions_keys: submissions_keys[submission_key] = len(response['submissions']) @@ -511,6 +521,8 @@ def get_leaderboard(self, request, pk): 'fact_sheet_answers': submission['fact_sheet_answers'], 'slug_url': submission['slug_url'], 'organization': submission['organization'], + 'num_entries': num_entries, + 'last_entry_date': last_entry_date }) for score in submission['scores']: diff --git a/src/static/riot/competitions/detail/leaderboards.tag b/src/static/riot/competitions/detail/leaderboards.tag index 6e476108f..d289060ef 100644 --- a/src/static/riot/competitions/detail/leaderboards.tag +++ b/src/static/riot/competitions/detail/leaderboards.tag @@ -28,14 +28,16 @@ Task: - + { task.name } # Participant - {column.title} + Entries + Date of last entry + {column.title} Detailed Results @@ -55,6 +57,8 @@ {index + 1} { submission.owner } + {submission.num_entries} + {submission.last_entry_date} { submission.organization.name } { get_score(column, submission) } Show detailed results diff --git a/src/tests/functional/test_submissions.py b/src/tests/functional/test_submissions.py index 5bc11af8a..8f13064b4 100644 --- a/src/tests/functional/test_submissions.py +++ b/src/tests/functional/test_submissions.py @@ -73,7 +73,7 @@ def _run_submission_and_add_to_leaderboard(self, competition_zip_path, submissio # The leaderboard table lists our submission prediction_score = Submission.objects.get(pk=submission_id).scores.first().score - assert Decimal(self.find('leaderboards table tbody tr:nth-of-type(1) td:nth-of-type(3)').text) == round(Decimal(prediction_score), precision) + assert Decimal(self.find('leaderboards table tbody tr:nth-of-type(1) td:nth-of-type(5)').text) == round(Decimal(prediction_score), precision) def test_v15_iris_result_submission_end_to_end(self): self._run_submission_and_add_to_leaderboard('competition_15_iris.zip', 'submission_15_iris_result.zip', '======= Set 1 (Iris_test)', has_solutions=False, precision=4)