diff --git a/pflaenzli/pflaenzli/templates/offer/detail.html b/pflaenzli/pflaenzli/templates/offer/detail.html index 053bdf2..ab43a86 100644 --- a/pflaenzli/pflaenzli/templates/offer/detail.html +++ b/pflaenzli/pflaenzli/templates/offer/detail.html @@ -27,9 +27,9 @@

{{ offer.zipcode }}

- {% if distance > 0 %} + {% if dist %}

- ca. {{ distance }} km + ca. {{ dist }} km

{% endif %} diff --git a/pflaenzli/pflaenzli/utils/distance.py b/pflaenzli/pflaenzli/utils/distance.py index 2c4af5c..2015eca 100644 --- a/pflaenzli/pflaenzli/utils/distance.py +++ b/pflaenzli/pflaenzli/utils/distance.py @@ -8,6 +8,9 @@ df = read_pickle(os.path.join(path, 'plz.pkl')) def calculate_distance(zip_1, zip_2): + if zip_1 == zip_2: + return None + zip_1_coords = tuple(df[df.index == zip_1].values) zip_2_coords = tuple(df[df.index == zip_2].values) diff --git a/pflaenzli/pflaenzli/views.py b/pflaenzli/pflaenzli/views.py index 963b1ed..4eede75 100644 --- a/pflaenzli/pflaenzli/views.py +++ b/pflaenzli/pflaenzli/views.py @@ -10,6 +10,7 @@ from .forms import CreateOfferForm, RegistrationForm from .models import PflaenzliUser, Offer, Wish from .mail import send_offer_email from .upload import generate_unique_filename +from .utils.distance import calculate_distance def list_offers(request, filters=None): @@ -39,8 +40,12 @@ def create_offer(request): def offer_detail(request, offer_id): offer = get_object_or_404(Offer, id=offer_id) wishes = Wish.objects.filter(user=offer.user) + if offer.zipcode and request.user.zipcode: + dist = calculate_distance(offer.zipcode, request.user.zipcode) + else: + dist = None - return render(request, "offer/detail.html", {"offer": offer, "wishes": wishes}) + return render(request, "offer/detail.html", {"offer": offer, "wishes": wishes, "dist": dist}) @login_required