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

@ -0,0 +1,49 @@
# Generated by Django 3.2.4 on 2022-01-19 21:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('Main', '0011_remove_userinfo_token'),
]
operations = [
migrations.AddIndex(
model_name='extrafile',
index=models.Index(fields=['task'], name='Main_extraf_task_id_423651_idx'),
),
migrations.AddIndex(
model_name='friendship',
index=models.Index(fields=['from_user'], name='Main_friend_from_us_0923c9_idx'),
),
migrations.AddIndex(
model_name='friendship',
index=models.Index(fields=['to_user'], name='Main_friend_to_user_389a97_idx'),
),
migrations.AddIndex(
model_name='message',
index=models.Index(fields=['chat', '-time_sent'], name='Main_messag_chat_id_494037_idx'),
),
migrations.AddIndex(
model_name='progress',
index=models.Index(fields=['user', 'task'], name='Main_progre_user_id_3ed604_idx'),
),
migrations.AddIndex(
model_name='settask',
index=models.Index(fields=['set'], name='Main_settas_set_id_046a3e_idx'),
),
migrations.AddIndex(
model_name='solution',
index=models.Index(fields=['task', 'user', '-time_sent'], name='Main_soluti_task_id_0d9c15_idx'),
),
migrations.AddIndex(
model_name='solution',
index=models.Index(fields=['task', '-time_sent'], name='Main_soluti_task_id_878836_idx'),
),
migrations.AddIndex(
model_name='solutionfile',
index=models.Index(fields=['solution'], name='Main_soluti_solutio_cebd76_idx'),
),
]

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'])
]

7
Main/views/SetView.py Normal file
View File

@ -0,0 +1,7 @@
from SprintLib.BaseView import BaseView
class SetView(BaseView):
required_login = True
endpoint = 'set'
view_file = 'set.html'

View File

@ -18,3 +18,4 @@ from Main.views.SolutionsView import SolutionsView
from Main.views.ChatView import ChatView
from Main.views.ChatWithView import ChatWithView
from Main.views.MessagesView import MessagesView
from Main.views.SetView import SetView