Versiunea funcțională EUMI

This commit is contained in:
2026-08-31 16:10:46 +03:00
parent 75bcef3095
commit ce5028a27f
58 changed files with 4271 additions and 98 deletions
+107
View File
@@ -0,0 +1,107 @@
{% load static %}
<!DOCTYPE html>
<html lang="ro">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>EUMI - Management IT</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- HTMX -->
<script src="https://unpkg.com/htmx.org@1.9.10"></script>
</head>
<body class="bg-light" hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'>
<!-- Main Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #417690;">
<div class="container-fluid">
<a class="navbar-brand fw-bold" href="{% url 'equipment:dashboard' %}">E.U.M.I. v.4.0.0</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="{% url 'users:user_list' %}">Angajați</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'equipment:equipment_list' %}">Echipamente</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'equipment:certificate_list' %}">Certificate Digitale</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'equipment:handover_list' %}">Procese Verbale</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'equipment:decommission_list' %}">Casări</a>
</li>
<!-- <li class="nav-item">
<a class="nav-link" href="{% url 'interventions:intervention_list' %}">Intervenții (Helpdesk)</a>
</li> -->
</ul>
<ul class="navbar-nav ms-auto align-items-center">
{% if user.is_authenticated %}
<li class="nav-item me-3 text-white">
Salut, <strong>{{ user.username }}</strong>
</li>
<li class="nav-item">
<form method="post" action="{% url 'logout' %}" class="d-inline">
{% csrf_token %}
<button type="submit" class="btn btn-sm btn-outline-light">Deconectare</button>
</form>
</li>
{% else %}
<li class="nav-item">
<span class="navbar-text text-white">Compartimentul IT</span>
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
<!-- Dynamic Content Container -->
<div class="container mt-4" id="main-content">
<!-- Antet Oficial pentru interfața web -->
<div class="d-flex align-items-center mb-4 pb-3 border-bottom">
<img src="{% static 'img/stema.png' %}" alt="Stema Roman" style="width: 55px; height: auto;" class="me-3">
<div class="lh-sm">
<div class="fw-bold fs-5">U.A.T. Municipiul Roman</div>
<div class="text-secondary" style="font-size: 0.9em;">Compartiment administrare infrastructură I.T. și baze de date</div>
</div>
</div>
{% block content %}
<!-- Module views will be injected here -->
{% endblock %}
</div>
<footer class="mt-5 py-3 text-center text-muted small border-top">
<div class="container">
Aplicație dezvoltată de <strong>Tololoi Cătălin</strong> |
✉️ <a href="mailto:catalin@x3c.ro" class="text-decoration-none text-muted">catalin@x3c.ro</a>
</div>
</footer>
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<script src="https://npmcdn.com/flatpickr/dist/l10n/ro.js"></script>
<script>
function initializeCalendars() {
flatpickr(".flatpickr-date", {
dateFormat: "d.m.Y",
locale: "ro",
allowInput: true
});
}
// Inițializăm la prima încărcare a paginii
initializeCalendars();
// Re-inițializăm de fiecare dată când HTMX deschide un modal nou
document.body.addEventListener('htmx:afterSwap', function(evt) {
initializeCalendars();
});
</script>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
{% extends 'base.html' %}
{% load static %}
{% block content %}
<div class="row justify-content-center mt-5">
<div class="col-md-4">
<!-- Logo / Titlu instituție -->
<!-- <div class="text-center mb-4">
<img src="{% static 'img/stema.png' %}" alt="Stema Roman" style="width: 80px;" class="mb-3">
<h4 class="fw-bold">U.A.T. Municipiul Roman</h4>
<p class="text-muted small">Platformă Gestiune IT (IT EUMI)</p>
</div> -->
<div class="card shadow">
<div class="card-header bg-dark text-white text-center fw-bold">
Autentificare
</div>
<div class="card-body p-4">
{% if form.errors %}
<div class="alert alert-danger p-2 small text-center">
Utilizator sau parolă incorectă. Vă rugăm să încercați din nou.
</div>
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<div class="mb-3">
<label for="id_username" class="form-label fw-bold">Nume utilizator</label>
<input type="text" name="username" class="form-control" id="id_username" required autofocus>
</div>
<div class="mb-4">
<label for="id_password" class="form-label fw-bold">Parolă</label>
<input type="password" name="password" class="form-control" id="id_password" required>
</div>
<div class="d-grid">
<button type="submit" class="btn btn-primary fw-bold">Conectare</button>
</div>
<!-- Redirect URL ascuns pentru Django -->
<input type="hidden" name="next" value="{{ next }}">
</form>
</div>
</div>
</div>
</div>
{% endblock %}