Revize 9aae8d25
Přidáno uživatelem Matěj Zeman před asi 2 roky(ů)
server/sql_app/api/licenses.py | ||
---|---|---|
1 | 1 |
from typing import List |
2 | 2 |
|
3 |
from fastapi import Depends, FastAPI, HTTPException, APIRouter |
|
3 |
from fastapi import Depends, FastAPI, HTTPException, APIRouter, Form
|
|
4 | 4 |
from sqlalchemy.orm import Session |
5 | 5 |
from datetime import date |
6 | 6 |
from sql_app import crud, models, schemas |
... | ... | |
25 | 25 |
db.close() |
26 | 26 |
|
27 | 27 |
|
28 |
@licenses.get("/license-create", response_class=HTMLResponse) |
|
29 |
async def licenses_create_web(request: Request): |
|
30 |
return templates.TemplateResponse("license_create.html", {"request": request}) |
|
31 |
|
|
32 |
|
|
28 | 33 |
@licenses.get("/licenses-web", response_class=HTMLResponse) |
29 |
async def read_pcs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
|
|
34 |
async def licenses_web(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
|
|
30 | 35 |
licenses = crud.get_licenses(db, skip=skip, limit=limit) |
31 | 36 |
return templates.TemplateResponse("licenses.html", {"request": request, "licenses": licenses}) |
32 | 37 |
|
33 | 38 |
|
34 |
@licenses.post("/license", response_model=schemas.License) |
|
35 |
def create_license(license: schemas.LicenseCreate, db: Session = Depends(get_db)): |
|
36 |
print(crud.create_license(db=db, name=license.name, expdate=license.expiration_date)) |
|
39 |
@licenses.post("/licenses-web", response_class=HTMLResponse) |
|
40 |
def create_license(request: Request, name: str = Form(...), expdate: date = Form(...), skip: int = 0, limit: int = 100, |
|
41 |
db: Session = Depends(get_db)): |
|
42 |
db_license = crud.create_license(db, name, expdate) |
|
43 |
if db_license is None: |
|
44 |
print("something went wrong") |
|
45 |
licenses = crud.get_licenses(db, skip=skip, limit=limit) |
|
46 |
return templates.TemplateResponse("licenses.html", {"request": request, "licenses": licenses}) |
|
37 | 47 |
|
38 | 48 |
|
39 | 49 |
@licenses.get("/licenses", response_model=List[schemas.License]) |
server/sql_app/api/usb_logs.py | ||
---|---|---|
27 | 27 |
@usblogs.get("/logs-web", response_class=HTMLResponse) |
28 | 28 |
async def read_logs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
29 | 29 |
logs = crud.get_logs(db, skip=skip, limit=limit) |
30 |
return templates.TemplateResponse("logs.html", {"request": request, "logs": logs}) |
|
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}) |
|
31 | 54 |
|
32 | 55 |
|
33 | 56 |
@usblogs.post("/usb-logs", response_model=schemas.USBLog) |
server/sql_app/main.py | ||
---|---|---|
17 | 17 |
''' |
18 | 18 |
if __name__ == "__main__": |
19 | 19 |
uvicorn.run(app, host="192.168.0.22", port=8000) |
20 |
''' |
|
20 |
''' |
server/templates/licenses/license_create.html | ||
---|---|---|
1 |
<!DOCTYPE html> |
|
2 |
<html lang="en"> |
|
3 |
<head> |
|
4 |
<meta charset="UTF-8"> |
|
5 |
<title>Create a License</title> |
|
6 |
</head> |
|
7 |
<body> |
|
8 |
<form action="/api/v1/licenses-web" method="post"> |
|
9 |
<label for="name">Name:</label><br> |
|
10 |
<input type="text" id="name" name="name"><br><br> |
|
11 |
<label for="expdate">Expiration Date</label> |
|
12 |
<input type="date" id="expdate" name="expdate"> |
|
13 |
<input type="submit" value="Submit"> |
|
14 |
</form> |
|
15 |
</body> |
|
16 |
</html> |
server/templates/usb-logs/logs.html | ||
---|---|---|
3 | 3 |
<title>Logs Details</title> |
4 | 4 |
</head> |
5 | 5 |
<body> |
6 |
<form action="/api/v1/logs-web/" method="post"> |
|
7 |
<label for="pc">PC:</label> |
|
8 |
<select id="pc" name="pc"> |
|
9 |
<option value="all">all</option> |
|
10 |
{% for pc in pcs %} |
|
11 |
<option value={{pc.id}}>{{pc.username}}</option> |
|
12 |
{% endfor %} |
|
13 |
</select> |
|
14 |
<input type="submit" value="Filter"> |
|
15 |
</form> |
|
6 | 16 |
<table> |
7 | 17 |
<TR> |
8 | 18 |
<TH>ID</TH> |
Také k dispozici: Unified diff
re #9575 Added filter over Usernames in /api/v1/logs-web and endpoint with Form for creating a license.