From c55ab0b8f3237e837a48138f553b7acec8fedfa9 Mon Sep 17 00:00:00 2001 From: AlexP077 Date: Sun, 8 Oct 2023 12:52:48 +0300 Subject: [PATCH] drop_dists --- fixtures/otherobjectscategorys.json | 209 ++++++++++++++++-- fixtures/post_and_pvz.json | 36 ++- service/migrations/0038_auto_20231008_1141.py | 135 +++++++++++ service/serializers.py | 6 - service/service.py | 12 - service/views.py | 21 -- 6 files changed, 338 insertions(+), 81 deletions(-) create mode 100644 service/migrations/0038_auto_20231008_1141.py diff --git a/fixtures/otherobjectscategorys.json b/fixtures/otherobjectscategorys.json index bcedb54..6e6c9ac 100644 --- a/fixtures/otherobjectscategorys.json +++ b/fixtures/otherobjectscategorys.json @@ -1,23 +1,186 @@ -[{"model": "service.otherobjectscategory", "pk": 4, "fields": {"name": "business_activity", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 5, "fields": {"name": "metro_stations", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 22, "fields": {"name": "bargains", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 23, "fields": {"name": "BC", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 24, "fields": {"name": "flats_cnt", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 25, "fields": {"name": "offers_estate", "image": "", "visible": false}}, { - "model": "service.otherobjectscategory", "pk": 26, "fields": {"name": "schools", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 27, "fields": {"name": "kindergar", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 28, "fields": {"name": "stops", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 29, "fields": {"name": "pharmacies", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 30, "fields": {"name": "sport_centers", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 31, "fields": {"name": "supermarkets", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 32, "fields": {"name": "supermarkets_premium", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 33, "fields": {"name": "banks", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 34, "fields": {"name": "recas", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 35, "fields": {"name": "labs", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 36, "fields": {"name": "clinics", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 37, "fields": {"name": "attractions", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 38, "fields": {"name": "cultures", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 39, "fields": {"name": "public_services", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 40, "fields": {"name": "popul_home_job", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 41, "fields": {"name": "TC", "image": "", "visible": false}}, - {"model": "service.otherobjectscategory", "pk": 42, "fields": {"name": "yndx_food_cnt_amt", "image": "", "visible": false}}] \ No newline at end of file +[ + { + "model": "service.otherobjectscategory", + "pk": 4, + "fields": { + "name": "business_activity", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 5, + "fields": { + "name": "metro_stations", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 22, + "fields": { + "name": "bargains", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 23, + "fields": { + "name": "BC", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 24, + "fields": { + "name": "flats_cnt", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 25, + "fields": { + "name": "offers_estate", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 26, + "fields": { + "name": "schools", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 27, + "fields": { + "name": "kindergar", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 28, + "fields": { + "name": "stops", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 29, + "fields": { + "name": "pharmacies", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 30, + "fields": { + "name": "sport_centers", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 31, + "fields": { + "name": "supermarkets", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 32, + "fields": { + "name": "supermarkets_premium", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 33, + "fields": { + "name": "banks", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 34, + "fields": { + "name": "recas", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 35, + "fields": { + "name": "labs", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 36, + "fields": { + "name": "clinics", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 37, + "fields": { + "name": "attractions", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 38, + "fields": { + "name": "cultures", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 39, + "fields": { + "name": "public_services", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 40, + "fields": { + "name": "popul_home_job", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 41, + "fields": { + "name": "TC", + "visible": false + } + }, + { + "model": "service.otherobjectscategory", + "pk": 42, + "fields": { + "name": "yndx_food_cnt_amt", + "visible": false + } + } +] \ No newline at end of file diff --git a/fixtures/post_and_pvz.json b/fixtures/post_and_pvz.json index d5b5309..2bbd580 100644 --- a/fixtures/post_and_pvz.json +++ b/fixtures/post_and_pvz.json @@ -1,22 +1,20 @@ [ -{ - "model": "service.post_and_pvzcategory", - "pk": 1, - "fields": { - "name": "ПВЗ", - "image": "", - "visible": true, - "include_in_ml": true + { + "model": "service.post_and_pvzcategory", + "pk": 1, + "fields": { + "name": "ПВЗ", + "visible": true, + "include_in_ml": true + } + }, + { + "model": "service.post_and_pvzcategory", + "pk": 2, + "fields": { + "name": "Постаматы прочих сетей", + "visible": true, + "include_in_ml": true + } } -}, -{ - "model": "service.post_and_pvzcategory", - "pk": 2, - "fields": { - "name": "Постаматы прочих сетей", - "image": "", - "visible": true, - "include_in_ml": true - } -} ] diff --git a/service/migrations/0038_auto_20231008_1141.py b/service/migrations/0038_auto_20231008_1141.py new file mode 100644 index 0000000..e9b88d7 --- /dev/null +++ b/service/migrations/0038_auto_20231008_1141.py @@ -0,0 +1,135 @@ +# Generated by Django 3.2 on 2023-10-08 08:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('service', '0037_auto_20231002_1349'), + ] + + operations = [ + migrations.RemoveField( + model_name='preplacementpointpvzdistance', + name='placement_point', + ), + migrations.RemoveField( + model_name='preplacementpointpvzdistance', + name='pvz_postamates_group', + ), + migrations.RemoveField( + model_name='otherobjectscategory', + name='image', + ), + migrations.RemoveField( + model_name='post_and_pvzcategory', + name='image', + ), + migrations.AddField( + model_name='placementpoint', + name='d10', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата СДЭК'), + ), + migrations.AddField( + model_name='placementpoint', + name='d12', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Ozon'), + ), + migrations.AddField( + model_name='placementpoint', + name='d17', + field=models.FloatField(null=True, verbose_name='Расстояние до ПВЗ Wildberries'), + ), + migrations.AddField( + model_name='placementpoint', + name='d19', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Yandex'), + ), + migrations.AddField( + model_name='placementpoint', + name='d20', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Yandex'), + ), + migrations.AddField( + model_name='placementpoint', + name='d24', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Почта России'), + ), + migrations.AddField( + model_name='placementpoint', + name='d25', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Почта России'), + ), + migrations.AddField( + model_name='placementpoint', + name='d7', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Ozon'), + ), + migrations.AddField( + model_name='placementpoint', + name='d8', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ СДЭК'), + ), + migrations.AddField( + model_name='placementpoint', + name='d9', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Халва'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d10', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата СДЭК'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d12', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Ozon'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d17', + field=models.FloatField(null=True, verbose_name='Расстояние до ПВЗ Wildberries'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d19', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Yandex'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d20', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Yandex'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d24', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Почта России'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d25', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Почта России'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d7', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ Ozon'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d8', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до ПВЗ СДЭК'), + ), + migrations.AddField( + model_name='preplacementpoint', + name='d9', + field=models.FloatField(blank=True, null=True, verbose_name='Расстояние до Постамата Халва'), + ), + migrations.DeleteModel( + name='PlacementPointPVZDistance', + ), + migrations.DeleteModel( + name='PrePlacementPointPVZDistance', + ), + ] diff --git a/service/serializers.py b/service/serializers.py index 65a23ba..530016b 100644 --- a/service/serializers.py +++ b/service/serializers.py @@ -9,11 +9,6 @@ class PlacementPointSerializer(serializers.ModelSerializer): model = models.PlacementPoint fields = '__all__' - # def to_representation(self, instance): - # representation = super().to_representation(instance) - # min_distances = PointService.get_min_distances_to_group(instance.id) - # representation['min_distance_to_group'] = min_distances - # return representation class PrePlacementPointSerializer(PlacementPointSerializer): class Meta: @@ -21,7 +16,6 @@ class PrePlacementPointSerializer(PlacementPointSerializer): fields = '__all__' - class PostAndPVZGroupSerializer(serializers.ModelSerializer): class Meta: model = models.Post_and_pvzGroup diff --git a/service/service.py b/service/service.py index 84f0ec5..f9197d3 100644 --- a/service/service.py +++ b/service/service.py @@ -248,19 +248,7 @@ class PointService: post_object = models.Post_and_pvz.objects.filter(group__name=group.name).annotate( distance=Dist("wkt", point.geometry)).order_by('distance').first() setattr(point, f'd{group.id}', post_object.distance.m) - # getattr(point, f'd{group.id}') point.save() - # d = instance_type.objects.filter(placement_point=point, - # pvz_postamates_group=group).first() - # if post_object: - # if d: - # if d.dist > post_object.distance.m: - # d.dist = post_object.distance.m - # d.save() - # else: - # instance_type.objects.create(placement_point=point, - # pvz_postamates_group=group, - # dist=post_object.distance.m) @staticmethod def delete_preplacement_points(ids: list): diff --git a/service/views.py b/service/views.py index 7983d66..aaf6c49 100644 --- a/service/views.py +++ b/service/views.py @@ -30,7 +30,6 @@ from django.contrib import messages from django_filters.rest_framework import DjangoFilterBackend from rest_framework import filters from service.utils import CustomReadOnlyModelViewSet -from django.db.models import Min, Max import os from django.forms.models import model_to_dict import base64 @@ -191,31 +190,11 @@ class PlacementPointViewSet(ReadOnlyModelViewSet): if group_dists_lt: g_d = [list(g.split(',')) for g in group_dists_lt] for group in g_d: - # if basename == 'preplacementpoint': - # filtered_points = list( - # models.PrePlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), - # dist__lt=int(group[1])).values_list( - # 'placement_point__id', flat=True)) - # else: - # filtered_points = list( - # models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), - # dist__lt=int(group[1])).values_list( - # 'placement_point__id', flat=True)) kwargs = {f'd{group[0]}__lt': group[1]} qs = qs.filter(**kwargs) if group_dists_gt: g_d = [list(g.split(',')) for g in group_dists_gt] for group in g_d: - # if basename == 'preplacementpoint': - # filtered_points = list( - # models.PrePlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), - # dist__gt=int(group[1])).values_list( - # 'placement_point__id', flat=True)) - # else: - # filtered_points = list( - # models.PlacementPointPVZDistance.objects.filter(pvz_postamates_group__id=int(group[0]), - # dist__gt=int(group[1])).values_list( - # 'placement_point__id', flat=True)) kwargs = {f'd{group[0]}__gt': group[1]} qs = qs.filter(**kwargs) return qs