diff --git a/Main/migrations/0032_auto_20220408_0018.py b/Main/migrations/0032_auto_20220408_0018.py new file mode 100644 index 0000000..eb86b42 --- /dev/null +++ b/Main/migrations/0032_auto_20220408_0018.py @@ -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), + ), + ] diff --git a/Main/models/dump.py b/Main/models/dump.py index 87f05dd..8b895b9 100644 --- a/Main/models/dump.py +++ b/Main/models/dump.py @@ -7,9 +7,9 @@ from .mixins import FileStorageMixin class Dump(FileStorageMixin, models.Model): 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) - task = models.ForeignKey("Task", on_delete=models.CASCADE, null=True) + task = models.ForeignKey("Task", on_delete=models.CASCADE, null=True, blank=True) @property def ready(self): diff --git a/Main/models/extrafile.py b/Main/models/extrafile.py index f25d77d..ea6c208 100644 --- a/Main/models/extrafile.py +++ b/Main/models/extrafile.py @@ -7,11 +7,11 @@ from .mixins import FileStorageMixin class ExtraFile(FileStorageMixin, models.Model): task = models.ForeignKey("Task", on_delete=models.CASCADE) filename = models.TextField() - is_test = models.BooleanField(null=True) - is_sample = models.BooleanField(null=True) - readable = models.BooleanField(null=True) - test_number = models.IntegerField(null=True) - fs_id = models.IntegerField(null=True) + is_test = models.BooleanField(null=True, blank=True) + is_sample = models.BooleanField(null=True, blank=True) + readable = models.BooleanField(null=True, blank=True) + test_number = models.IntegerField(null=True, blank=True) + fs_id = models.IntegerField(null=True, blank=True) class Meta: indexes = [ diff --git a/Main/models/group.py b/Main/models/group.py index e9c68db..25ab29f 100644 --- a/Main/models/group.py +++ b/Main/models/group.py @@ -10,10 +10,10 @@ from Main.models.set import Set class Group(models.Model): name = models.TextField() 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") 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 def available_sets(self): diff --git a/Main/models/progress.py b/Main/models/progress.py index 8407658..0a6b314 100644 --- a/Main/models/progress.py +++ b/Main/models/progress.py @@ -11,7 +11,7 @@ class Progress(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) task = models.ForeignKey(Task, on_delete=models.CASCADE) 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) finished = models.BooleanField(default=False) diff --git a/Main/models/set.py b/Main/models/set.py index 1c0b1b3..005f1f0 100644 --- a/Main/models/set.py +++ b/Main/models/set.py @@ -13,10 +13,10 @@ from SprintLib.language import languages class Set(models.Model): name = models.TextField() 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) - start_time = models.DateTimeField(default=None, null=True) - end_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, blank=True) editors = ArrayField(models.TextField(), default=list) languages = ArrayField(models.IntegerField(), default=list) auto_add_new_languages = models.BooleanField(default=True) diff --git a/Main/models/solution.py b/Main/models/solution.py index 6b1af46..a51666a 100644 --- a/Main/models/solution.py +++ b/Main/models/solution.py @@ -21,8 +21,8 @@ class Solution(models.Model): language_id = models.IntegerField(default=0) time_sent = models.DateTimeField(default=timezone.now) result = models.TextField(default=CONSTS["in_queue_status"]) - test = models.IntegerField(default=None, null=True) - set = models.ForeignKey(Set, null=True, on_delete=models.SET_NULL) + test = models.IntegerField(default=None, null=True, blank=True) + set = models.ForeignKey(Set, null=True, blank=True, on_delete=models.SET_NULL) extras = JSONField(default=dict) class Meta: diff --git a/Main/models/task.py b/Main/models/task.py index ade4ab2..dcf6c3a 100644 --- a/Main/models/task.py +++ b/Main/models/task.py @@ -17,7 +17,7 @@ class Task(models.Model): specifications = models.TextField(default="") time_limit = models.IntegerField(default=10000) 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) allow_sharing = models.BooleanField(default=False) changes = JSONField(default=list) diff --git a/Main/models/userinfo.py b/Main/models/userinfo.py index c9b0634..3f05adf 100644 --- a/Main/models/userinfo.py +++ b/Main/models/userinfo.py @@ -13,19 +13,19 @@ from SprintLib.language import languages class UserInfo(models.Model): - surname = models.TextField(null=True) - name = models.TextField(null=True) + surname = models.TextField(null=True, blank=True) + name = models.TextField(null=True, blank=True) last_request = models.DateTimeField(default=timezone.now) - profile_picture_fs_id = models.IntegerField(null=True) - favourite_language_id = models.IntegerField(null=True) + profile_picture_fs_id = models.IntegerField(null=True, blank=True) + favourite_language_id = models.IntegerField(null=True, blank=True) 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="") - vk_user_id = models.IntegerField(null=True) + vk_user_id = models.IntegerField(null=True, blank=True) notification_solution_result = models.BooleanField(default=False) notification_friends = 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) teacher = models.BooleanField(default=False)