dev
AlexP077 2 years ago
parent 420c8334e6
commit c55ab0b8f3

@ -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",
{"model": "service.otherobjectscategory", "pk": 23, "fields": {"name": "BC", "image": "", "visible": false}}, "pk": 4,
{"model": "service.otherobjectscategory", "pk": 24, "fields": {"name": "flats_cnt", "image": "", "visible": false}}, "fields": {
{"model": "service.otherobjectscategory", "pk": 25, "fields": {"name": "offers_estate", "image": "", "visible": false}}, { "name": "business_activity",
"model": "service.otherobjectscategory", "pk": 26, "fields": {"name": "schools", "image": "", "visible": false}}, "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",
{"model": "service.otherobjectscategory", "pk": 31, "fields": {"name": "supermarkets", "image": "", "visible": false}}, "pk": 5,
{"model": "service.otherobjectscategory", "pk": 32, "fields": {"name": "supermarkets_premium", "image": "", "visible": false}}, "fields": {
{"model": "service.otherobjectscategory", "pk": 33, "fields": {"name": "banks", "image": "", "visible": false}}, "name": "metro_stations",
{"model": "service.otherobjectscategory", "pk": 34, "fields": {"name": "recas", "image": "", "visible": false}}, "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",
{"model": "service.otherobjectscategory", "pk": 39, "fields": {"name": "public_services", "image": "", "visible": false}}, "pk": 22,
{"model": "service.otherobjectscategory", "pk": 40, "fields": {"name": "popul_home_job", "image": "", "visible": false}}, "fields": {
{"model": "service.otherobjectscategory", "pk": 41, "fields": {"name": "TC", "image": "", "visible": false}}, "name": "bargains",
{"model": "service.otherobjectscategory", "pk": 42, "fields": {"name": "yndx_food_cnt_amt", "image": "", "visible": false}}] "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
}
}
]

@ -1,22 +1,20 @@
[ [
{ {
"model": "service.post_and_pvzcategory", "model": "service.post_and_pvzcategory",
"pk": 1, "pk": 1,
"fields": { "fields": {
"name": "ПВЗ", "name": "ПВЗ",
"image": "", "visible": true,
"visible": true, "include_in_ml": 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
}
}
] ]

@ -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',
),
]

@ -9,11 +9,6 @@ class PlacementPointSerializer(serializers.ModelSerializer):
model = models.PlacementPoint model = models.PlacementPoint
fields = '__all__' 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 PrePlacementPointSerializer(PlacementPointSerializer):
class Meta: class Meta:
@ -21,7 +16,6 @@ class PrePlacementPointSerializer(PlacementPointSerializer):
fields = '__all__' fields = '__all__'
class PostAndPVZGroupSerializer(serializers.ModelSerializer): class PostAndPVZGroupSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.Post_and_pvzGroup model = models.Post_and_pvzGroup

@ -248,19 +248,7 @@ class PointService:
post_object = models.Post_and_pvz.objects.filter(group__name=group.name).annotate( post_object = models.Post_and_pvz.objects.filter(group__name=group.name).annotate(
distance=Dist("wkt", point.geometry)).order_by('distance').first() distance=Dist("wkt", point.geometry)).order_by('distance').first()
setattr(point, f'd{group.id}', post_object.distance.m) setattr(point, f'd{group.id}', post_object.distance.m)
# getattr(point, f'd{group.id}')
point.save() 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 @staticmethod
def delete_preplacement_points(ids: list): def delete_preplacement_points(ids: list):

@ -30,7 +30,6 @@ from django.contrib import messages
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters from rest_framework import filters
from service.utils import CustomReadOnlyModelViewSet from service.utils import CustomReadOnlyModelViewSet
from django.db.models import Min, Max
import os import os
from django.forms.models import model_to_dict from django.forms.models import model_to_dict
import base64 import base64
@ -191,31 +190,11 @@ class PlacementPointViewSet(ReadOnlyModelViewSet):
if group_dists_lt: if group_dists_lt:
g_d = [list(g.split(',')) for g in group_dists_lt] g_d = [list(g.split(',')) for g in group_dists_lt]
for group in g_d: 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]} kwargs = {f'd{group[0]}__lt': group[1]}
qs = qs.filter(**kwargs) qs = qs.filter(**kwargs)
if group_dists_gt: if group_dists_gt:
g_d = [list(g.split(',')) for g in group_dists_gt] g_d = [list(g.split(',')) for g in group_dists_gt]
for group in g_d: 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]} kwargs = {f'd{group[0]}__gt': group[1]}
qs = qs.filter(**kwargs) qs = qs.filter(**kwargs)
return qs return qs

Loading…
Cancel
Save