删掉旧的数据库迁移文件

This commit is contained in:
2025-06-14 17:08:52 +08:00
parent 258e1474ee
commit 45d727a9e0
70 changed files with 208 additions and 2144 deletions

View File

@@ -1,13 +1,9 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.12 on 2017-01-23 07:59
from __future__ import unicode_literals
import django.db.models.deletion
import jsonfield.fields
from django.conf import settings
from django.db import migrations, models
import account.models import account.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -24,19 +20,21 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('password', models.CharField(max_length=128, verbose_name='password')), ('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('username', models.CharField(max_length=30, unique=True)), ('username', models.TextField(unique=True)),
('real_name', models.CharField(max_length=30, null=True)), ('email', models.TextField(null=True)),
('email', models.EmailField(max_length=254, null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)), ('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('admin_type', models.CharField(default='regular_user', max_length=24)), ('admin_type', models.TextField(default='Regular User')),
('reset_password_token', models.CharField(max_length=40, null=True)), ('problem_permission', models.TextField(default='None')),
('reset_password_token', models.TextField(null=True)),
('reset_password_token_expire_time', models.DateTimeField(null=True)), ('reset_password_token_expire_time', models.DateTimeField(null=True)),
('auth_token', models.CharField(max_length=40, null=True)), ('auth_token', models.TextField(null=True)),
('two_factor_auth', models.BooleanField(default=False)), ('two_factor_auth', models.BooleanField(default=False)),
('tfa_token', models.CharField(max_length=40, null=True)), ('tfa_token', models.TextField(null=True)),
('session_keys', models.JSONField(default=list)),
('open_api', models.BooleanField(default=False)), ('open_api', models.BooleanField(default=False)),
('open_api_appkey', models.CharField(max_length=35, null=True)), ('open_api_appkey', models.TextField(null=True)),
('is_disabled', models.BooleanField(default=False)), ('is_disabled', models.BooleanField(default=False)),
('raw_password', models.CharField(blank=True, max_length=20, null=True, verbose_name='明文密码')),
], ],
options={ options={
'db_table': 'user', 'db_table': 'user',
@@ -49,18 +47,19 @@ class Migration(migrations.Migration):
name='UserProfile', name='UserProfile',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('problems_status', jsonfield.fields.JSONField(default={})), ('acm_problems_status', models.JSONField(default=dict)),
('avatar', models.CharField(default="default.png", max_length=50)), ('oi_problems_status', models.JSONField(default=dict)),
('blog', models.URLField(blank=True, null=True)), ('real_name', models.TextField(null=True)),
('mood', models.CharField(blank=True, max_length=200, null=True)), ('avatar', models.TextField(default='/public/avatar/default.png')),
('accepted_problem_number', models.IntegerField(default=0)), ('blog', models.URLField(null=True)),
('mood', models.TextField(null=True)),
('github', models.TextField(null=True)),
('school', models.TextField(null=True)),
('major', models.TextField(null=True)),
('language', models.TextField(null=True)),
('accepted_number', models.IntegerField(default=0)),
('total_score', models.BigIntegerField(default=0)),
('submission_number', models.IntegerField(default=0)), ('submission_number', models.IntegerField(default=0)),
('phone_number', models.CharField(blank=True, max_length=15, null=True)),
('school', models.CharField(blank=True, max_length=200, null=True)),
('major', models.CharField(blank=True, max_length=200, null=True)),
('student_id', models.CharField(blank=True, max_length=15, null=True)),
('time_zone', models.CharField(blank=True, max_length=32, null=True)),
('language', models.CharField(blank=True, max_length=32, null=True)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
options={ options={

View File

@@ -1,25 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-09 10:28
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='user',
name='problem_permission',
field=models.CharField(default='None', max_length=24),
),
migrations.AlterField(
model_name='user',
name='admin_type',
field=models.CharField(default='Regular User', max_length=24),
),
]

View File

@@ -1,29 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-08-20 02:03
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0002_auto_20170209_1028'),
]
operations = [
migrations.AddField(
model_name='userprofile',
name='total_score',
field=models.BigIntegerField(default=0),
),
migrations.RenameField(
model_name='userprofile',
old_name='accepted_problem_number',
new_name='accepted_number',
),
migrations.RemoveField(
model_name='userprofile',
name='time_zone',
)
]

View File

@@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-08-30 11:54
from __future__ import unicode_literals
from django.db import migrations, models
import jsonfield.fields
class Migration(migrations.Migration):
dependencies = [
('account', '0003_userprofile_total_score'),
]
operations = [
migrations.RenameField(
model_name='userprofile',
old_name='problems_status',
new_name='acm_problems_status',
),
migrations.AddField(
model_name='userprofile',
name='oi_problems_status',
field=jsonfield.fields.JSONField(default={}),
),
migrations.RemoveField(
model_name='user',
name='real_name',
),
migrations.RemoveField(
model_name='userprofile',
name='student_id',
),
migrations.AddField(
model_name='userprofile',
name='real_name',
field=models.CharField(max_length=30, blank=True, null=True),
),
]

View File

@@ -1,36 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-09-16 06:22
from __future__ import unicode_literals
from django.db import migrations, models
import jsonfield.fields
class Migration(migrations.Migration):
dependencies = [
('account', '0005_auto_20170830_1154'),
]
operations = [
migrations.AddField(
model_name='user',
name='session_keys',
field=jsonfield.fields.JSONField(default=[]),
),
migrations.RenameField(
model_name='userprofile',
old_name='phone_number',
new_name='github',
),
migrations.AlterField(
model_name='userprofile',
name='avatar',
field=models.CharField(default='/static/avatar/default.png', max_length=50),
),
migrations.AlterField(
model_name='userprofile',
name='github',
field=models.CharField(blank=True, max_length=50, null=True),
),
]

View File

@@ -1,105 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-11 12:14
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0006_user_session_keys'),
]
operations = [
migrations.RemoveField(
model_name='userprofile',
name='language',
),
migrations.AlterField(
model_name='user',
name='admin_type',
field=models.CharField(default='Regular User', max_length=32),
),
migrations.AlterField(
model_name='user',
name='auth_token',
field=models.CharField(max_length=32, null=True),
),
migrations.AlterField(
model_name='user',
name='email',
field=models.EmailField(max_length=64, null=True),
),
migrations.AlterField(
model_name='user',
name='open_api_appkey',
field=models.CharField(max_length=32, null=True),
),
migrations.AlterField(
model_name='user',
name='problem_permission',
field=models.CharField(default='None', max_length=32),
),
migrations.AlterField(
model_name='user',
name='reset_password_token',
field=models.CharField(max_length=32, null=True),
),
migrations.AlterField(
model_name='user',
name='session_keys',
field=django.contrib.postgres.fields.jsonb.JSONField(default=list),
),
migrations.AlterField(
model_name='user',
name='tfa_token',
field=models.CharField(max_length=32, null=True),
),
migrations.AlterField(
model_name='user',
name='username',
field=models.CharField(max_length=32, unique=True),
),
migrations.AlterField(
model_name='userprofile',
name='acm_problems_status',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterField(
model_name='userprofile',
name='avatar',
field=models.CharField(default='/static/avatar/default.png', max_length=256),
),
migrations.AlterField(
model_name='userprofile',
name='github',
field=models.CharField(blank=True, max_length=64, null=True),
),
migrations.AlterField(
model_name='userprofile',
name='major',
field=models.CharField(blank=True, max_length=64, null=True),
),
migrations.AlterField(
model_name='userprofile',
name='mood',
field=models.CharField(blank=True, max_length=256, null=True),
),
migrations.AlterField(
model_name='userprofile',
name='oi_problems_status',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterField(
model_name='userprofile',
name='real_name',
field=models.CharField(blank=True, max_length=32, null=True),
),
migrations.AlterField(
model_name='userprofile',
name='school',
field=models.CharField(blank=True, max_length=64, null=True),
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-11-25 15:14
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0008_auto_20171011_1214'),
]
operations = [
migrations.AlterField(
model_name='userprofile',
name='avatar',
field=models.CharField(default='/public/avatar/default.png', max_length=256),
),
]

View File

@@ -1,85 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0009_auto_20171125_1514'),
]
operations = [
migrations.AlterField(
model_name='user',
name='admin_type',
field=models.TextField(default='Regular User'),
),
migrations.AlterField(
model_name='user',
name='auth_token',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='user',
name='open_api_appkey',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='user',
name='problem_permission',
field=models.TextField(default='None'),
),
migrations.AlterField(
model_name='user',
name='reset_password_token',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='user',
name='tfa_token',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='user',
name='username',
field=models.TextField(unique=True),
),
migrations.AlterField(
model_name='userprofile',
name='avatar',
field=models.TextField(default='/public/avatar/default.png'),
),
migrations.AlterField(
model_name='userprofile',
name='blog',
field=models.URLField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='github',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='major',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='mood',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='real_name',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='userprofile',
name='school',
field=models.TextField(null=True),
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:56
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0010_auto_20180501_0436'),
]
operations = [
migrations.AlterField(
model_name='user',
name='email',
field=models.TextField(null=True),
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2018-07-15 02:06
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0011_auto_20180501_0456'),
]
operations = [
migrations.AddField(
model_name='userprofile',
name='language',
field=models.TextField(null=True),
),
]

View File

@@ -1,28 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0012_userprofile_language'),
]
operations = [
migrations.AlterField(
model_name='user',
name='session_keys',
field=models.JSONField(default=list),
),
migrations.AlterField(
model_name='userprofile',
name='acm_problems_status',
field=models.JSONField(default=dict),
),
migrations.AlterField(
model_name='userprofile',
name='oi_problems_status',
field=models.JSONField(default=dict),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.0.6 on 2025-05-09 13:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('account', '0013_alter_user_session_keys_and_more'),
]
operations = [
migrations.AddField(
model_name='user',
name='raw_password',
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='明文密码'),
),
]

View File

@@ -1,13 +1,10 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.12 on 2017-01-23 07:59
from __future__ import unicode_literals
import django.db.models.deletion import django.db.models.deletion
import utils.models
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import utils.models
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -22,15 +19,18 @@ class Migration(migrations.Migration):
name='Announcement', name='Announcement',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=50)), ('title', models.TextField()),
('content', utils.models.RichTextField()), ('content', utils.models.RichTextField()),
('tag', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(auto_now=True)), ('last_update_time', models.DateTimeField(auto_now=True)),
('visible', models.BooleanField(default=True)), ('visible', models.BooleanField(default=True)),
('top', models.BooleanField(default=False)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
options={ options={
'db_table': 'announcement', 'db_table': 'announcement',
'ordering': ('-top', '-create_time'),
}, },
), ),
] ]

