diff --git a/imptune/api/pages.py b/imptune/api/pages.py index aa673f4..07764b8 100644 --- a/imptune/api/pages.py +++ b/imptune/api/pages.py @@ -15,12 +15,23 @@ templates = Jinja2Templates(directory=str(Path(__file__).parent.parent / "templa @router.get("/", response_class=HTMLResponse) def dashboard(request: Request): + from imptune.db.models import Printer + + recent_printers = list( + Printer.select().order_by(Printer.created_at.desc()).limit(5) + ) + recent_packages = list( + Printer.select() + .where(Printer.driver.is_null(False)) + .order_by(Printer.created_at.desc()) + .limit(5) + ) return templates.TemplateResponse( request=request, name="dashboard.html", context={ - "recent_printers": [], - "recent_packages": [], + "recent_printers": recent_printers, + "recent_packages": recent_packages, }, ) @@ -126,3 +137,22 @@ def clients_page(request: Request): name="clients.html", context={"clients": clients}, ) + + +@router.get("/packages", response_class=HTMLResponse) +def packages_page(request: Request): + from imptune.db.models import Client, Driver, Printer + + printers = list( + Printer.select(Printer, Client, Driver) + .join(Client, JOIN.LEFT_OUTER) + .switch(Printer) + .join(Driver, JOIN.LEFT_OUTER) + .where(Printer.driver.is_null(False)) + .order_by(Printer.name) + ) + return templates.TemplateResponse( + request=request, + name="packages.html", + context={"printers": printers}, + ) diff --git a/imptune/templates/dashboard.html b/imptune/templates/dashboard.html index 3423602..e67624e 100644 --- a/imptune/templates/dashboard.html +++ b/imptune/templates/dashboard.html @@ -4,9 +4,9 @@

Dashboard

- New Printer - Upload Driver - Export Package + New Printer + Upload Driver + Export Package
@@ -17,7 +17,7 @@ {% if recent_printers %} {% else %} @@ -30,7 +30,7 @@ {% if recent_packages %} {% else %} diff --git a/imptune/templates/packages.html b/imptune/templates/packages.html new file mode 100644 index 0000000..dc9e66c --- /dev/null +++ b/imptune/templates/packages.html @@ -0,0 +1,37 @@ +{% extends "base.html" %} + +{% block content %} +

Packages

+

Printers with drivers assigned — ready for deployment package export.

+ +{% if printers %} +
+ + + + + + + + + + + {% for printer in printers %} + + + + + + + {% endfor %} + +
PrinterClientDriverDownloads
{{ printer.name }}{% if printer.client_id %}{{ printer.client.name }}{% else %}—{% endif %}{{ printer.driver.original_filename }} + .intunewin +  |  + NinjaRMM ZIP +
+
+{% else %} +

No package-ready printers yet. Assign a driver to a printer to enable package export.

+{% endif %} +{% endblock %}