+124 −37
Original line number Diff line number Diff line
@@ -145,57 +145,144 @@ table th:nth-child(4) {
    background-color: #7a2432;
}

/* Footer */
footer {
    background-color: #541722;
    color: white;
    padding: 30px 40px 10px 40px;
    font-size: 14px;
/* Boton subida */
.upload-icon {
    cursor: pointer;
    border: 1px solid #ccc;
    width: 40px;          /* ancho del círculo */
    height: 40px;         /* alto del círculo */
    border-radius: 50%;   /* esto lo hace redondo */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s, color 0.3s;
    background-color: #f0f0f0; /* color inicial */
}
.upload-icon img {
    width: 20px;  /* ajusta tamaño del ícono dentro del círculo */
    height: 20px;
}

.footer-contenido {
/*Pieda de pagina */

footer {
            background-color: #ffffffff;
            color: #ffffff;
            padding: 15px 10px 5px; /* mucho más compacto */
            margin-top: 20px;
            font-size: 12px;
        }
        .footer-container {
            max-width: 950px;
            margin: auto;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
            gap: 15px;
        }

/* Equipo */
.footer-equipo h3,
.footer-info h3 {
    font-size: 16px;
    margin-bottom: 10px;
    font-weight: bold;
    border-bottom: 2px solid #7a2432;
    display: inline-block;
    padding-bottom: 5px;
        .footer-col {
            flex: 1 1 220px;
            text-align: center;
        }

.footer-equipo ul {
        .footer-col h3 {
            color: #090909ff;
            margin-bottom: 5px;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }
        .footer-col p, .footer-col li, .footer-col a {
            font-size: 12px;
            color: #111010ff;
            text-decoration: none;
            line-height: 1.4;
            margin: 2px 0;
        }
        .footer-col ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .footer-logo img {
            max-width: 160px; /* logo más pequeño aún */
            margin-bottom: 6px;
        }
        .social-icons {
            margin-top: 5px;
        }
        .social-icons a {
            margin: 0 5px;
            font-size: 14px;
            color: #1a1717ff;
            transition: opacity 0.3s;
        }
        .social-icons a:hover {
            opacity: 0.7;
        }
        .bottom-bar {
            margin-top: 8px;
            padding: 5px;
            text-align: center;
            font-size: 11px;
            background-color: #ffffffff;
        }
/* Contenedor de barra de progreso */
.barra-contenedor-dashboard {
    width: 60%;               /* ancho de la barra */
    margin: 20px auto;        /* centrado horizontal */
    text-align: center;       /* texto centrado */
}

.footer-equipo li {
    margin: 6px 0;
/* Texto del porcentaje */
.texto-porcentaje-dashboard {
    margin-bottom: 10px;
    font-weight: bold;
    font-size: 14px;
    color: #333;
}

/* Info */
.footer-info p {
    margin: 5px 0;
    font-size: 13px;
/* Barra de fondo */
.barra-progreso-dashboard {
    width: 100%;
    height: 20px;
    background-color: #ddd;
    border-radius: 10px;
    overflow: hidden;
    margin: 0 auto;
}

/* Línea inferior */
.footer-bottom {
    text-align: center;
    margin-top: 20px;
    border-top: 1px solid #7a2432;
    padding-top: 10px;
/* Barra de relleno */
.barra-relleno-dashboard {
    height: 100%;
    width: 0%;
    border-radius: 10px; /* bordes redondeados */
    transition: width 0.4s ease;
}

/* Colores según porcentaje */
.barra-relleno-dashboard.rojo {
    background-color: #e74c3c;
}

.barra-relleno-dashboard.amarillo {
    background-color: #f1c40f;
}

.barra-relleno-dashboard.verde {
    background-color: #4CAF50;
}

/**/
.subida-contenedor {
    display: flex;
    flex-direction: column;  /* apila icono y texto */
    align-items: center;     /* centra horizontalmente */
    justify-content: center; /* centra verticalmente */
    gap: 4px;                /* espacio entre icono y texto */
}

.texto-rechazado {
    color: red;
    font-size: 12px;
    color: #ddd;
    margin: 0;              /* quita márgenes extra */
}
+12 −5
Original line number Diff line number Diff line
@@ -33,9 +33,16 @@

        {% if entidad_seleccionada %}
            <div class="barra-contenedor">
            <p>Documentos validados: {{ porcentaje_validados }}%</p>
                <p class="texto-porcentaje">Documentos validados: {{ porcentaje_validados }}%</p>
                <div class="barra-progreso">
                <div class="barra-relleno" style="width:{{porcentaje_validados}}%"></div>
                    <div class="barra-relleno
                        {% if porcentaje_validados < 33 %}
                            rojo
                        {% elif porcentaje_validados < 66 %}
                            amarillo
                        {% else %}
                            verde
                        {% endif %}" style="width:{{ porcentaje_validados }}%"></div>
                </div>
            </div>
        {% endif %}
+1 −63
Original line number Diff line number Diff line
@@ -8,69 +8,7 @@
    <link rel="icon" href="{% static 'core/img/zaclogo-removebg-preview.png' %}" type="image/png">
    <script src="https://kit.fontawesome.com/1165876da6.js" crossorigin="anonymous"></script>
    {% block extra_css %}{% endblock %}
    <style>
        footer {
            background-color: #ffffffff;
            color: #ffffff;
            padding: 15px 10px 5px; /* mucho más compacto */
            margin-top: 20px;
            font-size: 12px;
        }
        .footer-container {
            max-width: 950px;
            margin: auto;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 15px;
        }
        .footer-col {
            flex: 1 1 220px;
            text-align: center;
        }
        .footer-col h3 {
            color: #090909ff;
            margin-bottom: 5px;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }
        .footer-col p, .footer-col li, .footer-col a {
            font-size: 12px;
            color: #111010ff;
            text-decoration: none;
            line-height: 1.4;
            margin: 2px 0;
        }
        .footer-col ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .footer-logo img {
            max-width: 160px; /* logo más pequeño aún */
            margin-bottom: 6px;
        }
        .social-icons {
            margin-top: 5px;
        }
        .social-icons a {
            margin: 0 5px;
            font-size: 14px;
            color: #1a1717ff;
            transition: opacity 0.3s;
        }
        .social-icons a:hover {
            opacity: 0.7;
        }
        .bottom-bar {
            margin-top: 8px;
            padding: 5px;
            text-align: center;
            font-size: 11px;
            background-color: #ffffffff;
        }
    </style>

</head>
<body>
    
+36 −34
Original line number Diff line number Diff line
@@ -73,10 +73,12 @@
</head>
<body>
    <footer>
       
        <div class="footer-container">
      <!-- Columna 1: Logo y dirección -->
            <!-- Columna 1: Logo + Dirección -->
            <div class="footer-col footer-logo">
        <img src="{% static 'img/logo_labsol.png' %}" alt="Logo Labsol">
                <img src="{% static 'core/img/logo_labsol.png' %}" alt="Logo Zacatecas">
                <img src="{% static 'core/img/GPLv3_Logo.svg.png' %}" alt="Logo Zacatecas">
                <p>Circuito Cerro del Gato s/n<br>Ciudad Administrativa</p>
                <p>CP 98160, Zacatecas, Zac.</p>
            </div>
@@ -85,9 +87,9 @@
            <div class="footer-col">
                <h3>Equipo</h3>
                <ul>
          <li><a href="#">Alejandro Chávez Murillo</a></li>
          <li><a href="#">Jesús Alberto Rodríguez Valencia</a></li>
          <li><a href="#">Karla Guadalupe Rocha Quezada</a></li>
                    <li>Alejandro Chávez Murillo</li>
                    <li>Jesús Alberto Rodríguez Valencia</li>
                    <li>Karla Guadalupe Rocha Quezada</li>
                </ul>
            </div>

@@ -107,7 +109,7 @@

        <!-- Barra inferior -->
        <div class="bottom-bar">
      <p>&copy; 2025 Gobierno del Estado de Zacatecas · Todos los derechos reservados</p>
            <p>&copy; 2025 Gobierno del Estado de Zacatecas - Todos los derechos reservados</p>
        </div>
    </footer>
</body>
+11 −58
Original line number Diff line number Diff line
@@ -7,62 +7,7 @@
    <link rel="stylesheet" href="{% static 'core/css/login.css' %}">
    <link rel="icon" href="{% static 'core/img/zaclogo-removebg-preview.png' %}" type="image/png">
    <script src="https://kit.fontawesome.com/1165876da6.js" crossorigin="anonymous"></script>
    <style>
        footer {
            background-color: #621d28;
            color: #ffffff;
            padding: 15px 10px 5px;
            margin-top: 30px;
            font-size: 12px;
        }
        .footer-container {
            max-width: 1000px;
            margin: auto;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 10px;
        }
        .footer-col {
            flex: 1 1 200px;
            text-align: center;
        }
        .footer-col h3 {
            color: #f1f1f1;
            margin-bottom: 6px;
            font-size: 13px;
            text-transform: uppercase;
        }
        .footer-col p, .footer-col li {
            font-size: 12px;
            margin: 2px 0;
            line-height: 1.4;
        }
        .footer-col ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .footer-logo img {
            max-width: 160px;
            margin-bottom: 8px;
        }
        .social-icons {
            margin-top: 5px;
        }
        .social-icons a {
            margin: 0 4px;
            font-size: 14px;
            color: #ffffff;
        }
        .bottom-bar {
            margin-top: 8px;
            padding: 6px;
            text-align: center;
            font-size: 11px;
            background-color: #621d28;
        }
    </style>

</head>
<body>

@@ -112,13 +57,17 @@

    <!-- Footer institucional compacto -->
    <footer>
       
        <div class="footer-container">
            <!-- Columna 1: Logo + Dirección -->
            <div class="footer-col footer-logo">
                <img src="{% static 'core/img/logo_labsol.png' %}" alt="Logo Zacatecas">
                <p>Circuito Cerro del Gato s/n</p>
                <p>Ciudad Administrativa</p>
                <img src="{% static 'core/img/GPLv3_Logo.svg.png' %}" alt="Logo Zacatecas">
                <p>Circuito Cerro del Gato s/n<br>Ciudad Administrativa</p>
                <p>CP 98160, Zacatecas, Zac.</p>
            </div>

            <!-- Columna 2: Equipo -->
            <div class="footer-col">
                <h3>Equipo</h3>
                <ul>
@@ -127,6 +76,8 @@
                    <li>Karla Guadalupe Rocha Quezada</li>
                </ul>
            </div>

            <!-- Columna 3: Contacto -->
            <div class="footer-col">
                <h3>Contacto</h3>
                <p><i class="fa-solid fa-phone"></i> 492 491 5000</p>
@@ -139,6 +90,8 @@
                </div>
            </div>
        </div>

        <!-- Barra inferior -->
        <div class="bottom-bar">
            <p>&copy; 2025 Gobierno del Estado de Zacatecas - Todos los derechos reservados</p>
        </div>
+49 −80
Original line number Diff line number Diff line
@@ -7,68 +7,6 @@
    <link rel="stylesheet" href="{% static 'core/css/usuario_dashboard.css' %}">
    <link rel="icon" href="{% static 'core/img/zaclogo-removebg-preview.png' %}" type="image/png">
    <script src="https://kit.fontawesome.com/1165876da6.js" crossorigin="anonymous"></script>
    <style>
        footer {
            background-color: #621d28;
            color: #ffffff;
            padding: 15px 10px 5px;
            margin-top: 20px;
            font-size: 12px;
        }
        .footer-container {
            max-width: 950px;
            margin: auto;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 15px;
        }
        .footer-col {
            flex: 1 1 220px;
            text-align: center;
        }
        .footer-col h3 {
            color: #f1f1f1;
            margin-bottom: 5px;
            font-size: 13px;
            text-transform: uppercase;
        }
        .footer-col p, .footer-col li, .footer-col a {
            font-size: 12px;
            color: #f1f1f1;
            text-decoration: none;
            line-height: 1.4;
            margin: 2px 0;
        }
        .footer-col ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        .footer-logo img {
            max-width: 160px;
            margin-bottom: 6px;
        }
        .social-icons {
            margin-top: 5px;
        }
        .social-icons a {
            margin: 0 5px;
            font-size: 14px;
            color: #ffffff;
            transition: opacity 0.3s;
        }
        .social-icons a:hover {
            opacity: 0.7;
        }
        .bottom-bar {
            margin-top: 8px;
            padding: 5px;
            text-align: center;
            font-size: 11px;
            background-color: #621d28;
        }
    </style>
</head>
<body>

@@ -80,7 +18,7 @@
        </div>

        <div class="barra-derecha">
            <a href="{% url 'cambiar_contrasena' %}" class="boton-salir">PERFIL</a>
            <a href="{% url 'cambiar_contrasena' %}" class="boton-salir">CAMBIAR CONTRASEÑA</a>
            <a href="{% url 'logout' %}" class="boton-salir">SALIR</a>
        </div>
    </div>
@@ -94,21 +32,21 @@
    <main class="contenido">
        <h2>SUBIR DOCUMENTOS</h2>

        <div class="barra-contenedor">
            <p>Documentos validados: {{ porcentaje_validados }}%</p>
            <div class="barra-progreso">
                <div class="barra-relleno 
            <div class="barra-contenedor-dashboard">
                <p class="texto-porcentaje-dashboard">Documentos validados: {{ porcentaje_validados }}%</p>
                <div class="barra-progreso-dashboard">
                    <div class="barra-relleno-dashboard
                        {% if porcentaje_validados < 33 %}
                            rojo
                        {% elif porcentaje_validados < 66 %}
                            amarillo
                        {% else %}
                            verde
                    {% endif %}" style="width:{{ porcentaje_validados }}%">
                </div>
                        {% endif %}" style="width:{{ porcentaje_validados }}%"></div>
                </div>
            </div>


        <!-- Formulario para subir documentos -->
        <form method="post" enctype="multipart/form-data">
            {% csrf_token %}
@@ -139,18 +77,25 @@
                        </td>
                        <td>{{ doc.observaciones|default:"—" }}</td>
                        <td>{{ doc.get_estado_display }}</td>
                        
                        <td colspan="2">
                            {% if not doc.archivo %}
                            {% if not doc.archivo or doc.estado == 'rechazado' %}
                                <div class="subida-contenedor">
                                    <label for="archivo_{{ doc.id }}" class="upload-icon">
                                        <img src="{% static 'core/img/arrow_upload.png' %}" alt="Subir archivo" width="24" height="24" />
                                    </label>
                                    <input type="file" id="archivo_{{ doc.id }}" name="documento_{{ doc.id }}" accept=".pdf" class="input-oculto">
                                    {% if doc.archivo and doc.estado == 'rechazado' %}
                                        <p class="texto-rechazado">Archivo rechazado. Vuelva a subir.</p>
                                    {% endif %}
                                </div>
                            {% else %}
                                <a href="{{ doc.archivo.url }}" target="_blank">
                                    <img src="{% static 'core/img/visibility.png' %}" alt="Ver archivo" width="24" height="24" />
                                </a>
                            {% endif %}
                        </td>

                    </tr>
                    {% empty %}
                    <tr>
@@ -168,10 +113,12 @@

    <!-- Footer institucional compacto -->
    <footer>
       
        <div class="footer-container">
            <!-- Columna 1: Logo + Dirección -->
            <div class="footer-col footer-logo">
                <img src="{% static 'core/img/logo_labsol.png' %}" alt="Logo Zacatecas">
                <img src="{% static 'core/img/GPLv3_Logo.svg.png' %}" alt="Logo Zacatecas">
                <p>Circuito Cerro del Gato s/n<br>Ciudad Administrativa</p>
                <p>CP 98160, Zacatecas, Zac.</p>
            </div>
@@ -206,5 +153,27 @@
        </div>
    </footer>


<script>
document.addEventListener('DOMContentLoaded', () => {
    const fileInputs = document.querySelectorAll('.input-oculto');

    fileInputs.forEach(input => {
        input.addEventListener('change', () => {
            const label = document.querySelector(`label[for="${input.id}"]`);

            if (input.files.length > 0) {
                // Cambia color del círculo si hay archivo seleccionado
                label.style.backgroundColor = '#4CAF50'; // verde
            } else {
                // Vuelve al color original si no hay archivo
                label.style.backgroundColor = '#f0f0f0';
            }
        });
    });
});
</script>


</body>
</html>
+0 −1
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ def cerrar_sesion(request):
    return redirect('login')  # nombre de la URL del login



@user_passes_test(es_admin)
def admin_revision_documentacion(request):
    entidades = Usuario.objects.filter(rol='usuario')
(232 KiB)

File changed.

No diff preview for this file type.

−46 B (2.91 KiB)

File changed.

No diff preview for this file type.

+7 −8
Original line number Diff line number Diff line
@@ -60,18 +60,17 @@ WSGI_APPLICATION = 'semujeres_sistema.wsgi.application'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'semujer_db',          # Nombre de tu base de datos en MariaDB
        'USER': 'semujer_user',        # Usuario que creaste
        'PASSWORD': 'Semujer123!',     # Contraseña del usuario
        'HOST': 'localhost',           # Si MariaDB está en el mismo servidor
        'PORT': '3306',                # Puerto por defecto de MySQL/MariaDB
        'OPTIONS': {
            'charset': 'utf8mb4',      # Soporte de acentos y emojis
        }
        'NAME': 'semujer_db',
        'USER': 'semujer_user',
        'PASSWORD': '12345',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}




# Contraseñas
AUTH_PASSWORD_VALIDATORS = [
    {'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},

usuarios.json

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.