Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions webapp/migrations/Version20250907161952.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

declare(strict_types=1);

namespace DoctrineMigrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20250907161952 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add submission source to submission info.';
}

public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE submission ADD source VARCHAR(255) NOT NULL DEFAULT \'unknown\' COMMENT \'Where did we receive this submission from?\'');
}

public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE submission DROP source');
}

public function isTransactional(): bool
{
return false;
}
}
17 changes: 17 additions & 0 deletions webapp/src/Entity/Submission.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ class Submission extends BaseApiEntity implements
#[Serializer\Groups([ARC::GROUP_NONSTRICT])]
private ?string $importError = null;

#[ORM\Column(options: [
'comment' => 'Where did we receive this submission from?',
])]
#[Serializer\Exclude]
private SubmissionSource $source = SubmissionSource::UNKNOWN;

#[ORM\ManyToOne(inversedBy: 'submissions')]
#[ORM\JoinColumn(name: 'cid', referencedColumnName: 'cid', onDelete: 'CASCADE')]
#[Serializer\Exclude]
Expand Down Expand Up @@ -553,4 +559,15 @@ public function getFileForApi(): array
{
return array_filter([$this->fileForApi]);
}

public function setSource(SubmissionSource $source): Submission
{
$this->source = $source;
return $this;
}

public function getSource(): SubmissionSource
{
return $this->source;
}
}
3 changes: 2 additions & 1 deletion webapp/src/Service/SubmissionService.php
Original file line number Diff line number Diff line change
Expand Up @@ -700,7 +700,8 @@ public function submitSolution(
->setOriginalSubmission($originalSubmission)
->setEntryPoint($entryPoint)
->setExternalid($externalId)
->setImportError($importError);
->setImportError($importError)
->setSource($source);

// Add expected results from source. We only do this for jury submissions
// to prevent accidental auto-verification of team submissions.
Expand Down
Loading