menu gallery
This commit is contained in:
parent
781779d54a
commit
c0f3aca532
40
apps/establishment/migrations/0080_auto_20200128_0904.py
Normal file
40
apps/establishment/migrations/0080_auto_20200128_0904.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Generated by Django 2.2.7 on 2020-01-28 09:04
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('gallery', '0008_merge_20191212_0752'),
|
||||
('establishment', '0079_auto_20200124_0720'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='menuuploads',
|
||||
name='file',
|
||||
field=models.FileField(upload_to='', validators=[django.core.validators.FileExtensionValidator(allowed_extensions=('doc', 'docx', 'pdf'))], verbose_name='File'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='menuuploads',
|
||||
name='menu',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='menu_uploads', to='establishment.Menu', verbose_name='menu'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MenuGallery',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('is_main', models.BooleanField(default=False, verbose_name='Is the main image')),
|
||||
('image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='menu_gallery', to='gallery.Image', verbose_name='image')),
|
||||
('menu', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='menu_gallery', to='establishment.Menu', verbose_name='menu')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'menu gallery',
|
||||
'verbose_name_plural': 'menu galleries',
|
||||
'unique_together': {('menu', 'image'), ('menu', 'is_main')},
|
||||
},
|
||||
),
|
||||
]
|
||||
18
apps/establishment/migrations/0081_menuuploads_title.py
Normal file
18
apps/establishment/migrations/0081_menuuploads_title.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.7 on 2020-01-28 09:14
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('establishment', '0080_auto_20200128_0904'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='menuuploads',
|
||||
name='title',
|
||||
field=models.CharField(default='', max_length=255, verbose_name='title'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1238,6 +1238,11 @@ class MenuQuerySet(models.QuerySet):
|
|||
'plates',
|
||||
)
|
||||
|
||||
def with_gallery(self):
|
||||
return self.prefetch_related(
|
||||
'menu_gallery'
|
||||
)
|
||||
|
||||
def dishes(self):
|
||||
return self.filter(
|
||||
Q(category__icontains='starter') |
|
||||
|
|
@ -1250,7 +1255,7 @@ class MenuQuerySet(models.QuerySet):
|
|||
return self.filter(category__icontains=value)
|
||||
|
||||
|
||||
class Menu(TranslatedFieldsMixin, BaseAttributes):
|
||||
class Menu(GalleryMixin, TranslatedFieldsMixin, BaseAttributes):
|
||||
"""Menu model."""
|
||||
|
||||
STR_FIELD_NAME = 'category'
|
||||
|
|
@ -1278,13 +1283,42 @@ class Menu(TranslatedFieldsMixin, BaseAttributes):
|
|||
ordering = ('-created',)
|
||||
|
||||
|
||||
class MenuGallery(IntermediateGalleryModelMixin):
|
||||
menu = models.ForeignKey(
|
||||
Menu,
|
||||
null=True,
|
||||
related_name='menu_gallery',
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('menu'),
|
||||
)
|
||||
image = models.ForeignKey(
|
||||
'gallery.Image',
|
||||
null=True,
|
||||
related_name='menu_gallery',
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_('image'),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
verbose_name = _('menu gallery')
|
||||
verbose_name_plural = _('menu galleries')
|
||||
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='uploads')
|
||||
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=('jpg', 'jpeg', 'png', 'doc', 'docx', 'pdf')), ],
|
||||
validators=[FileExtensionValidator(allowed_extensions=('doc', 'docx', 'pdf')), ],
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
|
|
|||
|
|
@ -560,13 +560,19 @@ class _PlateSerializer(ProjectModelSerializer):
|
|||
]
|
||||
|
||||
|
||||
class _MenuUploadsSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField()
|
||||
title = serializers.CharField()
|
||||
original_url = serializers.URLField()
|
||||
|
||||
|
||||
class MenuDishesSerializer(ProjectModelSerializer):
|
||||
"""for dessert, main_course and starter category"""
|
||||
|
||||
schedule = ScheduleRUDSerializer(many=True, allow_null=True)
|
||||
plates = _PlateSerializer(read_only=True, many=True, source='plate_set', allow_null=True)
|
||||
category_translated = serializers.CharField(read_only=True)
|
||||
last_update = serializers.DateTimeField(source='created')
|
||||
gallery = ImageBaseSerializer(read_only=True, source='crop_gallery', many=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Menu
|
||||
|
|
@ -579,6 +585,7 @@ class MenuDishesSerializer(ProjectModelSerializer):
|
|||
'schedule',
|
||||
'plates',
|
||||
'last_update',
|
||||
'gallery',
|
||||
]
|
||||
|
||||
|
||||
|
|
@ -586,7 +593,6 @@ class MenuDishesRUDSerializers(ProjectModelSerializer):
|
|||
"""for dessert, main_course and starter category"""
|
||||
|
||||
plates = _PlateSerializer(read_only=True, many=True, source='plate_set', allow_null=True)
|
||||
schedule = ScheduleRUDSerializer(read_only=True, many=True, allow_null=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Menu
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user