home: add minerva dashboard scaffold
This commit is contained in:
42
home/minerva-dashboard/app/routes/ui.py
Normal file
42
home/minerva-dashboard/app/routes/ui.py
Normal file
@@ -0,0 +1,42 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import APIRouter, Form, Request, status
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parents[1]
|
||||
templates = Jinja2Templates(directory=str(BASE_DIR / 'templates'))
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get('/', response_class=HTMLResponse)
|
||||
def dashboard(request: Request) -> HTMLResponse:
|
||||
summary = request.app.state.store.dashboard_summary()
|
||||
return templates.TemplateResponse(
|
||||
request,
|
||||
'dashboard.html',
|
||||
{
|
||||
'summary': summary,
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@router.post('/quick-actions/notes')
|
||||
def quick_add_note_form(
|
||||
request: Request,
|
||||
title: str = Form(...),
|
||||
body: str = Form(...),
|
||||
category: str = Form('note'),
|
||||
) -> RedirectResponse:
|
||||
request.app.state.store.add_quick_note(
|
||||
{
|
||||
'title': title,
|
||||
'body': body,
|
||||
'category': category,
|
||||
'source': 'dashboard-form',
|
||||
'pinned': False,
|
||||
}
|
||||
)
|
||||
return RedirectResponse(url='/', status_code=status.HTTP_303_SEE_OTHER)
|
||||
Reference in New Issue
Block a user