gault-millau/apps/recipe/models.py
2019-09-19 11:57:58 +03:00

45 lines
1.8 KiB
Python

"""Recipe app models."""
from django.db import models
from django.utils.translation import ugettext_lazy as _
from utils.models import (TranslatedFieldsMixin, ImageMixin, BaseAttributes,
TJSONField)
class Recipe(TranslatedFieldsMixin, ImageMixin, BaseAttributes):
"""Recipe model."""
WAITING = 0
HIDDEN = 1
PUBLISHED = 2
PUBLISHED_EXCLUSIVE = 3
STATE_CHOICES = (
(WAITING, _('Waiting')),
(HIDDEN, _('Hidden')),
(PUBLISHED, _('Published')),
(PUBLISHED_EXCLUSIVE, _('Published exclusive')),
)
STR_FIELD_NAME = 'title'
title = TJSONField(blank=True, null=True, default=None, verbose_name=_('Title'),
help_text='{"en-GB": "some text"}')
subtitle = TJSONField(blank=True, null=True, default=None, verbose_name=_('Subtitle'),
help_text='{"en-GB": "some text"}')
description = TJSONField(blank=True, null=True, default=None, verbose_name=_('Description'),
help_text='{"en-GB": "some text"}')
state = models.PositiveSmallIntegerField(default=WAITING, choices=STATE_CHOICES,
verbose_name=_('State'))
published_at = models.DateTimeField(verbose_name=_('Published at'),
blank=True, default=None, null=True,
help_text=_('Published at'))
published_scheduled_at = models.DateTimeField(verbose_name=_('Published scheduled at'),
blank=True, default=None, null=True,
help_text=_('Published scheduled at'))
class Meta:
"""Meta class."""
verbose_name = _('Recipe')
verbose_name_plural = _('Recipes')