View File

@@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-11 12:14
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('announcement', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='announcement',
name='title',
field=models.CharField(max_length=64),
),
migrations.AlterModelOptions(
name='announcement',
options={'ordering': ('-create_time',)},
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('announcement', '0002_auto_20171011_1214'),
]
operations = [
migrations.AlterField(
model_name='announcement',
name='title',
field=models.TextField(),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('announcement', '0003_auto_20180501_0436'),
]
operations = [
migrations.AddField(
model_name='announcement',
name='tag',
field=models.TextField(default=''),
preserve_default=False,
),
]

View File

@@ -1,22 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-23 11:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("announcement", "0004_announcement_tag"),
]
operations = [
migrations.AlterModelOptions(
name="announcement",
options={"ordering": ("-top", "-create_time")},
),
migrations.AddField(
model_name="announcement",
name="top",
field=models.BooleanField(default=False),
),
]

View File

@@ -1,61 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-25 11:47
import django.db.models.deletion
import utils.models
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("announcement", "0005_alter_announcement_options_announcement_top"),
("submission", "0013_alter_submission_info_and_more"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name="Message",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("message", utils.models.RichTextField()),
("create_time", models.DateTimeField(auto_now_add=True)),
(
"recipient",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="recipient",
to=settings.AUTH_USER_MODEL,
),
),
(
"sender",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="sender",
to=settings.AUTH_USER_MODEL,
),
),
(
"submission",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="submission.submission",
),
),
],
options={
"db_table": "message",
"ordering": ("-create_time",),
},
),
]

