blank true

This commit is contained in:
Egor Matveev 2022-04-08 00:19:13 +03:00
parent cd6b19a4ea
commit 28f29fa610
9 changed files with 154 additions and 23 deletions

View File

@ -0,0 +1,131 @@
# Generated by Django 3.2.4 on 2022-04-07 21:18
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('Main', '0031_userinfo_vk_user_id'),
]
operations = [
migrations.AlterField(
model_name='dump',
name='fs_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='dump',
name='task',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='Main.task'),
),
migrations.AlterField(
model_name='extrafile',
name='fs_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='extrafile',
name='is_sample',
field=models.BooleanField(blank=True, null=True),
),
migrations.AlterField(
model_name='extrafile',
name='is_test',
field=models.BooleanField(blank=True, null=True),
),
migrations.AlterField(
model_name='extrafile',
name='readable',
field=models.BooleanField(blank=True, null=True),
),
migrations.AlterField(
model_name='extrafile',
name='test_number',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='group',
name='access_token',
field=models.CharField(blank=True, max_length=30, null=True),
),
migrations.AlterField(
model_name='group',
name='creator',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='progress',
name='finished_time',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AlterField(
model_name='set',
name='creator',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='set',
name='end_time',
field=models.DateTimeField(blank=True, default=None, null=True),
),
migrations.AlterField(
model_name='set',
name='start_time',
field=models.DateTimeField(blank=True, default=None, null=True),
),
migrations.AlterField(
model_name='solution',
name='set',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='Main.set'),
),
migrations.AlterField(
model_name='solution',
name='test',
field=models.IntegerField(blank=True, default=None, null=True),
),
migrations.AlterField(
model_name='task',
name='creator',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='userinfo',
name='code',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='userinfo',
name='favourite_language_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='userinfo',
name='name',
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name='userinfo',
name='profile_picture_fs_id',
field=models.IntegerField(blank=True, null=True),
),
migrations.AlterField(
model_name='userinfo',
name='surname',
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name='userinfo',
name='user',
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='userinfo',
name='vk_user_id',
field=models.IntegerField(blank=True, null=True),
),
]

View File

@ -7,9 +7,9 @@ from .mixins import FileStorageMixin
class Dump(FileStorageMixin, models.Model): class Dump(FileStorageMixin, models.Model):
timestamp = models.DateTimeField(default=timezone.now) timestamp = models.DateTimeField(default=timezone.now)
fs_id = models.IntegerField(null=True) fs_id = models.IntegerField(null=True, blank=True)
executor = models.ForeignKey(User, on_delete=models.CASCADE) executor = models.ForeignKey(User, on_delete=models.CASCADE)
task = models.ForeignKey("Task", on_delete=models.CASCADE, null=True) task = models.ForeignKey("Task", on_delete=models.CASCADE, null=True, blank=True)
@property @property
def ready(self): def ready(self):

View File

