Fix Error: Solvento el problema del footer que no mostraba el contenido
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
from flask import Flask, render_template, jsonify
|
from flask import Flask, render_template, jsonify, Response
|
||||||
from conexion import get_connection
|
from conexion import get_connection
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
import os
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
monitor = os.getenv("MONITOR_ID")
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
@@ -12,7 +14,7 @@ def obtener_turnos():
|
|||||||
return []
|
return []
|
||||||
try:
|
try:
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
cursor.execute("SELECT CONS_ESTAD.CODIGO_IMPRESION CONSULTA, CONS_ESTAD.ESTADO_ID ESTADO_CONSULTA, TM.CODIGO_TURNO TURNO, TM.ESTADO_ID ESTADO_TURNO FROM CSMK_TURNO_MON TM, (SELECT ROW_NUMBER() OVER (PARTITION BY ESTADO.ESTANCIA_ID ORDER BY CONSULTA_ESTADO_ID DESC) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO, CSMK_ESTANCIA ESTANCIA WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID AND ESTANCIA.MONITOR_ID = 12 ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC) CONS_ESTAD WHERE CONS_ESTAD.RN = 1 AND TM.ESTANCIA_ID = CONS_ESTAD.ESTANCIA_ID AND TM.MONITOR_ID = CONS_ESTAD.MONITOR_ID AND TM.ESTADO_ID IN (1,2) AND TM.FECHA = TRUNC(SYSDATE) ORDER BY CONSULTA ASC")
|
cursor.execute("SELECT CONS_ESTAD.CODIGO_IMPRESION CONSULTA, CONS_ESTAD.ESTADO_ID ESTADO_CONSULTA, TM.CODIGO_TURNO TURNO, TM.ESTADO_ID ESTADO_TURNO FROM CSMK_TURNO_MON TM, (SELECT ROW_NUMBER() OVER (PARTITION BY ESTADO.ESTANCIA_ID ORDER BY CONSULTA_ESTADO_ID DESC) AS RN, ESTADO.ESTADO_ID, ESTANCIA.* FROM CSMK_CONSULTA_ESTADO ESTADO, CSMK_ESTANCIA ESTANCIA WHERE ESTADO.FECHA = TRUNC (SYSDATE) AND ESTADO.ESTANCIA_ID = ESTANCIA.ESTANCIA_ID AND ESTANCIA.MONITOR_ID = :monitor ORDER BY ESTADO.CONSULTA_ESTADO_ID DESC) CONS_ESTAD WHERE CONS_ESTAD.RN = 1 AND TM.ESTANCIA_ID = CONS_ESTAD.ESTANCIA_ID AND TM.MONITOR_ID = CONS_ESTAD.MONITOR_ID AND TM.ESTADO_ID IN (1,2) AND TM.FECHA = TRUNC(SYSDATE) ORDER BY CONSULTA ASC",{'monitor':monitor})
|
||||||
datos = cursor.fetchall()
|
datos = cursor.fetchall()
|
||||||
cursor.close()
|
cursor.close()
|
||||||
conn.close()
|
conn.close()
|
||||||
@@ -27,9 +29,9 @@ def obtener_pie():
|
|||||||
return []
|
return []
|
||||||
try:
|
try:
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
cursor.execute("SELECT MENSAJE FROM CSMK_MONITOR_PIE WHERE MONITOR_ID = 12 AND INACTIVO = 0 ORDER BY MONITOR_PIE_ID ASC")
|
cursor.execute("SELECT MENSAJE FROM CSMK_MONITOR_PIE WHERE MONITOR_ID = :monitor AND INACTIVO = 0 ORDER BY MONITOR_PIE_ID ASC",{'monitor':monitor})
|
||||||
mensajes = [fila[0] for fila in cursor.fetchall()]
|
mensajes = [fila[0] for fila in cursor.fetchall()]
|
||||||
mensaje_final = " ".join(mensajes)
|
mensaje_final = " ".join(mensajes)
|
||||||
cursor.close()
|
cursor.close()
|
||||||
conn.close()
|
conn.close()
|
||||||
return mensaje_final
|
return mensaje_final
|
||||||
@@ -49,7 +51,7 @@ def api_datos():
|
|||||||
@app.route('/api/footer')
|
@app.route('/api/footer')
|
||||||
def api_pie():
|
def api_pie():
|
||||||
mensaje = obtener_pie()
|
mensaje = obtener_pie()
|
||||||
return jsonify(mensaje)
|
return Response(mensaje, mimetype='text/plain')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(debug=True)
|
||||||
+2
-1
@@ -2,4 +2,5 @@ DB_USER=CSMKIOSCOS
|
|||||||
DB_PASSWORD=CSMKIOSCOS
|
DB_PASSWORD=CSMKIOSCOS
|
||||||
DB_HOST=192.168.1.76
|
DB_HOST=192.168.1.76
|
||||||
DB_PORT=1521
|
DB_PORT=1521
|
||||||
DB_SID=REALRAC1
|
DB_SID=REALRAC1
|
||||||
|
MONITOR_ID=12
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
@keyframes scroll {
|
@keyframes scroll {
|
||||||
0% {
|
0% {
|
||||||
transform: translateX(100%);
|
transform: translateX(0%);
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
transform: translateX(-100%);
|
transform: translateX(-50%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.animate-scroll {
|
.animate-scroll {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
animation: scroll 20s linear infinite;
|
animation: scroll 45s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+21
-12
@@ -1,6 +1,8 @@
|
|||||||
const sonido = new Audio("/static/media/0457.wav");
|
const sonido = new Audio("/static/media/0457.wav");
|
||||||
const estadoAnterior = {};
|
const estadoAnterior = {};
|
||||||
|
|
||||||
|
let ultimoFooter = "";
|
||||||
|
|
||||||
function cargarTabla() {
|
function cargarTabla() {
|
||||||
fetch("/api/datos")
|
fetch("/api/datos")
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
@@ -8,11 +10,11 @@ function cargarTabla() {
|
|||||||
const tbody = document.getElementById("turnos");
|
const tbody = document.getElementById("turnos");
|
||||||
tbody.innerHTML = "";
|
tbody.innerHTML = "";
|
||||||
|
|
||||||
let sizeClass ="";
|
let sizeClass = "";
|
||||||
if (filas.length <= 7){
|
if (filas.length <= 7) {
|
||||||
sizeClass ="text-7xl px-4 py-2";
|
sizeClass = "text-7xl px-4 py-2";
|
||||||
} else {
|
} else {
|
||||||
sizeClass ="text-5xl px-3 py-1"
|
sizeClass = "text-5xl px-3 py-1"
|
||||||
}
|
}
|
||||||
|
|
||||||
filas.forEach(fila => {
|
filas.forEach(fila => {
|
||||||
@@ -50,7 +52,7 @@ function cargarTabla() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
estadoAnterior[id] = estadoTurno;
|
estadoAnterior[id] = estadoTurno;
|
||||||
|
|
||||||
tr.appendChild(td2);
|
tr.appendChild(td2);
|
||||||
tbody.appendChild(tr);
|
tbody.appendChild(tr);
|
||||||
});
|
});
|
||||||
@@ -58,15 +60,22 @@ function cargarTabla() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cargarFooter() {
|
function cargarFooter() {
|
||||||
fetch("/api/footer")
|
fetch("/api/footer")
|
||||||
.then(res => res.text())
|
.then(res => res.text())
|
||||||
.then(data => {
|
.then(data => {
|
||||||
const footerText = document.getElementById("footer-text");
|
if (data !== ultimoFooter) {
|
||||||
footerText.textContent = data.mensaje;
|
const footerText = document.getElementById("footer-text");
|
||||||
});
|
const footerTextDuplicate = document.getElementById("footer-text-duplicate");
|
||||||
|
|
||||||
|
footerText.innerHTML = data;
|
||||||
|
footerTextDuplicate.innerHTML = data;
|
||||||
|
|
||||||
|
ultimoFooter = data;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
cargarFooter();
|
cargarFooter();
|
||||||
cargarTabla();
|
cargarTabla();
|
||||||
setInterval(cargarTabla, 30000);
|
setInterval(cargarTabla, 30000);
|
||||||
setInterval(cargarFooter, 60000);
|
setInterval(cargarFooter, 45000);
|
||||||
@@ -32,8 +32,13 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer class="w-full bg-[#008968] overflow-hidden h-14">
|
<footer class="w-full bg-[#008968] overflow-hidden h-14 flex items-center">
|
||||||
<div id="footer-text" class="text-4xl whitespace-nowrap animate-scroll px-4 text-white"></div>
|
<div class="scroll-wrapper whitespace-nowrap w-max animate-scroll">
|
||||||
|
<span id="footer-text" class="text-white text-3xl px-4"></span>
|
||||||
|
<span class="spacer w-14 inline-block"></span>
|
||||||
|
<span id="footer-text-duplicate" class="text-white text-3xl px-4"></span>
|
||||||
|
</div>
|
||||||
|
<div id="footer-text" class="whitespace-pre text-3xl animate-scroll whitespace-nowrap px-4 text-white"></div>
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user