View File

@@ -1,16 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-29 15:38
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('announcement', '0006_message'),
]
operations = [
migrations.DeleteModel(
name='Message',
),
]

View File

@@ -1,39 +1,38 @@
# Generated by Django 5.0.6 on 2024-06-29 13:32 # Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion import django.db.models.deletion
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('problem', '0015_alter_problem_io_mode_alter_problem_languages_and_more'), ('problem', '0001_initial'),
('submission', '0013_alter_submission_info_and_more'), ('submission', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Comment', name='Comment',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('language', models.CharField(default='Python', choices=[('Python', 'Python'), ('C', 'C'), ('C++', 'C++'), ('Java', 'Java')], max_length=10, verbose_name='解决这道题使用的语言')), ('language', models.CharField(choices=[('Python', 'Python'), ('C', 'C'), ('C++', 'C++'), ('Java', 'Java')], default='Python', max_length=10, verbose_name='解决这道题使用的语言')),
('description_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目描述的分数')), ('description_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目描述的分数')),
('difficulty_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目难度的分数')), ('difficulty_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目难度的分数')),
('comprehensive_rating', models.PositiveSmallIntegerField(default=5, verbose_name='综合的分数')), ('comprehensive_rating', models.PositiveSmallIntegerField(default=5, verbose_name='综合的分数')),
('content', models.TextField(blank=True, null=True)), ('content', models.TextField(blank=True, null=True)),
('visible', models.BooleanField(default=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('create_time', models.DateTimeField(auto_now_add=True)), ('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='problem.problem')),
('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='problem.problem')), ('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='submission.submission')),
('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='submission.submission')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ],
], options={
options={ 'db_table': 'comment',
'db_table': 'comment', 'ordering': ('-create_time',),
'ordering': ('-create_time',), },
}, ),
), ]
]

View File

@@ -1,17 +0,0 @@
# Generated by Django 5.0.6 on 2024-07-02 12:37
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comment', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='comment',
name='visible',
),
]

View File

@@ -1,6 +1,4 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.12 on 2017-01-23 07:59
from __future__ import unicode_literals
from django.db import migrations, models from django.db import migrations, models
@@ -17,58 +15,20 @@ class Migration(migrations.Migration):
name='JudgeServer', name='JudgeServer',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('hostname', models.CharField(max_length=64)), ('hostname', models.TextField()),
('ip', models.CharField(blank=True, max_length=32, null=True)), ('ip', models.TextField(null=True)),
('judger_version', models.CharField(max_length=24)), ('judger_version', models.TextField()),
('cpu_core', models.IntegerField()), ('cpu_core', models.IntegerField()),
('memory_usage', models.FloatField()), ('memory_usage', models.FloatField()),
('cpu_usage', models.FloatField()), ('cpu_usage', models.FloatField()),
('last_heartbeat', models.DateTimeField()), ('last_heartbeat', models.DateTimeField()),
('create_time', models.DateTimeField(auto_now_add=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('task_number', models.IntegerField(default=0)), ('task_number', models.IntegerField(default=0)),
('service_url', models.CharField(blank=True, max_length=128, null=True)), ('service_url', models.TextField(null=True)),
('is_disabled', models.BooleanField(default=False)),
], ],
options={ options={
'db_table': 'judge_server', 'db_table': 'judge_server',
}, },
), ),
migrations.CreateModel(
name='JudgeServerToken',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('token', models.CharField(max_length=32)),
],
options={
'db_table': 'judge_server_token',
},
),
migrations.CreateModel(
name='SMTPConfig',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('server', models.CharField(max_length=128)),
('port', models.IntegerField(default=25)),
('email', models.CharField(max_length=128)),
('password', models.CharField(max_length=128)),
('tls', models.BooleanField()),
],
options={
'db_table': 'smtp_config',
},
),
migrations.CreateModel(
name='WebsiteConfig',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('base_url', models.CharField(default='http://127.0.0.1', max_length=128)),
('name', models.CharField(default='Online Judge', max_length=32)),
('name_shortcut', models.CharField(default='oj', max_length=32)),
('footer', models.TextField(default='Online Judge Footer')),
('allow_register', models.BooleanField(default=True)),
('submission_list_show_all', models.BooleanField(default=True)),
],
options={
'db_table': 'website_config',
},
),
] ]

View File

@@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-11 12:14
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('conf', '0001_initial'),
]
operations = [
migrations.DeleteModel(
name='JudgeServerToken',
),
migrations.DeleteModel(
name='SMTPConfig',
),
migrations.DeleteModel(
name='WebsiteConfig',
),
migrations.AlterField(
model_name='judgeserver',
name='hostname',
field=models.CharField(max_length=128),
),
migrations.AlterField(
model_name='judgeserver',
name='judger_version',
field=models.CharField(max_length=32),
),
migrations.AlterField(
model_name='judgeserver',
name='service_url',
field=models.CharField(blank=True, max_length=256, null=True),
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-12-24 03:44
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('conf', '0002_auto_20171011_1214'),
]
operations = [
migrations.AddField(
model_name='judgeserver',
name='is_disabled',
field=models.BooleanField(default=False),
),
]

View File

@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('conf', '0003_judgeserver_is_disabled'),
]
operations = [
migrations.AlterField(
model_name='judgeserver',
name='hostname',
field=models.TextField(),
),
migrations.AlterField(
model_name='judgeserver',
name='ip',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='judgeserver',
name='judger_version',
field=models.TextField(),
),
migrations.AlterField(
model_name='judgeserver',
name='service_url',
field=models.TextField(null=True),
),
]

View File

