From bd5fa48d307c78b31141a5bd4be593bdafff7e5f Mon Sep 17 00:00:00 2001 From: Oliver Gaskell Date: Sat, 1 Nov 2025 13:53:33 +0000 Subject: [PATCH] websiteapp: basic views --- websiteapp/urls.py | 8 ++++---- websiteapp/views.py | 33 +++++++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/websiteapp/urls.py b/websiteapp/urls.py index 36932e5..ccdd49b 100644 --- a/websiteapp/urls.py +++ b/websiteapp/urls.py @@ -3,8 +3,8 @@ from . import views urlpatterns = [ path('', views.landing_page), - path('encode', views.encode), - path('encode/result', views.encode_result), - path('decode', views.decode), - path('decode/result', views.decode_result), + path('encode', views.encode_view), + path('encode/result', views.encode_result_view), + path('decode', views.decode_view), + path('decode/result', views.decode_result_view), ] diff --git a/websiteapp/views.py b/websiteapp/views.py index d275390..a0f74c1 100644 --- a/websiteapp/views.py +++ b/websiteapp/views.py @@ -1,6 +1,8 @@ from django.http import HttpRequest, HttpResponse from django.shortcuts import render +from engine import encode, decode, format_location, parse_location + def hello_world(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/hello_world.html', { "content": "hi!", @@ -9,14 +11,33 @@ def hello_world(request: HttpRequest) -> HttpResponse: def landing_page(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/landing_page.html', {}) -def encode(request: HttpRequest) -> HttpResponse: +def encode_view(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/encode.html', {}) -def encode_result(request: HttpRequest) -> HttpResponse: - return render(request, 'websiteapp/encode_result.html', {}) +def encode_result_view(request: HttpRequest) -> HttpResponse: + lat, lon = request.GET.get('lat', None), request.GET.get('lon', None) -def decode(request: HttpRequest) -> HttpResponse: + if lat is None or lon is None: + # TODO: do some nice error display + return render(request, 'websiteapp/encode_result.html', {"result": "error"}) + + result = encode((lat, lon)) + result_str = format_location(result) + + return render(request, 'websiteapp/encode_result.html', {"result": result_str}) + +def decode_view(request: HttpRequest) -> HttpResponse: return render(request, 'websiteapp/decode.html', {}) -def decode_result(request: HttpRequest) -> HttpResponse: - return render(request, 'websiteapp/decode_result.html', {}) +def decode_result_view(request: HttpRequest) -> HttpResponse: + loc_str = request.GET.get('loc', None) + if loc_str is None: + # TODO: do some nice error display + result = "error" + + else: + loc = parse_location(loc_str) + (lon, lat) = decode(loc) + result = f"{lon},{lat}" + + return render(request, 'websiteapp/decode_result.html', {"result": result})