45 lines
1.8 KiB
Python
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')
|