diff --git a/src/apps/api/views/submissions.py b/src/apps/api/views/submissions.py index c52d554c5..bfd6f8889 100644 --- a/src/apps/api/views/submissions.py +++ b/src/apps/api/views/submissions.py @@ -291,6 +291,9 @@ def get_renderer_context(self): 'created_when': 'Created When', 'status': 'Status', 'phase_name': 'Phase', + 'task.name': 'Task', + 'scores.0.score': 'Score', + 'on_leaderboard': 'On Leaderboard' } context["header"] = [k for k in context["labels"].keys()] return context diff --git a/src/apps/competitions/admin.py b/src/apps/competitions/admin.py index 769888db8..98cb64147 100644 --- a/src/apps/competitions/admin.py +++ b/src/apps/competitions/admin.py @@ -92,9 +92,58 @@ def SubmissionsExport_as_csv(modeladmin, request, queryset): headers={"Content-Disposition": 'attachment; filename="submissions.csv"'}, ) writer = csv.writer(response) - writer.writerow(["ID", "Owner", "Status", "Task", "Phase", "Queue"]) + writer.writerow( + [ + "ID", + "Owner", + "Status", + "Submitted on", + "Task", + "Phase", + "Competition Title", + "Competition creation date", + "Queue", + "Scores", + "On Leaderboard", + ] + ) for obj in queryset: - writer.writerow([obj.id, obj.owner, obj.status, obj.task, obj.phase, obj.queue]) + scores_list = [] + for scores in obj.scores.all(): + scores_list.append(scores.score) + if obj.task is not None: + if len(scores_list) == 0: + writer.writerow( + [ + obj.id, + obj.owner, + obj.status, + obj.created_when, + obj.task, + obj.phase, + obj.phase.competition.title, + obj.phase.competition.created_when, + obj.queue, + "None", + obj.appear_on_leaderboards, + ] + ) + else: + writer.writerow( + [ + obj.id, + obj.owner, + obj.status, + obj.created_when, + obj.task, + obj.phase, + obj.phase.competition.title, + obj.phase.competition.created_when, + obj.queue, + scores_list[0], + obj.appear_on_leaderboards, + ] + ) return response