mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 07:27:10 +00:00
39 lines
1.6 KiB
Python
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 = "ачивки"
|