比赛添加标签
This commit is contained in:
19
contest/migrations/0012_contest_tag.py
Normal file
19
contest/migrations/0012_contest_tag.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# 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,
|
||||
),
|
||||
]
|
||||
@@ -11,6 +11,7 @@ from utils.models import RichTextField
|
||||
class Contest(models.Model):
|
||||
title = models.TextField()
|
||||
description = RichTextField()
|
||||
tag = models.TextField()
|
||||
# show real time rank or cached rank
|
||||
real_time_rank = models.BooleanField()
|
||||
password = models.TextField(null=True)
|
||||
|
||||
@@ -7,6 +7,7 @@ from .models import ACMContestRank, OIContestRank
|
||||
class CreateConetestSeriaizer(serializers.Serializer):
|
||||
title = serializers.CharField(max_length=128)
|
||||
description = serializers.CharField()
|
||||
tag = serializers.CharField()
|
||||
start_time = serializers.DateTimeField()
|
||||
end_time = serializers.DateTimeField()
|
||||
rule_type = serializers.ChoiceField(choices=[ContestRuleType.ACM, ContestRuleType.OI])
|
||||
@@ -20,6 +21,7 @@ class EditConetestSeriaizer(serializers.Serializer):
|
||||
id = serializers.IntegerField()
|
||||
title = serializers.CharField(max_length=128)
|
||||
description = serializers.CharField()
|
||||
tag = serializers.CharField()
|
||||
start_time = serializers.DateTimeField()
|
||||
end_time = serializers.DateTimeField()
|
||||
password = serializers.CharField(allow_blank=True, allow_null=True, max_length=32)
|
||||
|
||||
@@ -52,10 +52,13 @@ class ContestListAPI(APIView):
|
||||
keyword = request.GET.get("keyword")
|
||||
rule_type = request.GET.get("rule_type")
|
||||
status = request.GET.get("status")
|
||||
tag = request.GET.get("tag")
|
||||
if keyword:
|
||||
contests = contests.filter(title__contains=keyword)
|
||||
contests = contests.filter(title__icontains=keyword)
|
||||
if rule_type:
|
||||
contests = contests.filter(rule_type=rule_type)
|
||||
if tag:
|
||||
contests = contests.filter(tag=tag)
|
||||
if status:
|
||||
cur = now()
|
||||
if status == ContestStatus.CONTEST_NOT_START:
|
||||
|
||||
Reference in New Issue
Block a user