@@ -1,12 +1,9 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.12 on 2017-02-06 09:19
from __future__ import unicode_literals
import django.db.models.deletion
import utils.models
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
import jsonfield.fields
import utils.models
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -14,118 +11,78 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('problem', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
migrations.CreateModel(
name='ACMContestRank',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('total_submission_number', models.IntegerField(default=0)),
('total_ac_number', models.IntegerField(default=0)),
('total_time', models.IntegerField(default=0)),
('submission_info', jsonfield.fields.JSONField(default={})),
],
options={
'db_table': 'acm_contest_rank',
},
),
migrations.CreateModel( migrations.CreateModel(
name='Contest', name='Contest',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=40)), ('title', models.TextField()),
('description', utils.models.RichTextField()), ('description', utils.models.RichTextField()),
('tag', models.TextField()),
('real_time_rank', models.BooleanField()), ('real_time_rank', models.BooleanField()),
('password', models.CharField(blank=True, max_length=30, null=True)), ('password', models.TextField(null=True)),
('rule_type', models.CharField(max_length=36)), ('rule_type', models.TextField()),
('start_time', models.DateTimeField()), ('start_time', models.DateTimeField()),
('end_time', models.DateTimeField()), ('end_time', models.DateTimeField()),
('create_time', models.DateTimeField(auto_now_add=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(auto_now=True)), ('last_update_time', models.DateTimeField(auto_now=True)),
('visible', models.BooleanField(default=True)), ('visible', models.BooleanField(default=True)),
('allowed_ip_ranges', models.JSONField(default=list)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
options={ options={
'db_table': 'contest', 'db_table': 'contest',
'ordering': ('-start_time',),
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name='ContestAnnouncement', name='ContestAnnouncement',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=128)), ('title', models.TextField()),
('content', utils.models.RichTextField()), ('content', utils.models.RichTextField()),
('visible', models.BooleanField(default=True)),
('create_time', models.DateTimeField(auto_now_add=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest')), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
options={ options={
'db_table': 'contest_announcement', 'db_table': 'contest_announcement',
'ordering': ('-create_time',),
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name='ContestProblem', name='ACMContestRank',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=128)), ('submission_number', models.IntegerField(default=0)),
('description', utils.models.RichTextField()), ('accepted_number', models.IntegerField(default=0)),
('input_description', utils.models.RichTextField()), ('total_time', models.IntegerField(default=0)),
('output_description', utils.models.RichTextField()), ('submission_info', models.JSONField(default=dict)),
('samples', jsonfield.fields.JSONField()), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('test_case_id', models.CharField(max_length=32)), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
('test_case_score', jsonfield.fields.JSONField()),
('hint', utils.models.RichTextField(blank=True, null=True)),
('languages', jsonfield.fields.JSONField()),
('template', jsonfield.fields.JSONField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(blank=True, null=True)),
('time_limit', models.IntegerField()),
('memory_limit', models.IntegerField()),
('spj', models.BooleanField(default=False)),
('spj_language', models.CharField(blank=True, max_length=32, null=True)),
('spj_code', models.TextField(blank=True, null=True)),
('spj_version', models.CharField(blank=True, max_length=32, null=True)),
('rule_type', models.CharField(max_length=32)),
('visible', models.BooleanField(default=True)),
('difficulty', models.CharField(max_length=32)),
('source', models.CharField(blank=True, max_length=200, null=True)),
('total_submit_number', models.IntegerField(default=0)),
('total_accepted_number', models.IntegerField(default=0)),
('sort_index', models.CharField(max_length=30)),
('is_public', models.BooleanField(default=False)),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('tags', models.ManyToManyField(to='problem.ProblemTag')),
], ],
options={ options={
'db_table': 'contest_problem', 'db_table': 'acm_contest_rank',
'unique_together': {('user', 'contest')},
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name='OIContestRank', name='OIContestRank',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('total_submission_number', models.IntegerField(default=0)), ('submission_number', models.IntegerField(default=0)),
('total_score', models.IntegerField(default=0)), ('total_score', models.IntegerField(default=0)),
('submission_info', jsonfield.fields.JSONField(default={})), ('submission_info', models.JSONField(default=dict)),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest')), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
options={ options={
'db_table': 'oi_contest_rank', 'db_table': 'oi_contest_rank',
'unique_together': {('user', 'contest')},
}, },
), ),
migrations.AddField(
model_name='acmcontestrank',
name='contest',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest'),
),
migrations.AddField(
model_name='acmcontestrank',
name='user',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
] ]

View File

@@ -1,29 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-09 08:45
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='contestproblem',
name='_id',
field=models.CharField(db_index=True, default='1', max_length=24),
preserve_default=False,
),
migrations.RemoveField(
model_name='contestproblem',
name='sort_index',
),
migrations.AlterUniqueTogether(
name='contestproblem',
unique_together=set([('_id', 'contest')]),
),
]

View File

@@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-17 08:20
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contest', '0002_auto_20170209_0845'),
]
operations = [
migrations.AlterUniqueTogether(
name='contestproblem',
unique_together=set([]),
),
migrations.RemoveField(
model_name='contestproblem',
name='contest',
),
migrations.RemoveField(
model_name='contestproblem',
name='created_by',
),
migrations.RemoveField(
model_name='contestproblem',
name='tags',
),
migrations.DeleteModel(
name='ContestProblem',
),
]

View File

@@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-07-17 13:24
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contest', '0003_auto_20170217_0820'),
]
operations = [
migrations.AlterModelOptions(
name='contest',
options={'ordering': ('-create_time',)},
),
migrations.AlterModelOptions(
name='contestannouncement',
options={'ordering': ('-create_time',)},
),
]

View File

@@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-08-23 09:18
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contest', '0004_auto_20170717_1324'),
]
operations = [
migrations.RenameField(
model_name='acmcontestrank',
old_name='total_ac_number',
new_name='accepted_number',
),
migrations.RenameField(
model_name='acmcontestrank',
old_name='total_submission_number',
new_name='submission_number',
),
migrations.RenameField(
model_name='oicontestrank',
old_name='total_submission_number',
new_name='submission_number',
),
]

View File

