Files
outbo-2-stgclone/evg-outbo-api/outbo/apps/photobriefing/models/brief_item_choice.py
T
2024-11-27 13:18:16 +01:00

40 lines
1.1 KiB
Python
Executable File

from django.db import models
from django.utils.translation import gettext_lazy as _
from rules.contrib.models import RulesModel
from outbo.apps.core.models import TimestampableDeletableMixin
from outbo.apps.photobriefing.enums import ChoiceRole
class BriefItemChoice(TimestampableDeletableMixin, RulesModel):
class Meta:
unique_together = (("brief", "category", "role"),)
brief = models.ForeignKey(
verbose_name=_("brief"),
to="Brief",
on_delete=models.CASCADE,
related_name="choices",
related_query_name="choice",
)
category = models.ForeignKey(
verbose_name=_("category"),
to="Category",
on_delete=models.CASCADE,
related_name="choices+",
related_query_name="choice",
)
role = models.CharField(
max_length=30,
choices=[(role, role.value) for role in ChoiceRole],
default=ChoiceRole.INVALID,
editable=False,
)
item = models.ForeignKey(
verbose_name=_("item"),
to="BriefItem",
on_delete=models.CASCADE,
related_name="choices",
related_query_name="choice",
)