diff --git a/action/action_auditoria_detalle.php b/action/action_auditoria_detalle.php
index 52336af..824237b 100644
--- a/action/action_auditoria_detalle.php
+++ b/action/action_auditoria_detalle.php
@@ -21,11 +21,12 @@ try {
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$data = $db
+ ->where('registro_fecha_ideal', $_GET['registro_fecha_ideal'])
->where('horario_id', $_GET['horario_id'])
->where('profesor_id', $_GET['profesor_id'])
->getOne('auditoria_mat');
// Print the JSON file
- echo json_encode($data);
+ echo json_encode(array_merge($data, ['query' => $db->getLastQuery(), 'get' => $_GET]));
} else {
http_response_code(405);
echo json_encode(['error' => 'method not allowed']);
diff --git a/auditoria.php b/auditoria.php
index cadf07c..937710e 100644
--- a/auditoria.php
+++ b/auditoria.php
@@ -13,6 +13,7 @@
display: none;
}
+
@@ -266,19 +267,20 @@
{{ registro.profesor_clave }}
{{ registro.profesor_nombre }}
+ @click="store.current.clase_vista = registro; detalle.obtener_detalle(registro.horario_id, registro.profesor_id, registro.registro_fecha_ideal)"
+ data-toggle="modal" data-target="#ver-detalle">
detalle
-
{{ registro.horario_hora?.slice(0,5) }} -
- {{registro.horario_fin?.slice(0,5) }}
+
+ {{ `${registro.horario_hora?.slice(0,5)} - ${registro.horario_fin?.slice(0,5)}` }}
+
- Registro {{ registro.registro_fecha?.slice(11,19) }}
+ Registro {{ `${registro.registro_fecha?.slice(11,19)}` }}
@@ -298,21 +300,22 @@
- {{ registro.usuario_nombre
- }}
+
+ {{ registro.usuario_nombre }}
+
Hora
- {{ registro.registro_fecha_supervisor?.slice(11,19) }}
+ {{ `${registro.registro_fecha_supervisor?.slice(11,19)}` }}
Observaciones:
- {{registro.comentario?.slice(0,25)}}{{registro.comentario.length
- > 10 ? '...' : ''}}
+ {{`${registro.comentario?.slice(0,25)}
+ ${registro.comentario.length
+ > 10 ? '...' : ''}`}}
@@ -388,165 +391,75 @@
-
-
-
-
-
- Profesor
-
-
- Nombre:
- {{ clase_vista.profesor_nombre }}
-
-
-
- Clave:
- {{ clase_vista.profesor_clave }}
-
-
- Facultad:
- {{ detalle.facultad }}
-
-
-
-
- Clase
-
-
- Materia:
- {{ detalle.materia }}
-
-
- Carrera:
- {{ detalle.carrera }}
-
-
- Nivel:
- {{ detalle.nivel}}
-
-
- Grupo:
- {{ detalle.horario_grupo }}
-
-
- Horario:
- {{ clase_vista.horario_hora?.slice(0, 5) }} -
- {{clase_vista.horario_fin?.slice(0, 5) }}
-
-
- Salón:
- {{ clase_vista.salon }}
-
-
-
+
+
+
+
+
+ {{clase_vista.profesor_nombre}}
+
+
-
-
- Registro
-
-
-
- Sin registro del profesor
-
-
- El profesor registró su asistencia a las
-
{{clase_vista.registro_fecha?.slice(11, 19)}}
-
-
-
- A tiempo
-
-
-
- Con retardo
-
-
-
-
-
-
-
- Justificada
-
-
- por
- {{clase_vista.justificador_nombre}} de
- {{clase_vista.justificador_rol}}
- de
- {{clase_vista.justificador_facultad}}
-
+
- el día {{clase_vista.registro_fecha_justificacion?.slice(0, 10)}} a
- las
- {{clase_vista.registro_fecha_justificacion?.slice(11, 16)}}
-
-
-
-
- Observación:
- {{clase_vista.justificacion}}
-
-
-
-
-
-
-
-
-
- Sin justificar,
- {{clase_vista.justificador_nombre}}
- ({{clase_vista.justificador_rol}}{{clase_vista.justificador_facultad
- ? ' de ' + clase_vista.justificador_facultad : ''}})
- borró la justificación, el día
- {{clase_vista.registro_fecha_justificacion?.slice(0, 10)}} a las
- {{clase_vista.registro_fecha_justificacion?.slice(11, 16)}}
-
-
-
-
-
-
-
- Sin justificar
-
-
-
-
-
-
- Reposición
-
-
-
- Esta clase se reprogramó para el día
- {{ clase_vista.reposicion_fecha }} a las
- {{ clase_vista.reposicion_hora?.slice(0, 5) }} -
- {{clase_vista.reposicion_hora_fin?.slice(0, 5) }}
-
-
-
+
+
+
+ {{clase_vista.nombre}}
+
+
+
+ {{clase_vista.usuario_nombre}}
+ {{clase_vista.registro_fecha_supervisor}}
+
+
-
-
-
diff --git a/css/auditoria-ux.css b/css/auditoria-ux.css
new file mode 100644
index 0000000..360d726
--- /dev/null
+++ b/css/auditoria-ux.css
@@ -0,0 +1,139 @@
+@font-face {
+ font-family: 'La Salle Display Regular';
+ src: url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Regular.woff');
+ font-weight: normal;
+}
+
+@font-face {
+ font-family: 'La Salle Display Heavy';
+ src: url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Heavy.woff');
+ font-weight: normal;
+}
+
+.detalle {
+ padding: 2rem;
+ padding-inline: 8rem;
+}
+
+.profesor {
+ display: flex;
+ gap: 2rem;
+ align-items: center;
+}
+
+.profesor-icon {
+ height: 6rem;
+ fill: #001d68;
+}
+
+.profesor-nombre {
+ font-size: 2rem;
+ font-weight: 900;
+ font-family: 'La Salle Display Regular';
+ color: black;
+}
+
+.profesor-clave {
+ font-weight: 900;
+ font-size: 1.2rem;
+ font-family: 'La Salle Display Regular';
+}
+
+.profesor-datos {
+ display: flex;
+ align-items: center;
+
+ gap: .75rem;
+ color: #969696;
+}
+
+.profesor-datos .profesor-correo {
+ font-style: italic;
+ text-decoration: underline;
+ color: #969696;
+}
+
+.profesor-datos .profesor-correo:hover {
+ color: #3f3f3f;
+ transition-timing-function: ease-in;
+ transition-duration: .2s;
+}
+
+.pipe::after {
+ content: '';
+ width: .1rem;
+ height: 1.4rem;
+
+ display: block;
+
+ background-color: #969696;
+}
+
+.detalle main {
+ display: grid;
+ gap: 2rem;
+ grid-template-columns: repeat(2, 1fr);
+}
+
+.pp-card {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.pp-card-icon {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.pp-card div {
+ border-start-start-radius: 1rem;
+ border-start-end-radius: 1rem;
+ padding-inline: 1.5rem;
+ padding-block: .5rem;
+ font-family: 'La Salle Display Heavy';
+ font-size: 1.2rem;
+}
+
+.pp-card main {
+ background-color: #e1e1e1;
+ height: 100%;
+
+ border-end-start-radius: 1rem;
+ border-end-end-radius: 1rem;
+ position: relative;
+}
+
+.pp-card footer {
+ font-style: italic;
+ color: #969696;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ margin: 1rem;
+}
+
+.pp-card:not(:has(main)) {
+ div {
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ height: 100%;
+
+ border-end-start-radius: 1rem;
+ border-end-end-radius: 1rem;
+ font-size: 1.5rem;
+ }
+}
+
+.facultad {
+ font-family: 'La Salle Display Heavy';
+ font-size: 1.4rem;
+ color: #e1e1e1;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ margin: 1rem;
+}
\ No newline at end of file
diff --git a/export/supervisor_excel.php b/export/supervisor_excel.php
index 359d27c..ebaee8f 100644
--- a/export/supervisor_excel.php
+++ b/export/supervisor_excel.php
@@ -48,16 +48,16 @@ $data = $db->query(
(auditoria->>'estado_supervisor_id')::integer as estado_id,
auditoria->>'registro_retardo' as registro_retardo
FROM last_auditoria
- JOIN BLOQUE_HORARIO ON ((auditoria->>'horario_hora')::TIME, (auditoria->>'horario_fin')::TIME) OVERLAPS (HORA_INICIO, HORA_FIN)
+ -- JOIN BLOQUE_HORARIO ON ((auditoria->>'horario_hora')::TIME, (auditoria->>'horario_fin')::TIME) OVERLAPS (HORA_INICIO, HORA_FIN)
WHERE USUARIO_ID = :usuario_id
AND auditoria->>'facultad_id' = COALESCE(:facultad_id, auditoria->>'facultad_id')
AND auditoria->>'profesor_clave' = COALESCE(:profesor_clave, auditoria->>'profesor_clave')
- AND BLOQUE_HORARIO.ID = COALESCE(:bloque_horario_id, BLOQUE_HORARIO.ID)",
+ --AND BLOQUE_HORARIO.ID = COALESCE(:bloque_horario_id, BLOQUE_HORARIO.ID)",
[
'usuario_id' => $user->user['id'],
'facultad_id' => $params['facultad_id'],
'profesor_clave' => $profesor_clave,
- 'bloque_horario_id' => $params['bloque_horario']
+ /* 'bloque_horario_id' => $params['bloque_horario'] */
]
);
diff --git a/fonts/svg/portrait.svg b/fonts/svg/portrait.svg
new file mode 100644
index 0000000..8432242
--- /dev/null
+++ b/fonts/svg/portrait.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/js/auditoría.js b/js/auditoría.js
index ef0833d..683dc0d 100644
--- a/js/auditoría.js
+++ b/js/auditoría.js
@@ -337,12 +337,12 @@ const detalle = reactive({
this.horario_grupo = null
},
- async obtener_detalle(horario_id, profesor_id) {
+ async obtener_detalle(horario_id, profesor_id, registro_fecha_ideal) {
detalle.reset();
$('div.modal#cargando').modal('show');
try {
- const resultado = await (await fetch(`action/action_auditoria_detalle.php?${new URLSearchParams({ horario_id, profesor_id })}`)).json();
+ const resultado = await (await fetch(`action/action_auditoria_detalle.php?${new URLSearchParams({ horario_id, profesor_id, registro_fecha_ideal })}`)).json();
this.correo = resultado.profesor_correo;
this.facultad = resultado.facultad;
@@ -350,6 +350,9 @@ const detalle = reactive({
this.carrera = resultado.carrera;
this.nivel = resultado.nivel;
this.horario_grupo = resultado.horario_grupo;
+
+ this.registro_fecha =
+ store.current.clase_vista = resultado
}
catch (error) {
console.log('Error:', error)