@@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-11 12:14
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contest', '0005_auto_20170823_0918'),
]
operations = [
migrations.AlterField(
model_name='acmcontestrank',
name='submission_info',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterField(
model_name='oicontestrank',
name='submission_info',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterModelOptions(
name='contest',
options={'ordering': ('-start_time',)},
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-11-06 09:02
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0006_auto_20171011_1214'),
]
operations = [
migrations.AddField(
model_name='contestannouncement',
name='visible',
field=models.BooleanField(default=True),
),
]

View File

@@ -1,21 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-11-10 06:57
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('contest', '0007_contestannouncement_visible'),
]
operations = [
migrations.AddField(
model_name='contest',
name='allowed_ip_ranges',
field=django.contrib.postgres.fields.jsonb.JSONField(default=list),
),
]

View File

@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0008_contest_allowed_ip_ranges'),
]
operations = [
migrations.AlterField(
model_name='contest',
name='password',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='contest',
name='rule_type',
field=models.TextField(),
),
migrations.AlterField(
model_name='contest',
name='title',
field=models.TextField(),
),
migrations.AlterField(
model_name='contestannouncement',
name='title',
field=models.TextField(),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 2.1.7 on 2019-03-26 02:01
from django.conf import settings
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('contest', '0009_auto_20180501_0436'),
]
operations = [
migrations.AlterUniqueTogether(
name='acmcontestrank',
unique_together={('user', 'contest')},
),
migrations.AlterUniqueTogether(
name='oicontestrank',
unique_together={('user', 'contest')},
),
]

View File

@@ -1,28 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0010_auto_20190326_0201'),
]
operations = [
migrations.AlterField(
model_name='acmcontestrank',
name='submission_info',
field=models.JSONField(default=dict),
),
migrations.AlterField(
model_name='contest',
name='allowed_ip_ranges',
field=models.JSONField(default=list),
),
migrations.AlterField(
model_name='oicontestrank',
name='submission_info',
field=models.JSONField(default=dict),
),
]

View File

@@ -1,19 +0,0 @@
# Generated by Django 5.0.6 on 2024-07-01 08:08
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0011_alter_acmcontestrank_submission_info_and_more'),
]
operations = [
migrations.AddField(
model_name='contest',
name='tag',
field=models.TextField(default=''),
preserve_default=False,
),
]

View File

@@ -1,34 +1,34 @@
# Generated by Django 5.0.6 on 2024-06-29 15:38 # Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion import django.db.models.deletion
import utils.models import utils.models
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('submission', '0013_alter_submission_info_and_more'), ('submission', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Message', name='Message',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('message', utils.models.RichTextField()), ('message', utils.models.RichTextField()),
('create_time', models.DateTimeField(auto_now_add=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipient', to=settings.AUTH_USER_MODEL)), ('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipient', to=settings.AUTH_USER_MODEL)),
('sender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sender', to=settings.AUTH_USER_MODEL)), ('sender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sender', to=settings.AUTH_USER_MODEL)),
('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='submission.submission')), ('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='submission.submission')),
], ],
options={ options={
'db_table': 'message', 'db_table': 'message',
'ordering': ('-create_time',), 'ordering': ('-create_time',),
}, },
), ),
] ]

View File

@@ -1,8 +1,5 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.11.4 on 2017-10-23 08:11
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models from django.db import migrations, models
@@ -18,8 +15,8 @@ class Migration(migrations.Migration):
name='SysOptions', name='SysOptions',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.CharField(db_index=True, max_length=128, unique=True)), ('key', models.TextField(db_index=True, unique=True)),
('value', django.contrib.postgres.fields.jsonb.JSONField()), ('value', models.JSONField()),
], ],
), ),
] ]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('options', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='sysoptions',
name='key',
field=models.TextField(db_index=True, unique=True),
),
]

View File

@@ -1,18 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('options', '0002_auto_20180501_0436'),
]
operations = [
migrations.RunSQL("""
DELETE FROM options_sysoptions WHERE key = 'languages';
""")
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('options', '0003_migrate_languages_options'),
]
operations = [
migrations.AlterField(
model_name='sysoptions',
name='value',
field=models.JSONField(),
),
]

View File

@@ -1,12 +1,10 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.12 on 2017-02-06 09:19
from __future__ import unicode_literals
import django.db.models.deletion
import problem.models
import utils.models
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion
import jsonfield.fields
import utils.models
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -14,58 +12,64 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('contest', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
migrations.CreateModel(
name='Problem',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=128)),
('description', utils.models.RichTextField()),
('input_description', utils.models.RichTextField()),
('output_description', utils.models.RichTextField()),
('samples', jsonfield.fields.JSONField()),
('test_case_id', models.CharField(max_length=32)),
('test_case_score', jsonfield.fields.JSONField()),
('hint', utils.models.RichTextField(blank=True, null=True)),
('languages', jsonfield.fields.JSONField()),
('template', jsonfield.fields.JSONField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(blank=True, null=True)),
('time_limit', models.IntegerField()),
('memory_limit', models.IntegerField()),
('spj', models.BooleanField(default=False)),
('spj_language', models.CharField(blank=True, max_length=32, null=True)),
('spj_code', models.TextField(blank=True, null=True)),
('spj_version', models.CharField(blank=True, max_length=32, null=True)),
('rule_type', models.CharField(max_length=32)),
('visible', models.BooleanField(default=True)),
('difficulty', models.CharField(max_length=32)),
('source', models.CharField(blank=True, max_length=200, null=True)),
('total_submit_number', models.IntegerField(default=0)),
('total_accepted_number', models.IntegerField(default=0)),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
options={
'db_table': 'problem',
'abstract': False,
},
),
migrations.CreateModel( migrations.CreateModel(
name='ProblemTag', name='ProblemTag',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=30)), ('name', models.TextField()),
], ],
options={ options={
'db_table': 'problem_tag', 'db_table': 'problem_tag',
}, },
), ),
migrations.AddField( migrations.CreateModel(
model_name='problem', name='Problem',
name='tags', fields=[
field=models.ManyToManyField(to='problem.ProblemTag'), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('_id', models.TextField(db_index=True)),
('is_public', models.BooleanField(default=False)),
('title', models.TextField()),
('description', utils.models.RichTextField()),
('input_description', utils.models.RichTextField()),
('output_description', utils.models.RichTextField()),
('samples', models.JSONField()),
('test_case_id', models.TextField()),
('test_case_score', models.JSONField()),
('hint', utils.models.RichTextField(null=True)),
('languages', models.JSONField()),
('template', models.JSONField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(auto_now=True, null=True)),
('time_limit', models.IntegerField()),
('memory_limit', models.IntegerField()),
('io_mode', models.JSONField(default=problem.models._default_io_mode)),
('spj', models.BooleanField(default=False)),
('spj_language', models.TextField(null=True)),
('spj_code', models.TextField(null=True)),
('spj_version', models.TextField(null=True)),
('spj_compile_ok', models.BooleanField(default=False)),
('rule_type', models.TextField()),
('visible', models.BooleanField(default=True)),
('difficulty', models.TextField()),
('source', models.TextField(null=True)),
('total_score', models.IntegerField(default=0)),
('submission_number', models.BigIntegerField(default=0)),
('accepted_number', models.BigIntegerField(default=0)),
('statistic_info', models.JSONField(default=dict)),
('share_submission', models.BooleanField(default=False)),
('contest', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('tags', models.ManyToManyField(to='problem.problemtag')),
],
options={
'db_table': 'problem',
'ordering': ('create_time',),
'unique_together': {('_id', 'contest')},
},
), ),
] ]

