This commit is contained in:
Egor Matveev
2022-01-20 00:48:23 +03:00
parent 39a61ba1d6
commit a09ec5234a
10 changed files with 94 additions and 0 deletions

View File

@@ -13,6 +13,11 @@ class ExtraFile(FileStorageMixin, models.Model):
test_number = models.IntegerField(null=True)
fs_id = models.IntegerField(null=True)
class Meta:
indexes = [
models.Index(fields=['task'])
]
@property
def can_be_sample(self):
return (

View File

@@ -6,3 +6,9 @@ class Friendship(models.Model):
from_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="from_friendship")
to_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="to_friendship")
verified = models.BooleanField(default=False)
class Meta:
indexes = [
models.Index(fields=['from_user']),
models.Index(fields=['to_user'])
]

View File

@@ -11,3 +11,8 @@ class Message(models.Model):
text = models.TextField()
read = models.BooleanField(default=False)
time_sent = models.DateTimeField(default=timezone.now)
class Meta:
indexes = [
models.Index(fields=['chat', '-time_sent'])
]

View File

@@ -15,6 +15,11 @@ class Progress(models.Model):
score = models.IntegerField(default=0)
finished = models.BooleanField(default=False)
class Meta:
indexes = [
models.Index(fields=['user', 'task'])
]
@property
def time(self):
if not self.finished:

View File

@@ -8,3 +8,8 @@ class SetTask(models.Model):
set = models.ForeignKey(Set, on_delete=models.CASCADE, related_name="settasks")
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name="settasks")
name = models.CharField(max_length=2)
class Meta:
indexes = [
models.Index(fields=['set'])
]

View File

@@ -21,6 +21,12 @@ class Solution(models.Model):
result = models.TextField(default=CONSTS["in_queue_status"])
test = models.IntegerField(default=None, null=True)
class Meta:
indexes = [
models.Index(fields=['task', 'user', '-time_sent']),
models.Index(fields=['task', '-time_sent'])
]
@property
def language(self):
return languages[self.language_id]

View File

@@ -7,3 +7,8 @@ class SolutionFile(FileStorageMixin, models.Model):
path = models.TextField()
fs_id = models.IntegerField()
solution = models.ForeignKey("Solution", on_delete=models.CASCADE)
class Meta:
indexes = [
models.Index(fields=['solution'])
]