diff --git a/infrastructure/nginx/nginx.conf b/infrastructure/nginx/nginx.conf index 2773428..6e338eb 100644 --- a/infrastructure/nginx/nginx.conf +++ b/infrastructure/nginx/nginx.conf @@ -166,7 +166,6 @@ http { } location /admin/grafana/ { - rewrite ^/admin/grafana/(.*) /$1 break; proxy_pass http://grafana:3000/; proxy_set_header Host $http_host; diff --git a/services/backend/api/v1/review/schemas.py b/services/backend/api/v1/review/schemas.py index 831550b..8bd5ca9 100644 --- a/services/backend/api/v1/review/schemas.py +++ b/services/backend/api/v1/review/schemas.py @@ -1,10 +1,9 @@ from typing import Literal from uuid import UUID -from django.http import HttpRequest from ninja import ModelSchema, Schema -from apps.review.models import Reviewer, Review +from apps.review.models import Review, Reviewer from apps.task.models import CompetitionTaskSubmission @@ -34,4 +33,6 @@ class SubmissionsOut(Schema): @staticmethod def resolve_submissions(self, context) -> list[SubmissionOut]: - return list(Review.objects.filter(reviewer=context.get("request").auth)) \ No newline at end of file + return list( + Review.objects.filter(reviewer=context.get("request").auth) + ) diff --git a/services/backend/api/v1/review/views.py b/services/backend/api/v1/review/views.py index 66f608e..dbe0833 100644 --- a/services/backend/api/v1/review/views.py +++ b/services/backend/api/v1/review/views.py @@ -1,4 +1,3 @@ -import logging from http import HTTPStatus as status from uuid import UUID @@ -8,7 +7,6 @@ from ninja import Router from api.v1 import schemas as global_schemas from api.v1.review import schemas -from api.v1.task.schemas import TaskSubmissionIn from apps.task.models import CompetitionTaskSubmission router = Router(tags=["review"]) @@ -19,9 +17,11 @@ router = Router(tags=["review"]) response={ status.OK: schemas.SubmissionsOut, }, - description="Список отправок, на проверку которых назначен ревьюер" + description="Список отправок, на проверку которых назначен ревьюер", ) -def get_submissions(request: HttpRequest, token: str) -> tuple[status, schemas.SubmissionsOut]: +def get_submissions( + request: HttpRequest, token: str +) -> tuple[status, schemas.SubmissionsOut]: return status.OK, schemas.SubmissionsOut() @@ -36,12 +36,15 @@ def get_submissions(request: HttpRequest, token: str) -> tuple[status, schemas.S def get_reviewer_profile(request: HttpRequest, token: str): return status.OK, request.auth + @router.get( "{token}/submissions/{submition_id}", response={ status.OK: schemas.SubmissionOut, }, ) -def get_submission(request: HttpRequest, token: str, submition_id: UUID) -> tuple[status, schemas.SubmissionsOut]: +def get_submission( + request: HttpRequest, token: str, submition_id: UUID +) -> tuple[status, schemas.SubmissionsOut]: submission = get_object_or_404(CompetitionTaskSubmission, id=submition_id) return status.OK, submission diff --git a/services/backend/api/v1/task/views.py b/services/backend/api/v1/task/views.py index 85d3cc1..cc1f9fe 100644 --- a/services/backend/api/v1/task/views.py +++ b/services/backend/api/v1/task/views.py @@ -13,9 +13,9 @@ from api.v1.task.schemas import ( ) from apps.competition.models import State from apps.task.models import ( - CompetitionTaskSubmission, Competition, CompetitionTask, + CompetitionTaskSubmission, ) router = Router(tags=["competition"]) diff --git a/services/backend/apps/competition/admin.py b/services/backend/apps/competition/admin.py index 2aca32c..6c78551 100644 --- a/services/backend/apps/competition/admin.py +++ b/services/backend/apps/competition/admin.py @@ -6,7 +6,17 @@ from apps.task.admin import CompetitionTaskInline @admin.register(Competition) class CompetitionAdmin(admin.ModelAdmin): - list_display = ("title", "end_date", "type",) - search_fields = ("title", "description",) - list_filter = ("type", "participation_type",) + list_display = ( + "title", + "end_date", + "type", + ) + search_fields = ( + "title", + "description", + ) + list_filter = ( + "type", + "participation_type", + ) inlines = [CompetitionTaskInline] diff --git a/services/backend/apps/competition/models.py b/services/backend/apps/competition/models.py index 92bf05f..be18d5c 100644 --- a/services/backend/apps/competition/models.py +++ b/services/backend/apps/competition/models.py @@ -1,7 +1,6 @@ from datetime import datetime from django.db import models -from tinymce.models import HTMLField from apps.core.models import BaseModel from apps.user.models import User @@ -49,8 +48,6 @@ class Competition(BaseModel): def __str__(self): return self.title - - class Meta: verbose_name = "соревнование" verbose_name_plural = "соревнования" diff --git a/services/backend/apps/core/management/commands/generate_data.py b/services/backend/apps/core/management/commands/generate_data.py index 479fd23..e68394f 100644 --- a/services/backend/apps/core/management/commands/generate_data.py +++ b/services/backend/apps/core/management/commands/generate_data.py @@ -8,7 +8,7 @@ from django.core.management.base import BaseCommand from django.utils import timezone from apps.competition.models import Competition, State -from apps.task.models import CompetitionTaskSubmission, CompetitionTask +from apps.task.models import CompetitionTask, CompetitionTaskSubmission from apps.user.models import User, UserRole diff --git a/services/backend/apps/review/models.py b/services/backend/apps/review/models.py index 60eb198..ee84c9f 100644 --- a/services/backend/apps/review/models.py +++ b/services/backend/apps/review/models.py @@ -10,6 +10,7 @@ class Reviewer(BaseModel): token = models.CharField(max_length=100) + class Review(BaseModel): class ReviewStatusChoices(models.TextChoices): NOT_CHECKED = "not_checked" @@ -17,6 +18,10 @@ class Review(BaseModel): CHECKED = "checked" reviewer = models.ForeignKey(Reviewer, on_delete=models.CASCADE) - submission = models.ForeignKey(CompetitionTaskSubmission, on_delete=models.CASCADE) + submission = models.ForeignKey( + CompetitionTaskSubmission, on_delete=models.CASCADE + ) - state = models.CharField(choices=ReviewStatusChoices.choices, max_length=11) \ No newline at end of file + state = models.CharField( + choices=ReviewStatusChoices.choices, max_length=11 + ) diff --git a/services/backend/apps/user/models.py b/services/backend/apps/user/models.py index f702b6f..5a246db 100644 --- a/services/backend/apps/user/models.py +++ b/services/backend/apps/user/models.py @@ -1,5 +1,5 @@ -from django.db import models from django.contrib.auth.hashers import check_password, make_password +from django.db import models from apps.core.models import BaseModel diff --git a/services/backend/config/settings.py b/services/backend/config/settings.py index dbb0717..66332c8 100644 --- a/services/backend/config/settings.py +++ b/services/backend/config/settings.py @@ -463,7 +463,7 @@ TINYMCE_DEFAULT_CONFIG = { "alignright alignjustify | bullist numlist outdent indent | " "removeformat | help", "skin": "oxide-dark", - "content_css": "dark" + "content_css": "dark", } # GUID diff --git a/services/backend/config/urls.py b/services/backend/config/urls.py index f69ade8..27b279a 100644 --- a/services/backend/config/urls.py +++ b/services/backend/config/urls.py @@ -13,7 +13,7 @@ admin.site.index_title = "DataRush" urlpatterns = [ # tinymce - path('tinymce/', include('tinymce.urls')), + path("tinymce/", include("tinymce.urls")), # Admin urls path("admin/", admin.site.urls), # API urls