def get_near_shop(cls, *, longitude, latitude, range_): shops = Shop.objects.all() in_range = ( lambda shop: distance( longitude_1=longitude, latitude_1=latitude, longitude_2=shop.shop_long, latitude_2=shop.shop_lati ) < range_ ) return [ShopProxy.get_by_object(shop).get_dict() for shop in shops if in_range(shop)]
def get_near_barber(cls, *, longitude, latitude, range_): Checker.latitude(latitude).longitude(longitude) barbers = Barber.objects.all() d = lambda barber_: distance(latitude_1=latitude, longitude_1=longitude, latitude_2=barber_.barber_shop_id.shop_lati, longitude_2=barber_.barber_shop_id.shop_long) barbers_in_range, dis_list = [], [] for barber in barbers: temp = d(barber) if temp < range_: barbers_in_range.append(BarberProxy.get_by_object(barber)) dis_list.append(temp) return barbers_in_range, dis_list