2024-07-05 13:32:07 +00:00
|
|
|
|
{% load i18n static %}
|
2024-07-01 10:19:21 +00:00
|
|
|
|
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
{% block head %}
|
|
|
|
|
{% block meta %}
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
|
<meta name="robots" content="NONE,NOARCHIVE" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
<meta name="description" content="">
|
|
|
|
|
<meta name="author" content="Pangea">
|
|
|
|
|
{% endblock %}
|
|
|
|
|
<title>{% block title %}{% if title %}{{ title }} – {% endif %}DeviceHub{% endblock %}</title>
|
|
|
|
|
|
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
|
|
|
{% block style %}
|
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
|
|
|
|
|
<link rel="stylesheet" href= "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
|
|
|
|
|
<link href="{% static "/css/bootstrap.min.css" %}" rel="stylesheet">
|
2024-12-03 18:01:16 +00:00
|
|
|
|
<script src="{% static 'js/Sortable.min.js' %}"></script>
|
2024-07-05 13:32:07 +00:00
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
.bd-placeholder-img {
|
|
|
|
|
font-size: 1.125rem;
|
|
|
|
|
text-anchor: middle;
|
|
|
|
|
-webkit-user-select: none;
|
|
|
|
|
-moz-user-select: none;
|
|
|
|
|
user-select: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (min-width: 768px) {
|
|
|
|
|
.bd-placeholder-img-lg {
|
|
|
|
|
font-size: 3.5rem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
html, body {
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.main-content {
|
|
|
|
|
flex-grow: 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
footer {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Custom styles for this template -->
|
|
|
|
|
<link href="{% static "/css/dashboard.css" %}" rel="stylesheet">
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% endblock %}
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<header class="navbar navbar-dark sticky-top admin bg-green flex-md-nowrap p-0 shadow">
|
2024-07-31 17:24:22 +00:00
|
|
|
|
<a class="navbar-brand col-md-3 col-lg-2 me-0 px-3" href="#">DEVICEHUB</a>
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<div class="navbar-nav navbar-sub-brand">
|
2024-10-10 08:35:27 +00:00
|
|
|
|
{{ user.institution.name|upper }}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="navbar-nav">
|
|
|
|
|
<div class="nav-item text-nowrap">
|
|
|
|
|
<i id="user-avatar" class="bi bi-person-circle"></i>
|
2024-10-10 08:35:27 +00:00
|
|
|
|
<a class="navbar-sub-brand px-3" href="{% url 'user:panel' %}">{{ user.email }}</a>
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<a class="logout" href="{% url 'login:logout' %}">
|
|
|
|
|
<i class="fa-solid fa-arrow-right-from-bracket"></i>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
<div class="container-fluid">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse">
|
|
|
|
|
<div class="position-sticky pt-5">
|
|
|
|
|
<ul class="nav flex-column">
|
2024-10-03 15:46:02 +00:00
|
|
|
|
{% if user.is_admin %}
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="admin {% if path in 'panel users' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_admin" aria-expanded="false" aria-controls="ul_admin" href="javascript:void()">
|
|
|
|
|
<i class="bi bi-person-fill-gear icon_sidebar"></i>
|
|
|
|
|
{% trans 'Admin' %}
|
|
|
|
|
</a>
|
|
|
|
|
<ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'panel users' %}expanded{% else %}collapse{% endif %}" id="ul_admin" data-bs-parent="#sidebarMenu">
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link{% if path == 'panel' %} active2{% endif %}" href="{% url 'admin:panel' %}">
|
|
|
|
|
{% trans 'Panel' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link{% if path == 'users' %} active2{% endif %}" href="{% url 'admin:users' %}">
|
|
|
|
|
{% trans 'Users' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
2024-12-01 05:58:22 +00:00
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link{% if path == 'states' %} active2{% endif %}" href="{% url 'admin:states' %}">
|
|
|
|
|
{% trans 'States' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
2024-10-03 15:46:02 +00:00
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
{% endif %}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="admin {% if path == 'unassigned_devices' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_devices" aria-expanded="false" aria-controls="ul_devices" href="javascript:void()">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<i class="bi bi-laptop icon_sidebar"></i>
|
|
|
|
|
{% trans 'Devices' %}
|
|
|
|
|
</a>
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path == 'unassigned_devices' %}expanded{% else %}collapse{% endif %}" id="ul_devices" data-bs-parent="#sidebarMenu">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'unassigned_devices' %} active2{% endif %}" href="{% url 'dashboard:unassigned_devices' %}">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
{% trans 'Unassigned devices' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="admin {% if path == 'tag' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_lots" aria-expanded="false" aria-controls="ul_lots" href="javascript:void()">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<i class="bi bi-database icon_sidebar"></i>
|
|
|
|
|
{% trans 'Lots' %}
|
|
|
|
|
</a>
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path == 'tag' %}expanded{% else %}collapse{% endif %}" id="ul_lots" data-bs-parent="#sidebarMenu">
|
2024-07-18 15:21:22 +00:00
|
|
|
|
{% for tag in lot_tags %}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<li class="nav-items">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'tag' %} active2{% endif %}" href="{% url 'lot:tag' tag.id %}">
|
2024-07-18 15:21:22 +00:00
|
|
|
|
{{ tag.name }}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</a>
|
|
|
|
|
</li>
|
2024-07-18 15:21:22 +00:00
|
|
|
|
{% endfor %}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="admin {% if path in 'upload list' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_evidences" aria-expanded="false" aria-controls="ul_evidences" href="javascript:void()">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<i class="bi bi-usb-drive icon_sidebar"></i>
|
2024-09-17 10:21:00 +00:00
|
|
|
|
{% trans 'Evidences' %}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</a>
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'upload list' %}expanded{% else %}collapse{% endif %}" id="ul_evidences" data-bs-parent="#sidebarMenu">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'upload' %} active2{% endif %}" href="{% url 'evidence:upload' %}">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
{% trans 'Upload one' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'list' %} active2{% endif %}" href="{% url 'evidence:list' %}">
|
2024-07-26 15:59:34 +00:00
|
|
|
|
{% trans 'Old evidences' %}
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="admin {% if path in 'import add' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_placeholders" aria-expanded="false" aria-controls="ul_placeholders" href="javascript:void()">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<i class="bi-menu-button-wide icon_sidebar"></i>
|
|
|
|
|
{% trans 'Placeholders' %}
|
|
|
|
|
</a>
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'import add' %}expanded{% else %}collapse{% endif %}" id="ul_placeholders" data-bs-parent="#sidebarMenu">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'import' %} active2{% endif %}" href="{% url 'evidence:import' %}">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
{% trans 'Upload Spreadsheet' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
2024-09-17 10:21:00 +00:00
|
|
|
|
<a class="nav-link{% if path == 'add' %} active2{% endif %}" href="{% url 'device:add' %}">
|
2024-07-05 13:32:07 +00:00
|
|
|
|
{% trans 'Create one' %}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
<main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
|
|
|
|
|
{% block messages %}
|
|
|
|
|
{% for message in messages %}
|
|
|
|
|
<div class="alert {{ message.tags|default:'info' }} alert-dismissible fade show mt-3" role="alert">
|
|
|
|
|
{{ message }}
|
|
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endblock messages %}
|
|
|
|
|
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2">
|
|
|
|
|
<h1 class="h2">{{ title }}</h1>
|
2024-10-09 10:18:09 +00:00
|
|
|
|
|
|
|
|
|
<form method="post" action="{% url 'dashboard:search' %}">
|
|
|
|
|
{% csrf_token %}
|
|
|
|
|
<div class="input-group rounded">
|
|
|
|
|
<input type="search" name="search" class="form-control rounded" placeholder="Search your device..." aria-label="Search" aria-describedby="search-addon" />
|
|
|
|
|
<span class="input-group-text border-0" id="search-addon">
|
|
|
|
|
<i class="fas fa-search"></i>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
|
2024-07-05 13:32:07 +00:00
|
|
|
|
</div>
|
2024-10-10 10:28:03 +00:00
|
|
|
|
|
2024-07-05 13:32:07 +00:00
|
|
|
|
<div class="row border-bottom mb-3">
|
|
|
|
|
<div class="col">
|
|
|
|
|
<small style="color:#899bbd"><i>{{ breadcrumb }}</i></small>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btn-toolbar mb-2 mb-md-0">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
|
{% endblock content %}
|
|
|
|
|
|
|
|
|
|
</main>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Footer -->
|
|
|
|
|
<footer class="footer text-center mt-auto py-3">
|
|
|
|
|
<div class="container">
|
|
|
|
|
<span class="text-muted">{{ commit_id }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
{% block script %}
|
|
|
|
|
<script src="{% static "js/jquery-3.3.1.slim.min.js" %}"></script>
|
|
|
|
|
<script src="{% static "js/popper.min.js" %}"></script>
|
|
|
|
|
<script src="{% static "js/bootstrap.min.js" %}"></script>
|
|
|
|
|
{% block extrascript %}{% endblock %}
|
|
|
|
|
{% endblock %}
|
|
|
|
|
</body>
|
2024-07-01 10:19:21 +00:00
|
|
|
|
</html>
|