View File

@@ -1,21 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-09 08:45
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='problem',
name='_id',
field=models.CharField(db_index=True, default='1', max_length=24, unique=True),
preserve_default=False,
),
]

View File

@@ -1,63 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-17 08:20
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import jsonfield.fields
import utils.models
class Migration(migrations.Migration):
dependencies = [
('contest', '0003_auto_20170217_0820'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('problem', '0002_problem__id'),
]
operations = [
migrations.CreateModel(
name='ContestProblem',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=128)),
('description', utils.models.RichTextField()),
('input_description', utils.models.RichTextField()),
('output_description', utils.models.RichTextField()),
('samples', jsonfield.fields.JSONField()),
('test_case_id', models.CharField(max_length=32)),
('test_case_score', jsonfield.fields.JSONField()),
('hint', utils.models.RichTextField(blank=True, null=True)),
('languages', jsonfield.fields.JSONField()),
('template', jsonfield.fields.JSONField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(blank=True, null=True)),
('time_limit', models.IntegerField()),
('memory_limit', models.IntegerField()),
('spj', models.BooleanField(default=False)),
('spj_language', models.CharField(blank=True, max_length=32, null=True)),
('spj_code', models.TextField(blank=True, null=True)),
('spj_version', models.CharField(blank=True, max_length=32, null=True)),
('rule_type', models.CharField(max_length=32)),
('visible', models.BooleanField(default=True)),
('difficulty', models.CharField(max_length=32)),
('source', models.CharField(blank=True, max_length=200, null=True)),
('total_submit_number', models.IntegerField(default=0)),
('total_accepted_number', models.IntegerField(default=0)),
('_id', models.CharField(db_index=True, max_length=24)),
('is_public', models.BooleanField(default=False)),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest')),
('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('tags', models.ManyToManyField(to='problem.ProblemTag')),
],
options={
'db_table': 'contest_problem',
},
),
migrations.AlterUniqueTogether(
name='contestproblem',
unique_together=set([('_id', 'contest')]),
),
]

View File

@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-05-01 06:37
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0003_auto_20170217_0820'),
]
operations = [
migrations.AlterField(
model_name='contestproblem',
name='total_accepted_number',
field=models.BigIntegerField(default=0),
),
migrations.AlterField(
model_name='contestproblem',
name='total_submit_number',
field=models.BigIntegerField(default=0),
),
migrations.AlterField(
model_name='problem',
name='total_accepted_number',
field=models.BigIntegerField(default=0),
),
migrations.AlterField(
model_name='problem',
name='total_submit_number',
field=models.BigIntegerField(default=0),
),
]

View File

@@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-08-15 12:58
from __future__ import unicode_literals
from django.db import migrations
import jsonfield.fields
class Migration(migrations.Migration):
dependencies = [
('problem', '0004_auto_20170501_0637'),
]
operations = [
migrations.AddField(
model_name='contestproblem',
name='statistic_info',
field=jsonfield.fields.JSONField(default={}),
),
migrations.AddField(
model_name='problem',
name='statistic_info',
field=jsonfield.fields.JSONField(default={}),
),
]

View File

@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-08-23 09:18
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('problem', '0005_auto_20170815_1258'),
]
operations = [
migrations.RenameField(
model_name='contestproblem',
old_name='total_accepted_number',
new_name='accepted_number',
),
migrations.RenameField(
model_name='contestproblem',
old_name='total_submit_number',
new_name='submission_number',
),
migrations.RenameField(
model_name='problem',
old_name='total_accepted_number',
new_name='accepted_number',
),
migrations.RenameField(
model_name='problem',
old_name='total_submit_number',
new_name='submission_number',
),
]

View File

@@ -1,66 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-09-23 13:18
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('contest', '0005_auto_20170823_0918'),
('problem', '0006_auto_20170823_0918'),
]
operations = [
migrations.AddField(
model_name='contestproblem',
name='total_score',
field=models.IntegerField(blank=True, default=0),
),
migrations.AddField(
model_name='problem',
name='total_score',
field=models.IntegerField(blank=True, default=0),
),
migrations.AlterUniqueTogether(
name='contestproblem',
unique_together=set([]),
),
migrations.RemoveField(
model_name='contestproblem',
name='contest',
),
migrations.RemoveField(
model_name='contestproblem',
name='created_by',
),
migrations.RemoveField(
model_name='contestproblem',
name='tags',
),
migrations.AddField(
model_name='problem',
name='contest',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='contest.Contest'),
preserve_default=False,
),
migrations.AddField(
model_name='problem',
name='is_public',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='problem',
name='_id',
field=models.CharField(db_index=True, max_length=24),
),
migrations.AlterUniqueTogether(
name='problem',
unique_together=set([('_id', 'contest')]),
),
migrations.DeleteModel(
name='ContestProblem',
),
]

View File

