Revize b6f0e019
Přidáno uživatelem Matěj Zeman před více než 2 roky(ů)
server/sql_app/api/usb_logs.py | ||
---|---|---|
4 | 4 |
from sqlalchemy.orm import Session |
5 | 5 |
from sql_app import crud, models, schemas |
6 | 6 |
from ..database import SessionLocal, engine |
7 |
from fastapi import FastAPI, Request |
|
8 |
from fastapi.responses import HTMLResponse |
|
9 |
from fastapi.staticfiles import StaticFiles |
|
10 |
from fastapi.templating import Jinja2Templates |
|
11 | 7 |
|
12 | 8 |
models.Base.metadata.create_all(bind=engine) |
13 |
templates = Jinja2Templates(directory="templates/usb-logs") |
|
14 | 9 |
|
15 | 10 |
usblogs = APIRouter(prefix="/api/v1") |
16 | 11 |
|
... | ... | |
24 | 19 |
db.close() |
25 | 20 |
|
26 | 21 |
|
27 |
@usblogs.get("/logs-web", response_class=HTMLResponse) |
|
28 |
async def read_logs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
|
29 |
logs = crud.get_logs(db, skip=skip, limit=limit) |
|
30 |
pcs = [] |
|
31 |
for log in logs: |
|
32 |
if log.pc_id not in pcs: |
|
33 |
pcs.append(log.pc_id) |
|
34 |
pc_obj = crud.find_pcs(db, pcs) |
|
35 |
return templates.TemplateResponse("logs.html", {"request": request, "logs": logs, "pcs": pc_obj}) |
|
36 |
|
|
37 |
|
|
38 |
@usblogs.post("/logs-web", response_class=HTMLResponse) |
|
39 |
async def filter_logs(request: Request, pc: str = Form(...), skip: int = 0, limit: int = 100, |
|
40 |
db: Session = Depends(get_db)): |
|
41 |
logs_temp = crud.get_logs(db, skip=skip, limit=limit) |
|
42 |
pcs = [] |
|
43 |
logs = [] |
|
44 |
for log in logs_temp: |
|
45 |
if log.pc_id not in pcs: |
|
46 |
pcs.append(log.pc_id) |
|
47 |
if pc != "all": |
|
48 |
if log.pc_id == int(pc): |
|
49 |
logs.append(log) |
|
50 |
if pc == "all": |
|
51 |
logs = logs_temp |
|
52 |
pc_obj = crud.find_pcs(db, pcs) |
|
53 |
return templates.TemplateResponse("logs.html", {"request": request, "logs": logs, "pcs": pc_obj}) |
|
54 |
|
|
55 |
|
|
56 | 22 |
@usblogs.post("/usb-logs", response_model=schemas.USBLog) |
57 | 23 |
def create_device_logs(log: schemas.USBTempBase, db: Session = Depends(get_db)): |
58 | 24 |
dev = crud.find_device(db, log.device) |
Také k dispozici: Unified diff
re #9575 Filtering Over logs and devices.