<type>(scope): <description>

[body]

[footer(s)]
This commit is contained in:
ITQ
2025-03-04 01:13:16 +03:00
parent 291abdabb2
commit ec3945a9ad
2 changed files with 23 additions and 16 deletions
@@ -424,7 +424,6 @@ B — пользователи, которым доступен только о
""".strip(), """.strip(),
"type": CompetitionTask.CompetitionTaskType.INPUT.value, "type": CompetitionTask.CompetitionTaskType.INPUT.value,
"points": 15, "points": 15,
"submission_reviewers_count": 2,
"max_attempts": 50, "max_attempts": 50,
"correct_answer_file": ans3, "correct_answer_file": ans3,
}, },
@@ -434,7 +433,6 @@ B — пользователи, которым доступен только о
"description": "Сколько будет 6 * 7?", "description": "Сколько будет 6 * 7?",
"type": CompetitionTask.CompetitionTaskType.INPUT.value, "type": CompetitionTask.CompetitionTaskType.INPUT.value,
"points": 5, "points": 5,
"submission_reviewers_count": 2,
"max_attempts": 10, "max_attempts": 10,
"correct_answer_file": ans3, "correct_answer_file": ans3,
}, },
@@ -659,14 +657,17 @@ class Command(BaseCommand):
competitions_objs = [] competitions_objs = []
for i, competition in enumerate(competitions): for i, competition in enumerate(competitions):
competition_obj = Competition.objects.create( try:
title=competition["title"], competition_obj = Competition.objects.create(
description=competition["description"], title=competition["title"],
start_date=competition["start_date"], description=competition["description"],
end_date=competition["end_date"], start_date=competition["start_date"],
type=competition["type"], end_date=competition["end_date"],
participation_type=competition["participation_type"], type=competition["type"],
) participation_type=competition["participation_type"],
)
except Exception as e:
print(competition)
if competition.get("image"): if competition.get("image"):
competition_obj.image_url = competition["image"] competition_obj.image_url = competition["image"]
+12 -6
View File
@@ -91,7 +91,7 @@ class CompetitionTask(BaseModel):
raise ValidationError({ raise ValidationError({
"correct_answer_file": "Загрузите правильный ответ" "correct_answer_file": "Загрузите правильный ответ"
}) })
# if self.answer_file_path and not self.type == "checker": # if self.answer_file_path and not self.type == "checker":
# raise ValidationError({ # raise ValidationError({
# "type": "Укажите другой тип задания: этот не совместим с путем правильного ответа" # "type": "Укажите другой тип задания: этот не совместим с путем правильного ответа"
@@ -100,7 +100,7 @@ class CompetitionTask(BaseModel):
raise ValidationError({ raise ValidationError({
"answer_file_path": "Введите путь правильного ответа - это нужно для корректной работы чекера" "answer_file_path": "Введите путь правильного ответа - это нужно для корректной работы чекера"
}) })
if not self.reviewers and self.type == "review": if not self.reviewers and self.type == "review":
raise ValidationError({ raise ValidationError({
"reviewers": "Загрузите ревьюверов - кто будет проверять задания, если не они?" "reviewers": "Загрузите ревьюверов - кто будет проверять задания, если не они?"
@@ -110,7 +110,6 @@ class CompetitionTask(BaseModel):
# "type": "Проверьте тип - вы ввели ревьюверов, но задание не является ручным" # "type": "Проверьте тип - вы ввели ревьюверов, но задание не является ручным"
# }) # })
def __str__(self): def __str__(self):
return self.title return self.title
@@ -150,9 +149,16 @@ class CompetitionTaskAttachment(BaseModel):
related_name="attachments", related_name="attachments",
) )
file = models.FileField(upload_to=file_upload_at, verbose_name="файл") file = models.FileField(upload_to=file_upload_at, verbose_name="файл")
bind_at = models.CharField(verbose_name="путь сохранения", max_length=255, bind_at = models.CharField(
validators=[RegexValidator(r"^(?:[a-zA-Z]:\\(?:[^<>:\"\/\\|?*]*\\)*|/(?:[^<>:\"\/\\|?*]+/?)*)$", verbose_name="путь сохранения",
message="Введите абсолютный путь до папки")]) max_length=255,
validators=[
RegexValidator(
r"^(?:[a-zA-Z]:\\(?:[^<>:\"\/\\|?*]*\\)*|/(?:[^<>:\"\/\\|?*]+/?)*)$",
message="Введите абсолютный путь до папки",
)
],
)
public = models.BooleanField(default=False, verbose_name="публичный") public = models.BooleanField(default=False, verbose_name="публичный")
class Meta: class Meta: