mirror of
https://github.com/adrigongv23/G26---Telemetry-Software.git
synced 2026-08-25 11:33:17 +02:00
Creación de index.html y primera creación de la pagina principal
This commit is contained in:
parent
fd1c6250a4
commit
8d3205bf8f
9 changed files with 129 additions and 19 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -60,10 +60,11 @@ ROOT_URLCONF = 'gades_manager.urls'
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
{
|
{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'DIRS': [],
|
'DIRS': [BASE_DIR / 'templates'],
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
'context_processors': [
|
'context_processors': [
|
||||||
|
'django.template.context_processors.debug',
|
||||||
'django.template.context_processors.request',
|
'django.template.context_processors.request',
|
||||||
'django.contrib.auth.context_processors.auth',
|
'django.contrib.auth.context_processors.auth',
|
||||||
'django.contrib.messages.context_processors.messages',
|
'django.contrib.messages.context_processors.messages',
|
||||||
|
|
|
||||||
|
|
@ -16,20 +16,14 @@ Including another URLconf
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path, include
|
||||||
from django.conf import settings
|
from gestion import views # Importamos las vistas de la app donde guardaste la función
|
||||||
from django.conf.urls.static import static
|
|
||||||
|
|
||||||
# 1. IMPORTA TU VISTA NUEVA
|
|
||||||
from gestion import views as gestion_views
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
|
|
||||||
# 2. AÑADE ESTA RUTA (La cadena vacía '' significa "la página principal")
|
# Ruta raíz: cuando entres a la web, cargará directamente nuestro Dashboard
|
||||||
path('', gestion_views.home, name='home'),
|
path('', views.inicio, name='inicio'),
|
||||||
]
|
|
||||||
|
# Tus otras rutas de aplicaciones...
|
||||||
# Configuración de archivos (esto déjalo como estaba)
|
]
|
||||||
if settings.DEBUG:
|
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
|
||||||
Binary file not shown.
|
|
@ -1,6 +1,14 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http import HttpResponse
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from temporadas.models import Temporada
|
||||||
|
|
||||||
def home(request):
|
@login_required
|
||||||
# Esta función es la que decide qué mostrar cuando alguien entra a la web
|
def inicio(request):
|
||||||
return HttpResponse("<h1>¡Bienvenido a la Plataforma de Gades! 🏎️💨</h1><p>Sistema de Telemetría y Gestión v1.0</p>")
|
# Buscamos la temporada que configuraste como actual
|
||||||
|
temporada_activa = Temporada.objects.filter(actual=True).first()
|
||||||
|
|
||||||
|
context = {
|
||||||
|
'temporada_actual': temporada_activa
|
||||||
|
}
|
||||||
|
# Renderiza index.html, el cual hereda automáticamente de base.html
|
||||||
|
return render(request, 'index.html', context)
|
||||||
BIN
Plataform_Web/static/images/logo_gades.png
Normal file
BIN
Plataform_Web/static/images/logo_gades.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 79 KiB |
94
Plataform_Web/templates/index.html
Normal file
94
Plataform_Web/templates/index.html
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block title %}Inicio | Gades Manager{% endblock title %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row mb-4">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="bg-dark text-white p-4 rounded-3 shadow-sm d-flex justify-content-between align-items-center flex-wrap" style="border-left: 5px solid #0d6efd;">
|
||||||
|
<div>
|
||||||
|
<h1 class="display-6 fw-bold mb-1">Bienvenido, {{ user.first_name }} {{ user.last_name }}</h1>
|
||||||
|
<p class="text-muted mb-0"> Panel de control de la plataforma de gestión interna.</p>
|
||||||
|
</div>
|
||||||
|
<div class="text-end mt-2 mt-md-0">
|
||||||
|
<span class="badge bg-primary fs-6 px-3 py-2 shadow-sm">
|
||||||
|
Temporada Activa: {% if temporada_actual %}{{ temporada_actual.nombre }}{% else %}Ninguna activa{% endif %}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-4">
|
||||||
|
|
||||||
|
{% if user.rol != 'directiva' %}
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 border-0 shadow-sm">
|
||||||
|
<div class="card-body d-flex flex-column p-4">
|
||||||
|
<h4 class="card-title fw-bold mb-3 text-dark">Mi Área Técnica</h4>
|
||||||
|
<p class="card-text text-secondary flex-grow-1">
|
||||||
|
Acceso directo al espacio de trabajo de tu departamento asignado. Permite consultar la documentación técnica interna, subir archivos y tramitar el buzón de compras.
|
||||||
|
</p>
|
||||||
|
<a href="#" class="btn btn-outline-primary w-100 mt-3 fw-bold">Acceder a mi Área</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 border-0 shadow-sm">
|
||||||
|
<div class="card-body d-flex flex-column p-4">
|
||||||
|
<h4 class="card-title fw-bold mb-3 text-dark">Pruebas y Telemetría</h4>
|
||||||
|
<p class="card-text text-secondary flex-grow-1">
|
||||||
|
Módulo destinado a la carga de registros de datos en formato CSV y al procesamiento de la telemetría del monoplaza para su posterior visualización gráfica.
|
||||||
|
</p>
|
||||||
|
<a href="#" class="btn btn-outline-primary w-100 mt-3 fw-bold">Ver Telemetría</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 border-0 shadow-sm">
|
||||||
|
<div class="card-body d-flex flex-column p-4">
|
||||||
|
<h4 class="card-title fw-bold mb-3 text-dark">Miembros del Equipo</h4>
|
||||||
|
<p class="card-text text-secondary flex-grow-1">
|
||||||
|
Directorio completo del personal. Permite buscar integrantes del equipo, consultar correos de contacto corporativos y verificar la distribución por departamentos.
|
||||||
|
</p>
|
||||||
|
<a href="#" class="btn btn-outline-primary w-100 mt-3 fw-bold">Ver Directorio</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if user.rol == 'directiva' %}
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 border-0 shadow-sm" style="border-top: 4px solid #ffc107;">
|
||||||
|
<div class="card-body d-flex flex-column p-4">
|
||||||
|
<h4 class="card-title fw-bold mb-3 text-dark">Contabilidad Global</h4>
|
||||||
|
<p class="card-text text-secondary flex-grow-1">
|
||||||
|
Panel financiero de supervisión económica. Permite auditar el presupuesto global de la temporada, autorizar facturas técnicas y registrar los flujos de caja.
|
||||||
|
</p>
|
||||||
|
<a href="#" class="btn btn-warning w-100 mt-3 fw-bold text-dark">Gestionar Finanzas</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 col-md-6 col-lg-4">
|
||||||
|
<div class="card h-100 border-0 shadow-sm" style="border-top: 4px solid #ffc107;">
|
||||||
|
<div class="card-body d-flex flex-column p-4">
|
||||||
|
<h4 class="card-title fw-bold mb-3 text-dark">Administración del Sistema</h4>
|
||||||
|
<p class="card-text text-secondary flex-grow-1">
|
||||||
|
Módulo avanzado de configuración global. Habilita la edición de usuarios del sistema, la asignación de roles de seguridad y la creación de nuevas temporadas.
|
||||||
|
</p>
|
||||||
|
<a href="#" class="btn btn-warning w-100 mt-3 fw-bold text-dark">Panel de Control</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
|
|
@ -1,3 +1,16 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from temporadas.models import Temporada # Importamos tu modelo Temporada
|
||||||
|
|
||||||
# Create your views here.
|
@login_required
|
||||||
|
def dashboard(request):
|
||||||
|
# Buscamos en la base de datos la temporada que tenga actual=True.
|
||||||
|
# Usamos .first() por seguridad para evitar errores si no hubiera ninguna creada todavía.
|
||||||
|
temporada_activa = Temporada.objects.filter(actual=True).first()
|
||||||
|
|
||||||
|
# Metemos los datos en el diccionario de contexto para mandarlos al HTML
|
||||||
|
context = {
|
||||||
|
'temporada_actual': temporada_activa
|
||||||
|
}
|
||||||
|
|
||||||
|
return render(request, 'index.html', context)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue