Basic Table
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 1m44s
All checks were successful
Build and push Docker image at git tag / build (push) Successful in 1m44s
This commit is contained in:
@ -154,7 +154,7 @@ class DB():
|
||||
|
||||
with self.db:
|
||||
for row in self.db.execute(
|
||||
"SELECT * FROM Messages {} LIMIT :lim OFFSET :off".format(where_clause),
|
||||
"SELECT * FROM Messages {} ORDER BY time DESC LIMIT :lim OFFSET :off".format(where_clause),
|
||||
params
|
||||
):
|
||||
yield self._create_row_object(row)
|
||||
@ -165,7 +165,7 @@ class DB():
|
||||
sender=row['sender'],
|
||||
recipient=row['recipient'],
|
||||
time=int(datetime.strptime(row['time'], self._DB_TIME_FORMAT).timestamp()),
|
||||
message=AgentMessage.model_construct(row['json']),
|
||||
message=AgentMessage.model_validate_json(row['json']),
|
||||
processed=row['processed']
|
||||
)
|
||||
|
||||
|
@ -8,28 +8,57 @@
|
||||
# source code released under the terms of GNU Public License Version 3
|
||||
# https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||
from urllib.parse import urlencode
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
from ums.management.db import DB
|
||||
|
||||
class Interface():
|
||||
|
||||
_PREFIX = "/app"
|
||||
|
||||
def __init__(self, template:Jinja2Templates, db:DB):
|
||||
self.template = template
|
||||
self.db = db
|
||||
|
||||
self.router = APIRouter(
|
||||
prefix="/app",
|
||||
prefix=self._PREFIX,
|
||||
tags=["app, gui"]
|
||||
)
|
||||
|
||||
self._add_routes()
|
||||
|
||||
def _add_routes(self):
|
||||
@self.router.get("/", summary="Test")
|
||||
def corpus(request: Request):
|
||||
@self.router.get("/", response_class=RedirectResponse, summary="Redirect")
|
||||
def index(request: Request) -> RedirectResponse:
|
||||
return RedirectResponse(self._PREFIX + "/table")
|
||||
|
||||
@self.router.get("/table", response_class=HTMLResponse, summary="Table of messages")
|
||||
def table(request: Request, limit:int=10, offset:int=0):
|
||||
db_args = {
|
||||
"limit" : limit,
|
||||
"offset" : offset
|
||||
}
|
||||
|
||||
print(self.db.by_count(3))
|
||||
|
||||
return {}
|
||||
def pagination_link(**kwargs):
|
||||
link_args = db_args.copy()
|
||||
link_args.update(kwargs)
|
||||
return urlencode(link_args)
|
||||
|
||||
return self.template.TemplateResponse(
|
||||
'table.html',
|
||||
{"request" : request,
|
||||
"db" : self.db, "db_args" : db_args,
|
||||
"pagination_link" : pagination_link
|
||||
}
|
||||
)
|
||||
|
||||
@self.router.get("/new", response_class=HTMLResponse, summary="Add new riddle")
|
||||
def new(request: Request):
|
||||
return self.template.TemplateResponse(
|
||||
'new.html',
|
||||
{"request" : request}
|
||||
)
|
@ -10,7 +10,10 @@
|
||||
|
||||
import os
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.responses import HTMLResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
from ums.management.interface import Interface
|
||||
@ -44,13 +47,21 @@ class WebMain():
|
||||
directory=TEMPLATE_PATH,
|
||||
auto_reload=True
|
||||
)
|
||||
self.template.env.globals["timestamp2date"] = lambda t: \
|
||||
datetime.fromtimestamp(t).strftime("%H:%M:%S %d.%m.%Y")
|
||||
|
||||
def _add_routers(self):
|
||||
interface_router = Interface(self.template, self.db)
|
||||
self.app.include_router(interface_router.router)
|
||||
|
||||
|
||||
def _add_routes(self):
|
||||
|
||||
@self.app.get("/index", response_class=HTMLResponse, summary="Link list")
|
||||
def index(request: Request):
|
||||
return self.template.TemplateResponse(
|
||||
'index.html',
|
||||
{"request" : request}
|
||||
)
|
||||
|
||||
@self.app.get("/test", summary="Test")
|
||||
def huhu(request: Request) -> AgentMessage:
|
||||
|
Reference in New Issue
Block a user