Projekt

Obecné

Profil

« Předchozí | Další » 

Revize b6f0e019

Přidáno uživatelem Matěj Zeman před více než 2 roky(ů)

re #9575 Filtering Over logs and devices.

Zobrazit rozdíly:

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