feat(ui): rich dashboard cards with countries and recent postcards
This commit is contained in:
4 files changed
+646
-3
No files matched your search
+619
@@ -291,3 +291,622 @@ INFO: 127.0.0.1:64612 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:63763 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:63763 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:63763 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:58913 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:58913 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:54850 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:54850 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:54850 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:59821 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:59821 - "GET /logout HTTP/1.1" 303 See Other
|
||||
INFO: 127.0.0.1:59821 - "GET /login HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:59821 - "POST /login HTTP/1.1" 303 See Other
|
||||
INFO: 127.0.0.1:59821 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:59821 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59821 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:59821 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:55813 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:55813 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:55813 - "GET /profiles/3/postcards/new HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:55813 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:55813 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:62477 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:62477 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:62477 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:61813 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61813 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61813 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61813 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61813 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:61818 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61818 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:61818 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:50400 - "GET /dashboard HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:50400 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "GET /profiles/3/postcards/new HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "GET /profiles/3/postcards HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "GET /static/style.css HTTP/1.1" 304 Not Modified
|
||||
INFO: 127.0.0.1:50400 - "GET /api-keys HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "GET /profiles HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:50400 - "POST /profiles/3/rename HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:58000 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:50400 - "POST /profiles/3/rename HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:58000 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:50400 - "POST /profiles/3/rename HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:58000 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:49883 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
INFO: 127.0.0.1:59726 - "GET /favicon.ico HTTP/1.1" 404 Not Found
|
||||
INFO: 127.0.0.1:50231 - "GET /login HTTP/1.1" 303 See Other
|
||||
INFO: 127.0.0.1:50231 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
INFO: 127.0.0.1:64510 - "GET /login HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:51438 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
INFO: 127.0.0.1:64876 - "GET /login HTTP/1.1" 303 See Other
|
||||
INFO: 127.0.0.1:64876 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
INFO: 127.0.0.1:57404 - "GET /login HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:57404 - "GET /static/style.css HTTP/1.1" 200 OK
|
||||
INFO: 127.0.0.1:59212 - "POST /login HTTP/1.1" 303 See Other
|
||||
INFO: 127.0.0.1:59212 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
INFO: 127.0.0.1:54873 - "GET /dashboard HTTP/1.1" 500 Internal Server Error
|
||||
ERROR: Exception in ASGI application
|
||||
Traceback (most recent call last):
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
|
||||
result = await app( # type: ignore[func-returns-value]
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
self.scope, self.receive, self.send
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in __call__
|
||||
return await self.app(scope, receive, send)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\applications.py", line 1054, in __call__
|
||||
await super().__call__(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\applications.py", line 113, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
|
||||
await self.app(scope, receive, _send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in __call__
|
||||
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 715, in __call__
|
||||
await self.middleware_stack(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 735, in app
|
||||
await route.handle(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 288, in handle
|
||||
await self.app(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 76, in app
|
||||
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
|
||||
raise exc
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
|
||||
await app(scope, receive, sender)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\routing.py", line 73, in app
|
||||
response = await f(request)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 301, in app
|
||||
raw_response = await run_endpoint_function(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
...<3 lines>...
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\fastapi\routing.py", line 214, in run_endpoint_function
|
||||
return await run_in_threadpool(dependant.call, **values)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\concurrency.py", line 39, in run_in_threadpool
|
||||
return await anyio.to_thread.run_sync(func, *args)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\to_thread.py", line 63, in run_sync
|
||||
return await get_async_backend().run_sync_in_worker_thread(
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
func, args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
)
|
||||
^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 2596, in run_sync_in_worker_thread
|
||||
return await future
|
||||
^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 1029, in run
|
||||
result = context.run(func, *args)
|
||||
File "J:\Projects\postcard-manager\app\routers\web.py", line 115, in dashboard
|
||||
countries = sorted({c.country for c in cards if c.country})
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse
|
||||
return _TemplateResponse(
|
||||
template,
|
||||
...<4 lines>...
|
||||
background=background,
|
||||
)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__
|
||||
content = template.render(context)
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 1304, in render
|
||||
self.environment.handle_exception()
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 939, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 1, in top-level template code
|
||||
{% extends "base.html" %}
|
||||
File "J:\Projects\postcard-manager\app\templates\base.html", line 21, in top-level template code
|
||||
{% block content %}{% endblock %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\app\templates\dashboard.html", line 10, in block 'content'
|
||||
{% set ex = extras[p.id] %}
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "J:\Projects\postcard-manager\.venv\Lib\site-packages\jinja2\environment.py", line 468, in getitem
|
||||
return obj[argument]
|
||||
~~~^^^^^^^^^^
|
||||
jinja2.exceptions.UndefinedError: 'extras' is undefined
|
||||
Reference in New Issue
Block a user