websiteapp: basic views

This commit is contained in:
Oliver Gaskell 2025-11-01 13:53:33 +00:00
parent 06e66a86c2
commit bd5fa48d30
No known key found for this signature in database
GPG key ID: F971A08925FCC0AD
2 changed files with 31 additions and 10 deletions

View file

@ -3,8 +3,8 @@ from . import views
urlpatterns = [ urlpatterns = [
path('', views.landing_page), path('', views.landing_page),
path('encode', views.encode), path('encode', views.encode_view),
path('encode/result', views.encode_result), path('encode/result', views.encode_result_view),
path('decode', views.decode), path('decode', views.decode_view),
path('decode/result', views.decode_result), path('decode/result', views.decode_result_view),
] ]

View file

@ -1,6 +1,8 @@
from django.http import HttpRequest, HttpResponse from django.http import HttpRequest, HttpResponse
from django.shortcuts import render from django.shortcuts import render
from engine import encode, decode, format_location, parse_location
def hello_world(request: HttpRequest) -> HttpResponse: def hello_world(request: HttpRequest) -> HttpResponse:
return render(request, 'websiteapp/hello_world.html', { return render(request, 'websiteapp/hello_world.html', {
"content": "hi!", "content": "hi!",
@ -9,14 +11,33 @@ def hello_world(request: HttpRequest) -> HttpResponse:
def landing_page(request: HttpRequest) -> HttpResponse: def landing_page(request: HttpRequest) -> HttpResponse:
return render(request, 'websiteapp/landing_page.html', {}) return render(request, 'websiteapp/landing_page.html', {})
def encode(request: HttpRequest) -> HttpResponse: def encode_view(request: HttpRequest) -> HttpResponse:
return render(request, 'websiteapp/encode.html', {}) return render(request, 'websiteapp/encode.html', {})
def encode_result(request: HttpRequest) -> HttpResponse: def encode_result_view(request: HttpRequest) -> HttpResponse:
return render(request, 'websiteapp/encode_result.html', {}) 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', {}) return render(request, 'websiteapp/decode.html', {})
def decode_result(request: HttpRequest) -> HttpResponse: def decode_result_view(request: HttpRequest) -> HttpResponse:
return render(request, 'websiteapp/decode_result.html', {}) 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})