@@ -1,45 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-11 12:14
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('problem', '0008_auto_20170923_1318'),
]
operations = [
migrations.AlterField(
model_name='problem',
name='languages',
field=django.contrib.postgres.fields.jsonb.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='samples',
field=django.contrib.postgres.fields.jsonb.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='statistic_info',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterField(
model_name='problem',
name='template',
field=django.contrib.postgres.fields.jsonb.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='test_case_score',
field=django.contrib.postgres.fields.jsonb.JSONField(),
),
migrations.AlterModelOptions(
name='problem',
options={'ordering': ('create_time',)},
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-11-16 12:42
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0009_auto_20171011_1214'),
]
operations = [
migrations.AddField(
model_name='problem',
name='spj_compile_ok',
field=models.BooleanField(default=False),
),
]

View File

@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
from django.db.models import Count
def fix_problem_count_bugs(apps, schema_editor):
Submission = apps.get_model("submission", "Submission")
Problem = apps.get_model("problem", "Problem")
for item in Problem.objects.filter(contest__isnull=True):
submissions = Submission.objects.filter(problem=item)
item.submission_number = submissions.count()
results_count = submissions.values('result').annotate(count=Count('result')).order_by('result')
info = dict()
item.accepted_number = 0
for stat in results_count:
result = stat["result"]
if result == 0:
item.accepted_number = stat["count"]
info[str(result)] = stat["count"]
item.statistic_info = info
item.save(update_fields=["submission_number", "accepted_number", "statistic_info"])
class Migration(migrations.Migration):
dependencies = [
('problem', '0010_problem_spj_compile_ok'),
('submission', '0009_delete_user_output'),
]
operations = [
migrations.RunPython(fix_problem_count_bugs, reverse_code=migrations.RunPython.noop)
]

View File

@@ -1,87 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import utils.models
class Migration(migrations.Migration):
dependencies = [
('problem', '0011_fix_problem_ac_count'),
]
operations = [
migrations.AlterField(
model_name='problem',
name='_id',
field=models.TextField(db_index=True),
),
migrations.AlterField(
model_name='problem',
name='contest',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='contest.Contest'),
),
migrations.AlterField(
model_name='problem',
name='difficulty',
field=models.TextField(),
),
migrations.AlterField(
model_name='problem',
name='hint',
field=utils.models.RichTextField(null=True),
),
migrations.AlterField(
model_name='problem',
name='last_update_time',
field=models.DateTimeField(null=True),
),
migrations.AlterField(
model_name='problem',
name='rule_type',
field=models.TextField(),
),
migrations.AlterField(
model_name='problem',
name='source',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='problem',
name='spj_code',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='problem',
name='spj_language',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='problem',
name='spj_version',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='problem',
name='test_case_id',
field=models.TextField(),
),
migrations.AlterField(
model_name='problem',
name='title',
field=models.TextField(),
),
migrations.AlterField(
model_name='problem',
name='total_score',
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name='problemtag',
name='name',
field=models.TextField(),
),
]

View File

@@ -1,20 +0,0 @@
# Generated by Django 2.1.7 on 2019-03-12 07:13
import django.contrib.postgres.fields.jsonb
from django.db import migrations
import problem.models
class Migration(migrations.Migration):
dependencies = [
('problem', '0012_auto_20180501_0436'),
]
operations = [
migrations.AddField(
model_name='problem',
name='io_mode',
field=django.contrib.postgres.fields.jsonb.JSONField(default=problem.models._default_io_mode),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 2.1.7 on 2019-03-13 09:38
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0013_problem_io_mode'),
]
operations = [
migrations.AddField(
model_name='problem',
name='share_submission',
field=models.BooleanField(default=False),
),
]

View File

@@ -1,44 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
import problem.models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0014_problem_share_submission'),
]
operations = [
migrations.AlterField(
model_name='problem',
name='io_mode',
field=models.JSONField(default=problem.models._default_io_mode),
),
migrations.AlterField(
model_name='problem',
name='languages',
field=models.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='samples',
field=models.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='statistic_info',
field=models.JSONField(default=dict),
),
migrations.AlterField(
model_name='problem',
name='template',
field=models.JSONField(),
),
migrations.AlterField(
model_name='problem',
name='test_case_score',
field=models.JSONField(),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.0.6 on 2025-04-30 01:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0015_alter_problem_io_mode_alter_problem_languages_and_more'),
]
operations = [
migrations.AlterField(
model_name='problem',
name='last_update_time',
field=models.DateTimeField(auto_now=True, null=True),
),
]

View File

@@ -1,18 +0,0 @@
# Generated by Django 5.0.6 on 2025-05-09 00:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('problem', '0016_alter_problem_last_update_time'),
]
operations = [
migrations.AlterField(
model_name='problem',
name='last_update_time',
field=models.DateTimeField(auto_now=True, null=True),
),
]

View File

@@ -6,7 +6,7 @@ readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
dependencies = [ dependencies = [
"coverage==6.5.0", "coverage==6.5.0",
"django==5.2.3", "django>=5.2.3",
"django-cas-ng==5.0.1", "django-cas-ng==5.0.1",
"django-dbconn-retry==0.1.8", "django-dbconn-retry==0.1.8",
"django-dramatiq==0.13.0", "django-dramatiq==0.13.0",

View File

@@ -1,11 +1,8 @@
# -*- coding: utf-8 -*- # Generated by Django 5.2.3 on 2025-06-14 08:51
# Generated by Django 1.9.6 on 2017-05-09 06:41
from __future__ import unicode_literals
from django.db import migrations, models import django.db.models.deletion
import jsonfield.fields
import utils.models
import utils.shortcuts import utils.shortcuts
from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
@@ -13,27 +10,31 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('contest', '0001_initial'),
('problem', '0001_initial'),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name='Submission', name='Submission',
fields=[ fields=[
('id', models.CharField(db_index=True, default=utils.shortcuts.rand_str, max_length=32, primary_key=True, serialize=False)), ('id', models.TextField(db_index=True, default=utils.shortcuts.rand_str, primary_key=True, serialize=False)),
('contest_id', models.IntegerField(db_index=True, null=True)), ('create_time', models.DateTimeField(auto_now_add=True)),
('problem_id', models.IntegerField(db_index=True)),
('created_time', models.DateTimeField(auto_now_add=True)),
('user_id', models.IntegerField(db_index=True)), ('user_id', models.IntegerField(db_index=True)),
('code', utils.models.RichTextField()), ('username', models.TextField()),
('result', models.IntegerField(default=6)), ('code', models.TextField()),
('info', jsonfield.fields.JSONField(default={})), ('result', models.IntegerField(db_index=True, default=6)),
('language', models.CharField(max_length=20)), ('info', models.JSONField(default=dict)),
('language', models.TextField()),
('shared', models.BooleanField(default=False)), ('shared', models.BooleanField(default=False)),
('accepted_time', models.IntegerField(blank=True, null=True)), ('statistic_info', models.JSONField(default=dict)),
('accepted_info', jsonfield.fields.JSONField(default={})), ('ip', models.TextField(null=True)),
('contest', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
('problem', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='problem.problem')),
], ],
options={ options={
'db_table': 'submission', 'db_table': 'submission',
'ordering': ('-create_time',),
}, },
), ),
] ]

