删掉旧的数据库迁移文件

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 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
# Generated by Django 5.2.3 on 2025-06-14 08:51
import account.models
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
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')),
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('username', models.CharField(max_length=30, unique=True)),
('real_name', models.CharField(max_length=30, null=True)),
('email', models.EmailField(max_length=254, null=True)),
('username', models.TextField(unique=True)),
('email', models.TextField(null=True)),
('create_time', models.DateTimeField(auto_now_add=True, null=True)),
('admin_type', models.CharField(default='regular_user', max_length=24)),
('reset_password_token', models.CharField(max_length=40, null=True)),
('admin_type', models.TextField(default='Regular User')),
('problem_permission', models.TextField(default='None')),
('reset_password_token', models.TextField(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)),
('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_appkey', models.CharField(max_length=35, null=True)),
('open_api_appkey', models.TextField(null=True)),
('is_disabled', models.BooleanField(default=False)),
('raw_password', models.CharField(blank=True, max_length=20, null=True, verbose_name='明文密码')),
],
options={
'db_table': 'user',
@@ -49,18 +47,19 @@ class Migration(migrations.Migration):
name='UserProfile',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('problems_status', jsonfield.fields.JSONField(default={})),
('avatar', models.CharField(default="default.png", max_length=50)),
('blog', models.URLField(blank=True, null=True)),
('mood', models.CharField(blank=True, max_length=200, null=True)),
('accepted_problem_number', models.IntegerField(default=0)),
('acm_problems_status', models.JSONField(default=dict)),
('oi_problems_status', models.JSONField(default=dict)),
('real_name', models.TextField(null=True)),
('avatar', models.TextField(default='/public/avatar/default.png')),
('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)),
('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)),
],
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 1.9.12 on 2017-01-23 07:59
from __future__ import unicode_literals
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion
import utils.models
from django.conf import settings
from django.db import migrations, models
import utils.models
class Migration(migrations.Migration):
@@ -22,15 +19,18 @@ class Migration(migrations.Migration):
name='Announcement',
fields=[
('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()),
('tag', models.TextField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(auto_now=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)),
],
options={
'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
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('problem', '0015_alter_problem_io_mode_alter_problem_languages_and_more'),
('submission', '0013_alter_submission_info_and_more'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Comment',
fields=[
('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='解决这道题使用的语言')),
('description_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目描述的分数')),
('difficulty_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目难度的分数')),
('comprehensive_rating', models.PositiveSmallIntegerField(default=5, verbose_name='综合的分数')),
('content', models.TextField(blank=True, null=True)),
('visible', models.BooleanField(default=True)),
('create_time', models.DateTimeField(auto_now_add=True)),
('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')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
options={
'db_table': 'comment',
'ordering': ('-create_time',),
},
),
]
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('problem', '0001_initial'),
('submission', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Comment',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('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='题目描述的分数')),
('difficulty_rating', models.PositiveSmallIntegerField(default=5, verbose_name='题目难度的分数')),
('comprehensive_rating', models.PositiveSmallIntegerField(default=5, verbose_name='综合的分数')),
('content', models.TextField(blank=True, null=True)),
('create_time', models.DateTimeField(auto_now_add=True)),
('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')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
options={
'db_table': 'comment',
'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 1.9.12 on 2017-01-23 07:59
from __future__ import unicode_literals
# Generated by Django 5.2.3 on 2025-06-14 08:51
from django.db import migrations, models
@@ -17,58 +15,20 @@ class Migration(migrations.Migration):
name='JudgeServer',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('hostname', models.CharField(max_length=64)),
('ip', models.CharField(blank=True, max_length=32, null=True)),
('judger_version', models.CharField(max_length=24)),
('hostname', models.TextField()),
('ip', models.TextField(null=True)),
('judger_version', models.TextField()),
('cpu_core', models.IntegerField()),
('memory_usage', models.FloatField()),
('cpu_usage', models.FloatField()),
('last_heartbeat', models.DateTimeField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('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={
'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 1.9.12 on 2017-02-06 09:19
from __future__ import unicode_literals
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion
import utils.models
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):
@@ -14,118 +11,78 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('problem', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
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(
name='Contest',
fields=[
('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()),
('tag', models.TextField()),
('real_time_rank', models.BooleanField()),
('password', models.CharField(blank=True, max_length=30, null=True)),
('rule_type', models.CharField(max_length=36)),
('password', models.TextField(null=True)),
('rule_type', models.TextField()),
('start_time', models.DateTimeField()),
('end_time', models.DateTimeField()),
('create_time', models.DateTimeField(auto_now_add=True)),
('last_update_time', models.DateTimeField(auto_now=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)),
],
options={
'db_table': 'contest',
'ordering': ('-start_time',),
},
),
migrations.CreateModel(
name='ContestAnnouncement',
fields=[
('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()),
('visible', models.BooleanField(default=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)),
],
options={
'db_table': 'contest_announcement',
'ordering': ('-create_time',),
},
),
migrations.CreateModel(
name='ContestProblem',
name='ACMContestRank',
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)),
('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')),
('submission_number', models.IntegerField(default=0)),
('accepted_number', models.IntegerField(default=0)),
('total_time', models.IntegerField(default=0)),
('submission_info', models.JSONField(default=dict)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.contest')),
],
options={
'db_table': 'contest_problem',
'db_table': 'acm_contest_rank',
'unique_together': {('user', 'contest')},
},
),
migrations.CreateModel(
name='OIContestRank',
fields=[
('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)),
('submission_info', jsonfield.fields.JSONField(default={})),
('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest.Contest')),
('submission_info', models.JSONField(default=dict)),
('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)),
],
options={
'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
import django.db.models.deletion
import utils.models
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('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',),
},
),
]
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion
import utils.models
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
('submission', '0001_initial'),
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,8 +1,5 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2017-10-23 08:11
from __future__ import unicode_literals
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.contrib.postgres.fields.jsonb
from django.db import migrations, models
@@ -18,8 +15,8 @@ class Migration(migrations.Migration):
name='SysOptions',
fields=[
('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)),
('value', django.contrib.postgres.fields.jsonb.JSONField()),
('key', models.TextField(db_index=True, unique=True)),
('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 1.9.12 on 2017-02-06 09:19
from __future__ import unicode_literals
# Generated by Django 5.2.3 on 2025-06-14 08:51
import django.db.models.deletion
import problem.models
import utils.models
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):
@@ -14,58 +12,64 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('contest', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
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(
name='ProblemTag',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=30)),
('name', models.TextField()),
],
options={
'db_table': 'problem_tag',
},
),
migrations.AddField(
model_name='problem',
name='tags',
field=models.ManyToManyField(to='problem.ProblemTag'),
migrations.CreateModel(
name='Problem',
fields=[
('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"
dependencies = [
"coverage==6.5.0",
"django==5.2.3",
"django>=5.2.3",
"django-cas-ng==5.0.1",
"django-dbconn-retry==0.1.8",
"django-dramatiq==0.13.0",

View File

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