mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-06-10 04:32:34 +00:00
<type>(scope): <description>
[body] [footer(s)]
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
from random import choice
|
||||
from uuid import uuid4
|
||||
|
||||
from django.db import models
|
||||
@@ -7,7 +6,6 @@ from apps.task.validators import ContestTaskCriteriesValidator
|
||||
from apps.competition.models import Competition
|
||||
from apps.core.models import BaseModel
|
||||
from apps.user.models import User
|
||||
from apps.task.models import CompetitionTask
|
||||
|
||||
|
||||
class CompetitionTask(BaseModel):
|
||||
@@ -52,14 +50,29 @@ class CompetetionTaskSumbission(BaseModel):
|
||||
def submission_stdout_upload_to(instance, filename) -> str:
|
||||
return f"/submissions/{instance.id}/stdout"
|
||||
|
||||
status = models.CharField(
|
||||
choices=StatusChoices.choices, default=StatusChoices.SENT, max_length=2
|
||||
)
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
task = models.ForeignKey(CompetitionTask, on_delete=models.CASCADE)
|
||||
|
||||
status = models.CharField(
|
||||
choices=StatusChoices.choices,
|
||||
default=StatusChoices.SENT,
|
||||
max_length=8,
|
||||
)
|
||||
|
||||
# code or text or file
|
||||
content = models.FileField(upload_to=submission_content_upload_to)
|
||||
|
||||
# only if task type is checker
|
||||
stdout = models.FileField(
|
||||
upload_to=submission_stdout_upload_to, null=True, blank=True
|
||||
)
|
||||
|
||||
# depends on task type:
|
||||
# - input: {"correct": boolean}
|
||||
# - file: {"total_points": integer, "by_criteria": ["criteria_name": integer]}
|
||||
# - code: {"correct": boolean}
|
||||
result = models.JSONField(default=None, null=True, blank=True)
|
||||
# just more readable result representation, maybe will be calcuated somehow more complex depends on criteria
|
||||
earned_points = models.IntegerField()
|
||||
|
||||
timestamp = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
Reference in New Issue
Block a user