Initial commit: Diario Conversazioni Olimpic Nastri
- Django 5.2 + PostgreSQL + Gunicorn - Conversazioni, Obiettivi, Documenti PDF, Persone - Commenti e aggiornamenti con modifica/eliminazione - Agenda, ricerca live, giorni rimanenti scadenze - Bootstrap 5 + HTMX + toast notifications - Deploy: Nginx + Gunicorn + SSL
This commit is contained in:
120
templates/diario/base.html
Normal file
120
templates/diario/base.html
Normal file
@@ -0,0 +1,120 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}Olimpic Nastri{% endblock %}</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet">
|
||||
<link href="{% static 'css/style.css' %}" rel="stylesheet">
|
||||
</head>
|
||||
<body hx-boost="true">
|
||||
|
||||
<nav class="navbar navbar-expand-lg mb-4">
|
||||
<div class="container-lg">
|
||||
<a class="navbar-brand" href="{% url 'dashboard' %}">
|
||||
<i class="bi bi-journal-richtext me-2" style="color:#7c8ff9;"></i>Olimpic <span>Nastri</span>
|
||||
</a>
|
||||
<button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navMenu">
|
||||
<ul class="navbar-nav me-auto gap-1">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'dashboard' %}">
|
||||
<i class="bi bi-house-door me-1"></i>Dashboard
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'conversazioni_lista' %}">
|
||||
<i class="bi bi-chat-quote me-1"></i>Conversazioni
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'obiettivi_lista' %}">
|
||||
<i class="bi bi-bullseye me-1"></i>Obiettivi
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'agenda' %}">
|
||||
<i class="bi bi-calendar-week me-1"></i>Agenda
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'documenti_lista' %}">
|
||||
<i class="bi bi-file-earmark-pdf me-1"></i>Documenti
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 py-1 rounded-pill" href="{% url 'persone_lista' %}">
|
||||
<i class="bi bi-people me-1"></i>Persone
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% if user.is_authenticated %}
|
||||
<ul class="navbar-nav align-items-center gap-2">
|
||||
<!-- Search bar -->
|
||||
<li class="nav-item">
|
||||
<div class="search-wrapper">
|
||||
<i class="bi bi-search search-icon"></i>
|
||||
<form action="{% url 'ricerca' %}" method="get" hx-boost="true">
|
||||
<input type="search" name="q" id="search-input"
|
||||
class="form-control form-control-sm"
|
||||
placeholder="Cerca..." autocomplete="off">
|
||||
</form>
|
||||
<div id="search-dropdown" class="search-results-dropdown"></div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{% url 'conversazione_nuova' %}" class="btn btn-sm btn-primary px-3">
|
||||
<i class="bi bi-plus-lg me-1"></i>Registra
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle d-flex align-items-center gap-2 px-2" href="#" data-bs-toggle="dropdown" data-bs-auto-close="true">
|
||||
<span class="avatar">{{ user.username|slice:":2"|upper }}</span>
|
||||
<span class="d-none d-sm-inline" style="color:rgba(255,255,255,.85);">{{ user.get_full_name|default:user.username }}</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end shadow border-0" style="border-radius:12px; min-width:180px;">
|
||||
{% if user.is_staff %}
|
||||
<li><a class="dropdown-item rounded-3" href="/admin/" hx-boost="false"><i class="bi bi-gear me-2 text-muted"></i>Pannello Admin</a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
{% endif %}
|
||||
<li>
|
||||
<form method="post" action="{% url 'logout' %}" hx-boost="false">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="dropdown-item rounded-3 text-danger">
|
||||
<i class="bi bi-box-arrow-right me-2"></i>Esci
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container-lg" id="main-content">
|
||||
{% if messages %}
|
||||
{% for message in messages %}
|
||||
<div data-toast-message="{{ message }}" data-toast-type="{% if message.tags == 'error' %}danger{% else %}{{ message.tags }}{% endif %}" class="d-none"></div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
|
||||
<!-- Toast container -->
|
||||
<div id="toast-container" class="toast-container"></div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
|
||||
<script src="{% static 'js/app.js' %}"></script>
|
||||
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user