This commit is contained in:
Egor Matveev
2022-03-15 23:09:38 +03:00
parent 76a74efbe7
commit 80e0867526
8 changed files with 169 additions and 3 deletions

View File

@@ -10,3 +10,4 @@ from Main.models.progress import Progress
from Main.models.solution_file import SolutionFile
from Main.models.friendship import Friendship
from Main.models.language_apply import LanguageApply
from Main.models.dump import Dump

25
Main/models/dump.py Normal file
View File

@@ -0,0 +1,25 @@
from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone
from .mixins import FileStorageMixin
class Dump(FileStorageMixin, models.Model):
timestamp = models.DateTimeField(default=timezone.now)
fs_id = models.IntegerField(null=True)
executor = models.ForeignKey(User, on_delete=models.CASCADE)
task = models.ForeignKey("Task", on_delete=models.CASCADE, null=True)
@property
def ready(self):
return self.fs_id is not None
@property
def str_date(self):
return self.timestamp.strftime("%Y-%m-%dT%H:%M:%S")
@property
def filename(self):
if self.task is not None:
return f"dump-task-{self.task.id}-{self.str_date}"

View File

@@ -2,6 +2,7 @@ from django.contrib.postgres.fields import ArrayField
from django.db import models
from django.contrib.auth.models import User
from Main.models.dump import Dump
from Main.models.extrafile import ExtraFile
@@ -21,6 +22,10 @@ class Task(models.Model):
def __str__(self):
return self.name
@property
def dumps(self):
return Dump.objects.filter(task=self).order_by("-timestamp")
@property
def files(self):
return ExtraFile.objects.filter(task=self, is_test=False)