Files
DataRush/services/backend/apps/achievement/models.py
T

39 lines
1.6 KiB
Python

from django.db import models
from apps.core.models import BaseModel
class Achievement(BaseModel):
class AchievementType(models.TextChoices):
CORRECT_TASKS = "correct_tasks", "Выполненные задания"
def image_url_upload_to(instance, filename):
return f"/achievements/{instance.id}/icon"
name = models.CharField(max_length=30, verbose_name="название",
unique=True)
description = models.TextField(verbose_name="описание")
icon = models.FileField(
verbose_name="иконка достижения",
upload_to=image_url_upload_to,
)
type = models.CharField(
max_length=20,
choices=AchievementType.choices,
verbose_name="тип",
help_text="За какой тип достижений будет выдаваться ачивка",
default=AchievementType.CORRECT_TASKS,
)
need_count = models.IntegerField(
verbose_name="кол-во того, что нужно для получения ачивки",
help_text="Здесь нужно указать количество действий, необходимое для получения ачивок. Например, если вы указали в предыдущем пункте \"Выполненные задания\" а тут 5, то ачивка будет выдаваться за 5 решенных заданий",
default=5
)
def __str__(self):
return self.name
class Meta:
verbose_name = "ачивка"
verbose_name_plural = "ачивки"