refactored menu models
This commit is contained in:
parent
6d9983ad3f
commit
cfba383940
|
|
@ -1284,6 +1284,10 @@ class MenuQuerySet(models.QuerySet):
|
|||
def with_base_related(self):
|
||||
return self.prefetch_related('establishment', 'uploads')
|
||||
|
||||
def by_type(self, menu_type: str):
|
||||
"""Returns certain typed menus"""
|
||||
return self.filter(type=menu_type)
|
||||
|
||||
def with_schedule_plates_establishment(self):
|
||||
return self.select_related(
|
||||
'establishment',
|
||||
|
|
@ -1314,6 +1318,21 @@ class Menu(GalleryMixin, TranslatedFieldsMixin, BaseAttributes):
|
|||
|
||||
STR_FIELD_NAME = 'category'
|
||||
|
||||
FORMULAS = 'formulas'
|
||||
STARTER = 'starter'
|
||||
DESSERT = 'dessert'
|
||||
MAIN_COURSE = 'main_course'
|
||||
|
||||
MENU_CHOICES = (
|
||||
(FORMULAS, _('formulas')),
|
||||
(STARTER, _('starter')),
|
||||
(DESSERT, _('dessert')),
|
||||
(MAIN_COURSE, _('main_course')),
|
||||
)
|
||||
|
||||
type = models.CharField(max_length=50, db_index=True, default=FORMULAS,
|
||||
verbose_name=_('Menu type'), choices=MENU_CHOICES)
|
||||
|
||||
category = TJSONField(
|
||||
blank=True, null=True, default=None, verbose_name=_('category'),
|
||||
help_text='{"en-GB":"some text"}')
|
||||
|
|
@ -1351,6 +1370,25 @@ class Menu(GalleryMixin, TranslatedFieldsMixin, BaseAttributes):
|
|||
ordering = ('-created',)
|
||||
|
||||
|
||||
class EstablishmentBackOfficeWine(models.Model):
|
||||
"""Wine for BO Card&Wines"""
|
||||
establishment = models.OneToOneField(to='Establishment', on_delete=models.SET_NULL, related_name='back_office_wine',
|
||||
verbose_name=_('establishment'), null=True)
|
||||
bottles = models.IntegerField(default=0, validators=[MinValueValidator(0)])
|
||||
price_from = models.DecimalField(_('price from'), max_digits=14, decimal_places=2)
|
||||
price_to = models.DecimalField(_('price to'), max_digits=14, decimal_places=2)
|
||||
|
||||
price_from_for_one = models.DecimalField(_('price for one item from'), max_digits=14, decimal_places=2,
|
||||
null=True, default=None)
|
||||
price_to_for_one = models.DecimalField(_('price for one item to'), max_digits=14, decimal_places=2,
|
||||
null=True, default=None)
|
||||
is_glass = models.BooleanField(verbose_name=_('served in glass'), default=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('establishment back office wine')
|
||||
verbose_name_plural = _('establishment back office wines')
|
||||
|
||||
|
||||
class MenuFiles(FileMixin, BaseAttributes):
|
||||
"""Menu files"""
|
||||
|
||||
|
|
@ -1385,26 +1423,6 @@ class MenuGallery(IntermediateGalleryModelMixin):
|
|||
unique_together = (('menu', 'is_main'), ('menu', 'image'))
|
||||
|
||||
|
||||
class MenuUploads(BaseAttributes):
|
||||
"""Menu files"""
|
||||
|
||||
menu = models.ForeignKey(
|
||||
Menu,
|
||||
verbose_name=_('menu'),
|
||||
on_delete=models.CASCADE,
|
||||
related_name='menu_uploads',
|
||||
)
|
||||
title = models.CharField(_('title'), max_length=255, default='')
|
||||
file = models.FileField(
|
||||
_('File'),
|
||||
validators=[FileExtensionValidator(allowed_extensions=('doc', 'docx', 'pdf')), ],
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('menu upload')
|
||||
verbose_name_plural = _('menu uploads')
|
||||
|
||||
|
||||
class SocialChoice(models.Model):
|
||||
title = models.CharField(_('title'), max_length=255, unique=True)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user