40 lines
1.1 KiB
Python
Executable File
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",
|
|
)
|