renge_menu and carte

This commit is contained in:
Dmitriy Kuzmenko 2019-11-04 02:25:04 +03:00
parent 3462c74a65
commit b3345d612a
3 changed files with 32 additions and 1 deletions

View File

@ -16,7 +16,7 @@ class Command(BaseCommand):
if est:
menu, _ = Menu.objects.get_or_create(
category={"en-GB": "FORMULAS"},
category={'en-GB': 'formulas'},
establishment=est
)
plate, created = Plate.objects.get_or_create(

View File

@ -434,6 +434,27 @@ class Establishment(ProjectBaseMixin, URLImageMixin, TranslatedFieldsMixin):
def best_price_carte(self):
return 200
@property
def range_price_menu(self):
plates = self.menu_set.filter(
models.Q(category={'en-GB': 'formulas'})
).aggregate(
max=models.Max('plate__price', output_field=models.FloatField()),
min=models.Min('plate__price', output_field=models.FloatField()))
return plates
@property
def range_price_carte(self):
plates = self.menu_set.filter(
models.Q(category={'en-GB': 'starter'}) |
models.Q(category={'en-GB': 'main_course'}) |
models.Q(category={'en-GB': 'dessert'})
).aggregate(
max=models.Max('plate__price', output_field=models.FloatField()),
min=models.Min('plate__price', output_field=models.FloatField()),
)
return plates
@property
def works_noon(self):
""" Used for indexing working by day """

View File

@ -149,6 +149,7 @@ class EstablishmentSubTypeBaseSerializer(serializers.ModelSerializer):
'establishment_type': {'write_only': True}
}
class EstablishmentSubTypeGeoSerializer(EstablishmentSubTypeBaseSerializer):
"""Serializer for EstablishmentSuType model w/ index_name."""
@ -223,6 +224,11 @@ class EstablishmentGeoSerializer(EstablishmentBaseSerializer):
]
class RangePriceSerializer(serializers.Serializer):
max = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True, default=0)
min = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True, default=0)
class EstablishmentDetailSerializer(EstablishmentBaseSerializer):
"""Serializer for Establishment model."""
@ -240,6 +246,8 @@ class EstablishmentDetailSerializer(EstablishmentBaseSerializer):
menu = MenuSerializers(source='menu_set', many=True, read_only=True)
best_price_menu = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
best_price_carte = serializers.DecimalField(max_digits=14, decimal_places=2, read_only=True)
range_price_menu = RangePriceSerializer(read_only=True)
range_price_carte = RangePriceSerializer(read_only=True)
vintage_year = serializers.ReadOnlyField()
class Meta(EstablishmentBaseSerializer.Meta):
@ -264,6 +272,8 @@ class EstablishmentDetailSerializer(EstablishmentBaseSerializer):
'menu',
'best_price_menu',
'best_price_carte',
'range_price_menu',
'range_price_carte',
'transportation',
'vintage_year',
]