View File

@@ -1,38 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.6 on 2017-05-09 12:03
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('submission', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='code',
field=models.TextField(),
),
migrations.RenameField(
model_name='submission',
old_name='accepted_info',
new_name='statistic_info',
),
migrations.RemoveField(
model_name='submission',
name='accepted_time',
),
migrations.RenameField(
model_name='submission',
old_name='created_time',
new_name='create_time',
),
migrations.AlterModelOptions(
name='submission',
options={'ordering': ('-create_time',)},
)
]

View File

@@ -1,21 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-08-26 03:47
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('submission', '0002_auto_20170509_1203'),
]
operations = [
migrations.AddField(
model_name='submission',
name='username',
field=models.CharField(default="", max_length=30),
preserve_default=False,
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-08-30 11:54
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('submission', '0005_submission_username'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='result',
field=models.IntegerField(db_index=True, default=6),
),
]

View File

@@ -1,47 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-09-23 13:18
from __future__ import unicode_literals
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('submission', '0006_auto_20170830_1154'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='contest_id',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='contest.Contest'),
),
migrations.AlterField(
model_name='submission',
name='problem_id',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='problem.Problem'),
),
migrations.RenameField(
model_name='submission',
old_name='contest_id',
new_name='contest',
),
migrations.RenameField(
model_name='submission',
old_name='problem_id',
new_name='problem',
),
migrations.AlterField(
model_name='submission',
name='info',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
migrations.AlterField(
model_name='submission',
name='statistic_info',
field=django.contrib.postgres.fields.jsonb.JSONField(default=dict),
),
]

View File

@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-11-10 06:57
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('submission', '0007_auto_20170923_1318'),
]
operations = [
migrations.AddField(
model_name='submission',
name='ip',
field=models.CharField(blank=True, max_length=32, null=True),
),
]

View File

@@ -1,24 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
def delete_user_output(apps, schema_editor):
Submission = apps.get_model("submission", "Submission")
for item in Submission.objects.all():
if "data" in item.info and isinstance(item.info["data"], list):
for index in range(len(item.info["data"])):
item.info["data"][index]["output"] = ""
item.save()
class Migration(migrations.Migration):
dependencies = [
('submission', '0008_submission_ip'),
]
operations = [
migrations.RunPython(delete_user_output, reverse_code=migrations.RunPython.noop)
]

View File

@@ -1,27 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
def fix_rejudge_bugs(apps, schema_editor):
Submission = apps.get_model("submission", "Submission")
User = apps.get_model("account", "User")
for user in User.objects.all():
submissions = Submission.objects.filter(user_id=user.id, contest__isnull=True)
profile = user.userprofile
profile.submission_number = submissions.count()
profile.accepted_number = submissions.filter(result=0).count()
profile.save(update_fields=["submission_number", "accepted_number"])
class Migration(migrations.Migration):
dependencies = [
('submission', '0009_delete_user_output'),
('problem', '0010_problem_spj_compile_ok'),
]
operations = [
migrations.RunPython(fix_rejudge_bugs, reverse_code=migrations.RunPython.noop)
]

View File

@@ -1,36 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.3 on 2018-05-01 04:36
from __future__ import unicode_literals
from django.db import migrations, models
import utils.shortcuts
class Migration(migrations.Migration):
dependencies = [
('submission', '0011_fix_submission_number'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='id',
field=models.TextField(db_index=True, default=utils.shortcuts.rand_str, primary_key=True, serialize=False),
),
migrations.AlterField(
model_name='submission',
name='ip',
field=models.TextField(null=True),
),
migrations.AlterField(
model_name='submission',
name='language',
field=models.TextField(),
),
migrations.AlterField(
model_name='submission',
name='username',
field=models.TextField(),
),
]

View File

@@ -1,23 +0,0 @@
# Generated by Django 5.0.6 on 2024-06-13 06:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('submission', '0012_auto_20180501_0436'),
]
operations = [
migrations.AlterField(
model_name='submission',
name='info',
field=models.JSONField(default=dict),
),
migrations.AlterField(
model_name='submission',
name='statistic_info',
field=models.JSONField(default=dict),
),
]

2
uv.lock generated
View File

@@ -322,7 +322,7 @@ dependencies = [
[package.metadata] [package.metadata]
requires-dist = [ requires-dist = [
{ name = "coverage", specifier = "==6.5.0" }, { name = "coverage", specifier = "==6.5.0" },
{ name = "django", specifier = "==5.2.3" }, { name = "django", specifier = ">=5.2.3" },
{ name = "django-cas-ng", specifier = "==5.0.1" }, { name = "django-cas-ng", specifier = "==5.0.1" },
{ name = "django-dbconn-retry", specifier = "==0.1.8" }, { name = "django-dbconn-retry", specifier = "==0.1.8" },
{ name = "django-dramatiq", specifier = "==0.13.0" }, { name = "django-dramatiq", specifier = "==0.13.0" },