mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-22 22:07:10 +00:00
Merge branch 'master' of gitlab.prodcontest.ru:team-15/project
This commit is contained in:
@@ -68,3 +68,4 @@ class TaskStatusSchema(Schema):
|
|||||||
task_name: str
|
task_name: str
|
||||||
result: int
|
result: int
|
||||||
max_points: int
|
max_points: int
|
||||||
|
position: int
|
||||||
|
|||||||
@@ -210,6 +210,7 @@ def get_competition_results(request, competition_id: UUID):
|
|||||||
task_name=task.title,
|
task_name=task.title,
|
||||||
result=result,
|
result=result,
|
||||||
max_points=task.points,
|
max_points=task.points,
|
||||||
|
position=task.in_competition_positions
|
||||||
))
|
))
|
||||||
|
|
||||||
return status.OK, data
|
return status.OK, data
|
||||||
|
|||||||
+14
-12
@@ -1,4 +1,3 @@
|
|||||||
// src/components/competition/CompetitionResultsModal.tsx
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
@@ -12,7 +11,8 @@ import { Loader2 } from 'lucide-react';
|
|||||||
export interface CompetitionResult {
|
export interface CompetitionResult {
|
||||||
task_name: string;
|
task_name: string;
|
||||||
result: number;
|
result: number;
|
||||||
max_points: number
|
max_points: number;
|
||||||
|
position: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface CompetitionResultsModalProps {
|
interface CompetitionResultsModalProps {
|
||||||
@@ -111,17 +111,19 @@ export const CompetitionResultsModal: React.FC<CompetitionResultsModalProps> = (
|
|||||||
Произошла ошибка при загрузке результатов
|
Произошла ошибка при загрузке результатов
|
||||||
</div>
|
</div>
|
||||||
) : results && results.length > 0 ? (
|
) : results && results.length > 0 ? (
|
||||||
results.map((result, index) => (
|
[...results]
|
||||||
<div
|
.sort((a, b) => a.position - b.position)
|
||||||
key={index}
|
.map((result, index) => (
|
||||||
className="flex flex-col md:flex-row justify-between items-start md:items-center p-4 bg-gray-50 rounded-lg border"
|
<div
|
||||||
>
|
key={index}
|
||||||
<div className="font-medium mb-2 md:mb-0">{result.task_name}</div>
|
className="flex flex-col md:flex-row justify-between items-start md:items-center p-4 bg-gray-50 rounded-lg border"
|
||||||
<div className="text-right">
|
>
|
||||||
{renderResultValue(result.result, result.max_points)}
|
<div className="font-medium mb-2 md:mb-0">{result.task_name}</div>
|
||||||
|
<div className="text-right">
|
||||||
|
{renderResultValue(result.result, result.max_points)}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
))
|
||||||
))
|
|
||||||
) : (
|
) : (
|
||||||
<div className="text-center py-6 text-gray-500">
|
<div className="text-center py-6 text-gray-500">
|
||||||
Нет доступных результатов
|
Нет доступных результатов
|
||||||
|
|||||||
+17
-17
@@ -116,29 +116,29 @@ const CodeSolution: React.FC<CodeSolutionProps> = ({
|
|||||||
|
|
||||||
<div className="mt-4 space-y-6">
|
<div className="mt-4 space-y-6">
|
||||||
<div>
|
<div>
|
||||||
<h3 className="text-lg font-semibold mb-3 text-indigo-700 border-b pb-2">Ограничения</h3>
|
<h3 className="text-lg font-semibold mb-3 border-b pb-2">Ограничение ресурсов</h3>
|
||||||
<ul className="space-y-3 text-gray-700">
|
<ul className="space-y-3 text-gray-700">
|
||||||
<li className="flex items-start">
|
<li className="flex items-start">
|
||||||
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
<div className="bg-yellow-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
<div className="w-1.5 h-1.5 bg-yellow-500 rounded-full"></div>
|
||||||
</div>
|
</div>
|
||||||
Максимум 1 посылка в 10 секунд
|
Максимум 1 посылка в 10 секунд
|
||||||
</li>
|
</li>
|
||||||
<li className="flex items-start">
|
<li className="flex items-start">
|
||||||
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
<div className="bg-yellow-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
<div className="w-1.5 h-1.5 bg-yellow-500 rounded-full"></div>
|
||||||
</div>
|
</div>
|
||||||
Максимальный размер решения 4MB
|
Максимальный размер решения 4MB
|
||||||
</li>
|
</li>
|
||||||
<li className="flex items-start">
|
<li className="flex items-start">
|
||||||
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
<div className="bg-yellow-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
<div className="w-1.5 h-1.5 bg-yellow-500 rounded-full"></div>
|
||||||
</div>
|
</div>
|
||||||
Максимальное время работы программы 1 минута
|
Максимальное время работы программы 1 минута
|
||||||
</li>
|
</li>
|
||||||
<li className="flex items-start">
|
<li className="flex items-start">
|
||||||
<div className="bg-indigo-100 p-1.5 rounded-full mr-3 mt-0.5">
|
<div className="bg-yellow-100 p-1.5 rounded-full mr-3 mt-0.5">
|
||||||
<div className="w-1.5 h-1.5 bg-indigo-500 rounded-full"></div>
|
<div className="w-1.5 h-1.5 bg-yellow-500 rounded-full"></div>
|
||||||
</div>
|
</div>
|
||||||
Выделяется 512MB на решение
|
Выделяется 512MB на решение
|
||||||
</li>
|
</li>
|
||||||
@@ -146,35 +146,35 @@ const CodeSolution: React.FC<CodeSolutionProps> = ({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h3 className="text-lg font-semibold mb-3 text-indigo-700 border-b pb-2">Доступные библиотеки</h3>
|
<h3 className="text-lg font-semibold mb-3 border-b pb-2">Доступные библиотеки</h3>
|
||||||
<div className="bg-gray-50 p-4 rounded-md font-mono text-sm">
|
<div className="bg-gray-50 p-4 rounded-md font-mono text-sm">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-2">
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">pandas</span>
|
<span className="text-yellow-600 font-semibold">pandas</span>
|
||||||
<span className="text-gray-500 ml-2">2.2.3</span>
|
<span className="text-gray-500 ml-2">2.2.3</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">numpy</span>
|
<span className="text-yellow-600 font-semibold">numpy</span>
|
||||||
<span className="text-gray-500 ml-2">2.2.3</span>
|
<span className="text-gray-500 ml-2">2.2.3</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">matplotlib</span>
|
<span className="text-yellow-600 font-semibold">matplotlib</span>
|
||||||
<span className="text-gray-500 ml-2">3.10.1</span>
|
<span className="text-gray-500 ml-2">3.10.1</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">scipy</span>
|
<span className="text-yellow-600 font-semibold">scipy</span>
|
||||||
<span className="text-gray-500 ml-2">1.15.2</span>
|
<span className="text-gray-500 ml-2">1.15.2</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">scikit-learn</span>
|
<span className="text-yellow-600 font-semibold">scikit-learn</span>
|
||||||
<span className="text-gray-500 ml-2">1.6.1</span>
|
<span className="text-gray-500 ml-2">1.6.1</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">seaborn</span>
|
<span className="text-yellow-600 font-semibold">seaborn</span>
|
||||||
<span className="text-gray-500 ml-2">0.13.2</span>
|
<span className="text-gray-500 ml-2">0.13.2</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="text-indigo-600 font-semibold">statsmodels</span>
|
<span className="text-yellow-600 font-semibold">statsmodels</span>
|
||||||
<span className="text-gray-500 ml-2">0.14.4</span>
|
<span className="text-gray-500 ml-2">0.14.4</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -155,10 +155,10 @@ const TaskSolution: React.FC<TaskSolutionProps> = ({
|
|||||||
? 'bg-blue-50 text-blue-700'
|
? 'bg-blue-50 text-blue-700'
|
||||||
: 'bg-red-50 text-red-700'}`}
|
: 'bg-red-50 text-red-700'}`}
|
||||||
>
|
>
|
||||||
{hasSubmissionsLeft ? (
|
{maxAttempts === -1 || hasSubmissionsLeft ? (
|
||||||
<>
|
<>
|
||||||
<span className="font-medium">
|
<span className="font-medium">
|
||||||
Осталось посылок: {submissionsLeft === Infinity ? '∞' : submissionsLeft}
|
Осталось посылок: {maxAttempts === -1 ? '∞' : submissionsLeft}
|
||||||
</span>
|
</span>
|
||||||
{maxAttempts !== -1 && (
|
{maxAttempts !== -1 && (
|
||||||
<span className="text-blue-500 ml-1">
|
<span className="text-blue-500 ml-1">
|
||||||
|
|||||||
Reference in New Issue
Block a user