@ -7,11 +7,11 @@ from .mixins import FileStorageMixin
class ExtraFile(FileStorageMixin, models.Model): class ExtraFile(FileStorageMixin, models.Model):
task = models.ForeignKey("Task", on_delete=models.CASCADE) task = models.ForeignKey("Task", on_delete=models.CASCADE)
filename = models.TextField() filename = models.TextField()
is_test = models.BooleanField(null=True) is_test = models.BooleanField(null=True, blank=True)
is_sample = models.BooleanField(null=True) is_sample = models.BooleanField(null=True, blank=True)
readable = models.BooleanField(null=True) readable = models.BooleanField(null=True, blank=True)
test_number = models.IntegerField(null=True) test_number = models.IntegerField(null=True, blank=True)
fs_id = models.IntegerField(null=True) fs_id = models.IntegerField(null=True, blank=True)
class Meta: class Meta:
indexes = [ indexes = [

View File

@ -10,10 +10,10 @@ from Main.models.set import Set
class Group(models.Model): class Group(models.Model):
name = models.TextField() name = models.TextField()
sets = models.ManyToManyField(Set) sets = models.ManyToManyField(Set)
creator = models.ForeignKey(User, null=True, on_delete=models.SET_NULL) creator = models.ForeignKey(User, null=True, blank=True, on_delete=models.SET_NULL)
users = models.ManyToManyField(User, related_name="user_groups") users = models.ManyToManyField(User, related_name="user_groups")
editors = ArrayField(models.TextField(), default=list) editors = ArrayField(models.TextField(), default=list)
access_token = models.CharField(max_length=30, null=True) access_token = models.CharField(max_length=30, null=True, blank=True)
@property @property
def available_sets(self): def available_sets(self):

View File

@ -11,7 +11,7 @@ class Progress(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
task = models.ForeignKey(Task, on_delete=models.CASCADE) task = models.ForeignKey(Task, on_delete=models.CASCADE)
start_time = models.DateTimeField(default=timezone.now) start_time = models.DateTimeField(default=timezone.now)
finished_time = models.DateTimeField(null=True) finished_time = models.DateTimeField(null=True, blank=True)
score = models.IntegerField(default=0) score = models.IntegerField(default=0)
finished = models.BooleanField(default=False) finished = models.BooleanField(default=False)

View File

@ -13,10 +13,10 @@ from SprintLib.language import languages
class Set(models.Model): class Set(models.Model):
name = models.TextField() name = models.TextField()
public = models.BooleanField(default=False) public = models.BooleanField(default=False)
creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
opened = models.BooleanField(default=False) opened = models.BooleanField(default=False)
start_time = models.DateTimeField(default=None, null=True) start_time = models.DateTimeField(default=None, null=True, blank=True)
end_time = models.DateTimeField(default=None, null=True) end_time = models.DateTimeField(default=None, null=True, blank=True)
editors = ArrayField(models.TextField(), default=list) editors = ArrayField(models.TextField(), default=list)
languages = ArrayField(models.IntegerField(), default=list) languages = ArrayField(models.IntegerField(), default=list)
auto_add_new_languages = models.BooleanField(default=True) auto_add_new_languages = models.BooleanField(default=True)

View File

@ -21,8 +21,8 @@ class Solution(models.Model):
language_id = models.IntegerField(default=0) language_id = models.IntegerField(default=0)
time_sent = models.DateTimeField(default=timezone.now) time_sent = models.DateTimeField(default=timezone.now)
result = models.TextField(default=CONSTS["in_queue_status"]) result = models.TextField(default=CONSTS["in_queue_status"])
test = models.IntegerField(default=None, null=True) test = models.IntegerField(default=None, null=True, blank=True)
set = models.ForeignKey(Set, null=True, on_delete=models.SET_NULL) set = models.ForeignKey(Set, null=True, blank=True, on_delete=models.SET_NULL)
extras = JSONField(default=dict) extras = JSONField(default=dict)
class Meta: class Meta:

View File

@ -17,7 +17,7 @@ class Task(models.Model):
specifications = models.TextField(default="") specifications = models.TextField(default="")
time_limit = models.IntegerField(default=10000) time_limit = models.IntegerField(default=10000)
time_estimation = models.IntegerField(default=5) time_estimation = models.IntegerField(default=5)
creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) creator = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
editors = ArrayField(models.TextField(), default=list) editors = ArrayField(models.TextField(), default=list)
allow_sharing = models.BooleanField(default=False) allow_sharing = models.BooleanField(default=False)
changes = JSONField(default=list) changes = JSONField(default=list)

View File

@ -13,19 +13,19 @@ from SprintLib.language import languages
class UserInfo(models.Model): class UserInfo(models.Model):
surname = models.TextField(null=True) surname = models.TextField(null=True, blank=True)
name = models.TextField(null=True) name = models.TextField(null=True, blank=True)
last_request = models.DateTimeField(default=timezone.now) last_request = models.DateTimeField(default=timezone.now)
profile_picture_fs_id = models.IntegerField(null=True) profile_picture_fs_id = models.IntegerField(null=True, blank=True)
favourite_language_id = models.IntegerField(null=True) favourite_language_id = models.IntegerField(null=True, blank=True)
rating = models.IntegerField(default=0) rating = models.IntegerField(default=0)
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True) user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
telegram_chat_id = models.TextField(default="") telegram_chat_id = models.TextField(default="")
vk_user_id = models.IntegerField(null=True) vk_user_id = models.IntegerField(null=True, blank=True)
notification_solution_result = models.BooleanField(default=False) notification_solution_result = models.BooleanField(default=False)
notification_friends = models.BooleanField(default=False) notification_friends = models.BooleanField(default=False)
notification_messages = models.BooleanField(default=False) notification_messages = models.BooleanField(default=False)
code = models.IntegerField(null=True) code = models.IntegerField(null=True, blank=True)
verified = models.BooleanField(default=False) verified = models.BooleanField(default=False)
teacher = models.BooleanField(default=False) teacher = models.BooleanField(default=False)