"""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')