From 7076bf4bf391f05547df631848e64e9657fe7010 Mon Sep 17 00:00:00 2001 From: Timur Date: Sun, 2 Mar 2025 08:34:53 +0300 Subject: [PATCH 1/3] rewrite test_competition_type_values test --- services/backend/apps/competition/tests.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/backend/apps/competition/tests.py b/services/backend/apps/competition/tests.py index 37dfcc0..ea5b671 100644 --- a/services/backend/apps/competition/tests.py +++ b/services/backend/apps/competition/tests.py @@ -157,8 +157,12 @@ class CompetitionsEndpointTests(TestCase): self.get_url("is_participating=true"), **self.valid_headers ) - for item in response.json(): - self.assertEqual(item["type"], "competitive") + for i in range(len(response.json())): + item = response.json()[i] + if (i + 1) % 2 == 0: + self.assertEqual(item["type"], "edu") + else: + self.assertEqual(item["type"], "competitive") def test_participation_type_values(self): response = self.client.get( From 2c311fe929ae13df944c7d7539feffb95a5d2b22 Mon Sep 17 00:00:00 2001 From: Timur Date: Sun, 2 Mar 2025 08:43:37 +0300 Subject: [PATCH 2/3] rewrite migrations and change dates --- .../apps/review/migrations/0001_initial.py | 28 ++++++++----------- .../apps/review/migrations/0002_initial.py | 27 ++++++++++++++++++ .../apps/task/migrations/0001_initial.py | 4 +-- 3 files changed, 41 insertions(+), 18 deletions(-) create mode 100644 services/backend/apps/review/migrations/0002_initial.py diff --git a/services/backend/apps/review/migrations/0001_initial.py b/services/backend/apps/review/migrations/0001_initial.py index c12c510..7c8ad53 100644 --- a/services/backend/apps/review/migrations/0001_initial.py +++ b/services/backend/apps/review/migrations/0001_initial.py @@ -1,6 +1,5 @@ -# Generated by Django 5.1.6 on 2025-03-02 00:16 +# Generated by Django 5.1.6 on 2025-03-02 05:41 -import django.db.models.deletion import uuid from django.db import migrations, models @@ -10,10 +9,20 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('task', '0001_initial'), ] operations = [ + migrations.CreateModel( + name='Review', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('evaluation', models.JSONField(blank=True, default=list, null=True)), + ('state', models.CharField(choices=[('not_checked', 'Not Checked'), ('checking', 'Checking'), ('checked', 'Checked')], default='not_checked', max_length=11)), + ], + options={ + 'abstract': False, + }, + ), migrations.CreateModel( name='Reviewer', fields=[ @@ -26,17 +35,4 @@ class Migration(migrations.Migration): 'abstract': False, }, ), - migrations.CreateModel( - name='Review', - fields=[ - ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), - ('evaluation', models.JSONField(blank=True, default=list, null=True)), - ('state', models.CharField(choices=[('not_checked', 'Not Checked'), ('checking', 'Checking'), ('checked', 'Checked')], default='not_checked', max_length=11)), - ('submission', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to='task.competitiontasksubmission')), - ('reviewer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='review.reviewer')), - ], - options={ - 'abstract': False, - }, - ), ] diff --git a/services/backend/apps/review/migrations/0002_initial.py b/services/backend/apps/review/migrations/0002_initial.py new file mode 100644 index 0000000..39fc31e --- /dev/null +++ b/services/backend/apps/review/migrations/0002_initial.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1.6 on 2025-03-02 05:41 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('review', '0001_initial'), + ('task', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='review', + name='submission', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to='task.competitiontasksubmission'), + ), + migrations.AddField( + model_name='review', + name='reviewer', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='review.reviewer'), + ), + ] diff --git a/services/backend/apps/task/migrations/0001_initial.py b/services/backend/apps/task/migrations/0001_initial.py index b1a0a2e..c221558 100644 --- a/services/backend/apps/task/migrations/0001_initial.py +++ b/services/backend/apps/task/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.1.6 on 2025-03-02 00:16 +# Generated by Django 5.1.6 on 2025-03-02 05:41 import apps.task.models import django.db.models.deletion @@ -12,7 +12,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('competition', '0001_initial'), + ('competition', '0002_alter_state_state'), ('user', '0001_initial'), ] From e95321933180053181934d58091fccd810f7674d Mon Sep 17 00:00:00 2001 From: Timur Date: Sun, 2 Mar 2025 08:50:16 +0300 Subject: [PATCH 3/3] add points field to task schema --- services/backend/api/v1/task/schemas.py | 1 + services/backend/apps/competition/models.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/services/backend/api/v1/task/schemas.py b/services/backend/api/v1/task/schemas.py index 9546379..b29f775 100644 --- a/services/backend/api/v1/task/schemas.py +++ b/services/backend/api/v1/task/schemas.py @@ -16,6 +16,7 @@ class TaskOutSchema(ModelSchema): "description", "type", "in_competition_position", + "points", ] diff --git a/services/backend/apps/competition/models.py b/services/backend/apps/competition/models.py index 3cb9b5b..18212f4 100644 --- a/services/backend/apps/competition/models.py +++ b/services/backend/apps/competition/models.py @@ -26,10 +26,10 @@ class Competition(BaseModel): upload_to=image_url_upload_to, ) end_date = models.DateTimeField( - verbose_name="дедлайн участия", null=True, blank=True + verbose_name="окончание соревнования", null=True, blank=True ) start_date = models.DateTimeField( - verbose_name="дедлайн участия", null=True, blank=True + verbose_name="начало соревнования", null=True, blank=True ) type = models.CharField( max_length=11,