Merge branch 'fixes' into 'dev'

fixes

See merge request spatial/postamates!154
dev
Aleksandr Popov 3 years ago
commit eaf66bbca4

@ -136,6 +136,7 @@ class PointService:
origin = point.geometry origin = point.geometry
qs = models.PlacementPoint.objects.filter(status=PointStatus.Working.name).annotate( qs = models.PlacementPoint.objects.filter(status=PointStatus.Working.name).annotate(
dist=Dist('geometry', origin)).order_by('dist') dist=Dist('geometry', origin)).order_by('dist')
if qs:
point.target_dist = qs[0].dist.m point.target_dist = qs[0].dist.m
point.target_post_cnt = qs.filter( point.target_post_cnt = qs.filter(
dist__lt=Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS) dist__lt=Distance(m=DEFAULT_PLACEMENT_POINT_UPDATE_RADIUS)
@ -232,7 +233,9 @@ class PointService:
param1__sum=Sum('param1'))['param1__sum'] param1__sum=Sum('param1'))['param1__sum']
point.age_day = AGE_DAY_LIMIT point.age_day = AGE_DAY_LIMIT
placement_point = models.PlacementPoint.objects.annotate( placement_point = models.PlacementPoint.objects.annotate(
dist=Dist('geometry', origin)).order_by('dist')[0] dist=Dist('geometry', origin)).order_by('dist')
if placement_point:
placement_point = placement_point[0]
point.target_cnt_ao_mean = placement_point.target_cnt_ao_mean point.target_cnt_ao_mean = placement_point.target_cnt_ao_mean
point.save() point.save()
for group in groups: for group in groups:
@ -302,7 +305,7 @@ class PointService:
data = pd.DataFrame(serializer.data) data = pd.DataFrame(serializer.data)
if not data.empty: if not data.empty:
if data['start_date'].any(): if data['start_date'].any():
data['start_date'] = data.get('start_date').dt.tz_localize(None) data['start_date'] = data['start_date'].apply(lambda x : pd.to_datetime(x).tz_localize(None) if x else None)
if data['sample_trn'].any(): if data['sample_trn'].any():
data['sample_trn'] = data['sample_trn'].astype(int) data['sample_trn'] = data['sample_trn'].astype(int)
data.rename(columns={'district_id': 'district', 'area_id': 'area'}, inplace=True) data.rename(columns={'district_id': 'district', 'area_id': 'area'}, inplace=True)

@ -410,8 +410,12 @@ class PrePlacementPointViewSet(PlacementPointViewSet):
@action(detail=False, methods=['delete']) @action(detail=False, methods=['delete'])
def delete_points(self, request): def delete_points(self, request):
ids = request.POST['ids'].split(',') ids = request.POST.get('ids')
if ids:
ids = ids.split(',')
PointService.delete_preplacement_points(ids) PointService.delete_preplacement_points(ids)
else:
models.PrePlacementPoint.objects.all().delete()
return Response(status=HTTPStatus.OK, ) return Response(status=HTTPStatus.OK, )
@action(detail=False, methods=['get']) @action(detail=False, methods=['get'])

Loading…
Cancel
Save