mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 19:07:10 +00:00
Merge branch 'master' of gitlab.prodcontest.ru:team-15/project into feature/admin_validators
This commit is contained in:
@@ -18,7 +18,7 @@ def analyze_data_task(self, submission_id):
|
|||||||
files = [
|
files = [
|
||||||
{
|
{
|
||||||
"url": (
|
"url": (
|
||||||
f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}/"
|
f"{settings.MINIO_DEFAULT_CUSTOM_ENDPOINT_URL}"
|
||||||
f"{urlparse(attachment.file.url).path}"
|
f"{urlparse(attachment.file.url).path}"
|
||||||
),
|
),
|
||||||
"bind_path": attachment.bind_at,
|
"bind_path": attachment.bind_at,
|
||||||
|
|||||||
@@ -55,7 +55,6 @@ export const Header = () => {
|
|||||||
<div className="md:hidden">
|
<div className="md:hidden">
|
||||||
<Link to="/docs">
|
<Link to="/docs">
|
||||||
<DropdownMenuItem>
|
<DropdownMenuItem>
|
||||||
<FileText className="h-4 w-4 mr-2" />
|
|
||||||
Материалы
|
Материалы
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -25,14 +25,7 @@ const TaskContent: React.FC<TaskContentProps> = ({ task }) => {
|
|||||||
|
|
||||||
const attachments = attachmentsQuery.data || [];
|
const attachments = attachmentsQuery.data || [];
|
||||||
|
|
||||||
const convertToMarkdown = (text: string): string => {
|
|
||||||
if (!text) return '';
|
|
||||||
|
|
||||||
let markdown = text.replace(/\n/g, '\n\n');
|
|
||||||
return markdown;
|
|
||||||
};
|
|
||||||
|
|
||||||
const markdownText = convertToMarkdown(task.description);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex-1 bg-white rounded-lg p-6">
|
<div className="flex-1 bg-white rounded-lg p-6">
|
||||||
@@ -45,7 +38,7 @@ const TaskContent: React.FC<TaskContentProps> = ({ task }) => {
|
|||||||
remarkPlugins={[remarkMath, remarkGfm]}
|
remarkPlugins={[remarkMath, remarkGfm]}
|
||||||
rehypePlugins={[rehypeKatex]}
|
rehypePlugins={[rehypeKatex]}
|
||||||
>
|
>
|
||||||
{markdownText}
|
{task.description}
|
||||||
</ReactMarkdown>
|
</ReactMarkdown>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ const CompetitionSession = () => {
|
|||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
setIsReloading(false);
|
|
||||||
}, 2500);
|
}, 2500);
|
||||||
},
|
},
|
||||||
onError: (error) => {
|
onError: (error) => {
|
||||||
@@ -69,7 +68,9 @@ const CompetitionSession = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const competition = competitionQuery.data;
|
const competition = competitionQuery.data;
|
||||||
const tasks = tasksQuery.data || [];
|
const tasks = [...(tasksQuery.data || [])].sort((a, b) => {
|
||||||
|
return a.in_competition_position - b.in_competition_position;
|
||||||
|
});
|
||||||
const results = resultsQuery.data || [];
|
const results = resultsQuery.data || [];
|
||||||
const isLoading = tasksQuery.isLoading || competitionQuery.isLoading;
|
const isLoading = tasksQuery.isLoading || competitionQuery.isLoading;
|
||||||
const error = tasksQuery.error || competitionQuery.error
|
const error = tasksQuery.error || competitionQuery.error
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ export function CompetitionCard({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
className={cn("aspect-square h-full w-auto overflow-hidden", className)}
|
className={cn("h-full w-full overflow-hidden flex flex-col", className)}
|
||||||
>
|
>
|
||||||
<div className="relative h-full overflow-hidden">
|
<div className="h-48 overflow-hidden">
|
||||||
<img
|
<img
|
||||||
src={competition.image_url ? competition.image_url : '/DANO.png'}
|
src={competition.image_url ? competition.image_url : '/DANO.png'}
|
||||||
alt={competition.title}
|
alt={competition.title}
|
||||||
@@ -42,8 +42,8 @@ export function CompetitionCard({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<CardContent className="p-4">
|
<CardContent className="p-4 flex-1 flex flex-col">
|
||||||
<div className="flex flex-col gap-2.5">
|
<div className="flex flex-col gap-2.5 h-full">
|
||||||
<div className="text-muted-foreground flex items-center gap-2 *:text-sm *:font-semibold">
|
<div className="text-muted-foreground flex items-center gap-2 *:text-sm *:font-semibold">
|
||||||
<span>
|
<span>
|
||||||
{competition.type === CompetitionType.COMPETITIVE
|
{competition.type === CompetitionType.COMPETITIVE
|
||||||
@@ -67,7 +67,7 @@ export function CompetitionCard({
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
{competition.type === CompetitionType.COMPETITIVE && (
|
{competition.type === CompetitionType.COMPETITIVE && (
|
||||||
<div className="text-gray-500 text-sm mt-1">
|
<div className="text-gray-500 text-sm mt-auto pt-2">
|
||||||
{competition.start_date && (
|
{competition.start_date && (
|
||||||
<div className="flex items-center gap-1.5">
|
<div className="flex items-center gap-1.5">
|
||||||
<Clock size={14} />
|
<Clock size={14} />
|
||||||
|
|||||||
Reference in New Issue
Block a user