From 4b9561fe752e55c851316923e8b84f11b8841295 Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Tue, 3 Dec 2019 11:50:36 +0300 Subject: [PATCH 1/4] Fix typo --- apps/establishment/views/web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/establishment/views/web.py b/apps/establishment/views/web.py index cfd4880e..15421ee7 100644 --- a/apps/establishment/views/web.py +++ b/apps/establishment/views/web.py @@ -38,7 +38,7 @@ class EstablishmentListView(EstablishmentMixinView, generics.ListAPIView): .with_extended_address_related().with_currency_related() \ .with_certain_tag_category_related('category', 'restaurant_category') \ .with_certain_tag_category_related('cuisine', 'restaurant_cuisine') \ - .with_ceratin_tag_category_related('shop_category', 'artisan_category') + .with_certain_tag_category_related('shop_category', 'artisan_category') class EstablishmentRetrieveView(EstablishmentMixinView, generics.RetrieveAPIView): From 201e02b4b794a37050769b01008372d9c186c23a Mon Sep 17 00:00:00 2001 From: Kuroshini Date: Tue, 3 Dec 2019 13:29:37 +0300 Subject: [PATCH 2/4] remove empty favs --- apps/tag/filters.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/tag/filters.py b/apps/tag/filters.py index 5e2b31a7..46470ca1 100644 --- a/apps/tag/filters.py +++ b/apps/tag/filters.py @@ -73,7 +73,10 @@ class TagsFilterSet(TagsBaseFilterSet): def by_establishment_type(self, queryset, name, value): if value == EstablishmentType.ARTISAN: - return models.Tag.objects.by_category_index_name('shop_category')[0:8] + qs = models.Tag.objects.by_category_index_name('shop_category') + if self.request.country_code and self.request.country_code not in settings.INTERNATIONAL_COUNTRY_CODES: + qs = qs.filter(establishments__address__city__country__code=self.request.country_code).distinct('id') + return qs.exclude(establishments__isnull=True)[0:8] return queryset.by_establishment_type(value) # TMP TODO remove it later From e7de51373d99a8b3d9a31f13545488fb84c0e287 Mon Sep 17 00:00:00 2001 From: dormantman Date: Tue, 3 Dec 2019 14:39:25 +0300 Subject: [PATCH 3/4] Correction of finding the visual center of points --- apps/search_indexes/filters.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/search_indexes/filters.py b/apps/search_indexes/filters.py index 7a3993c0..4537124d 100644 --- a/apps/search_indexes/filters.py +++ b/apps/search_indexes/filters.py @@ -11,7 +11,7 @@ class CustomGeoSpatialFilteringFilterBackend(GeoSpatialFilteringFilterBackend): @staticmethod def calculate_center(first, second): - if second[1] < 0 <= first[1]: + if second[1] < 0 < first[1]: reverse_first, reverse_second = 180 - abs(first[1]), 180 - abs(second[1]) diff = (reverse_first + reverse_second) / 2 @@ -21,6 +21,16 @@ class CustomGeoSpatialFilteringFilterBackend(GeoSpatialFilteringFilterBackend): else: result_part = 180 - (180 - first[1] - diff) + elif second[1] < 0 > first[1]: + diff = abs(abs(second[1]) - abs(first[1])) + + if diff > 90: + reverse_first, reverse_second = 180 - abs(first[1]), 180 - abs(second[1]) + result_part = (reverse_first + reverse_second) / 2 + + else: + result_part = (first[1] + second[1]) / 2 + else: result_part = (first[1] + second[1]) / 2 From 637903e6135304021d28c443e4dc8e1bfbe1a43a Mon Sep 17 00:00:00 2001 From: Dmitriy Kuzmenko Date: Tue, 3 Dec 2019 15:15:02 +0300 Subject: [PATCH 4/4] fix scheduler --- apps/account/serializers/common.py | 4 +++ .../management/commands/fix_scheduler.py | 36 +++++++++++++++++++ apps/transfer/serializers/establishment.py | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 apps/establishment/management/commands/fix_scheduler.py diff --git a/apps/account/serializers/common.py b/apps/account/serializers/common.py index d2933747..d2ce0974 100644 --- a/apps/account/serializers/common.py +++ b/apps/account/serializers/common.py @@ -92,7 +92,11 @@ class UserBaseSerializer(serializers.ModelSerializer): model = models.User fields = ( + 'id', 'fullname', + 'first_name', + 'last_name', + 'email', 'cropped_image_url', 'image_url', ) diff --git a/apps/establishment/management/commands/fix_scheduler.py b/apps/establishment/management/commands/fix_scheduler.py new file mode 100644 index 00000000..78422935 --- /dev/null +++ b/apps/establishment/management/commands/fix_scheduler.py @@ -0,0 +1,36 @@ +from django.core.management.base import BaseCommand +from tqdm import tqdm + +from establishment.models import Establishment +from transfer.models import Establishments +from transfer.serializers.establishment import EstablishmentSerializer +from timetable.models import Timetable +from django.db import transaction + + +class Command(BaseCommand): + help = 'Fix scheduler' + + @transaction.atomic + def handle(self, *args, **kwargs): + count = 0 + establishments = Establishment.objects.all() + old_est_list = Establishments.objects.prefetch_related( + 'schedules_set', + ) + # remove old records of Timetable + Timetable.objects.all().delete() + + for est in tqdm(establishments, desc="Fix scheduler"): + old_est = old_est_list.filter(id=est.old_id).first() + + if old_est and old_est.schedules_set.exists(): + old_schedule = old_est.schedules_set.first() + timetable = old_schedule.timetable + if timetable: + new_schedules = EstablishmentSerializer.get_schedules(timetable) + est.schedule.add(*new_schedules) + est.save() + count += 1 + + self.stdout.write(self.style.WARNING(f'Update {count} objects.')) diff --git a/apps/transfer/serializers/establishment.py b/apps/transfer/serializers/establishment.py index 0e5f55d4..a287d61b 100644 --- a/apps/transfer/serializers/establishment.py +++ b/apps/transfer/serializers/establishment.py @@ -125,7 +125,7 @@ class EstablishmentSerializer(serializers.ModelSerializer): weekdays = { 'su': Timetable.SUNDAY, 'mo': Timetable.MONDAY, - 'tu': Timetable.THURSDAY, + 'tu': Timetable.TUESDAY, 'we': Timetable.WEDNESDAY, 'th': Timetable.THURSDAY, 'fr': Timetable.FRIDAY,