diff --git a/README.md b/README.md index 6c44ca1..3659497 100644 --- a/README.md +++ b/README.md @@ -1 +1,33 @@ # DataRush + +Инновационный сервис для проведения соревнований по анализу данных + + +## Запуск + +Склонируйте репозиторий и пропишите + +```bash +docker compose up +``` + +## Основные ручки + +* `/` - основное приложение +* `/api/v1/docs` - swagger-ui документация +* `/admin` - админка +* `/admin/grafana` - графана +* `/docs` - гайд по анализу данных + +После запуска по методу выше создается пользователь в админке (`/admin`) с данными ниже:`admin` +- `admin` - логин +- `proooooood` - пароль + + +## Тесты + +Написаны unit-тесты (на базе Django TestCase) и E2E (Postman коллекция) + +![Postman data](img/postman.gif) + +![django test]() diff --git a/img/postman.gif b/img/postman.gif new file mode 100644 index 0000000..7f62348 Binary files /dev/null and b/img/postman.gif differ diff --git a/services/backend/api/v1/task/schemas.py b/services/backend/api/v1/task/schemas.py index a203f22..95f2fb4 100644 --- a/services/backend/api/v1/task/schemas.py +++ b/services/backend/api/v1/task/schemas.py @@ -67,3 +67,4 @@ class TaskAttachmentSchema(ModelSchema): class TaskStatusSchema(Schema): task_name: str result: int + max_points: int diff --git a/services/backend/api/v1/task/views.py b/services/backend/api/v1/task/views.py index e0f83cc..f9e2d53 100644 --- a/services/backend/api/v1/task/views.py +++ b/services/backend/api/v1/task/views.py @@ -196,14 +196,21 @@ def get_competition_results(request, competition_id: UUID): for task in tasks: submissions = CompetitionTaskSubmission.objects.filter( user=request.auth, task=task - ).filter(status="checked").all() + ).filter(status="checked").order_by("-earned_points").all() if not submissions: - result = 0 + all_submissions_count = CompetitionTaskSubmission.objects.filter( + user=request.auth, task=task + ).count() + if all_submissions_count == 0: + result = -2 + else: + result = -1 else: result = submissions[0].earned_points data.append(TaskStatusSchema( task_name=task.title, - result=result + result=result, + max_points=task.points, )) return status.OK, data