Commit 8816840f by Tu Nombre

Actualizo a base nueva

1 parent 5308a5ee
......@@ -4,3 +4,5 @@ grepfile = "/home/taller_1/Pruebas-RTO/grep.sh"
deltaminutos = 7
delataPositivoNegativo = "-"
ManualLogin = False # PAra hacer pruebas sin tener que loguear
port = 12000
codigo_cent = "126"
\ No newline at end of file
......@@ -4,6 +4,13 @@ from flask import send_from_directory, abort
from iselenium import SeleniumInterface as SI
import random, json, os, datetime, ingenieros,apollo, fosadiaria
import configuracion
from matematika import *
from titulos import *
import pruebas
class MyCustomException(Exception):
def __init__(self, message):
super().__init__(message)
ing = ingenieros.ingenieros()
FozaDiaria = fosadiaria.FosaDiaria()
......@@ -58,7 +65,6 @@ def protected_static(filename):
else:
return abort(403)
@app.route('/historico')
def historico():
if "login" not in request.cookies:
......@@ -69,6 +75,15 @@ def historico():
bypass = False
)
@app.route('/buscador')
def buscador():
if "login" not in request.cookies:
return redirect(url_for("login"))
return render_template(
"buscador.html",
bypass = False
)
@app.route('/login', methods = ['GET', 'POST'])
def login():
......@@ -78,6 +93,27 @@ def login():
)
else:
try:
user = request.json['usuario']
pasw = request.json['contrasena']
print(user,pasw,pruebas.login)
if pruebas.login[user] != pasw:
raise MyCustomException("Ocurrió un error personalizado.")
#
print("Login user desarrollo")
response = make_response(redirect(url_for('historico')))
#response = make_response('', 200)
response.headers['Location'] = "historico"
response.set_cookie(
"login",
user,
60 * 60 * 8,
httponly = True
)
return response # Login rapido para desarrollo
except Exception as E:
print(f"No se encontro usuariodesarrollo {E}")
try:
#raise()
s = SI(SI.Chrome)
r = make_response(
json.dumps(
......@@ -122,6 +158,9 @@ def manual():
bypass = True
)
@app.route('/anomalies', methods = ['POST'])
def anomalies():
if "login" not in request.cookies:
......@@ -176,6 +215,8 @@ def report():
d = request.json
plate = d['header']['patente']
if plate.upper() =="PRUEBA":
return json.dumps(pruebas.report)
s = SI(SI.Chrome)
answer = {
......@@ -185,6 +226,7 @@ def report():
"frenos" : {},
"trasero" : {},
"gaseshumos" : {},
"ruido":{},
}
answer['header']['patente'] = plate.upper()
......@@ -217,18 +259,21 @@ def report():
return f"Error yendo a las especificaciones técnicas del dominio '{plate}'. {str(E)}"
try:
answer = readdata(s, answer)
except:
s.driver.quit()
return f"Error leyendo datos de la patente '{plate}'."
try:
answer = rnddata(answer)
except:
except Exception as E:
s.driver.quit()
return f"Error completando datos extra de la patente '{plate}'."
print(answer)
print(s)
return f"Error leyendo datos de la patente '{plate}' {str(E)}."
#try:
# answer = rnddata(answer)
#except:
# s.driver.quit()
# return f"Error completando datos extra de la patente '{plate}'."
#print(answer)
answer['header']["hora"] = str(fingfd)
s.driver.quit()
print("report",answer)
return json.dumps(answer)
def login(u, p, s):
......@@ -293,6 +338,8 @@ def gotoadmin(s, r):
r['header']['cp'] = cp.get_attribute("innerText").split(":")[1].strip()
return r
######################Cambio DBA ruido
def readdata(s, r):
reach = lambda id: lambda s: s.readInput( s.find(s.By.ID, id) )
......@@ -304,6 +351,7 @@ def readdata(s, r):
sus = r['suspension']
for i in range(2):
# si valores de rendimiento son numeros, leer el peso
sus[f"titulo_eje_{i+1}"] = EjesTitulosOrden(i+1)
if sus[f'rendimiento_izquierdo_{i + 1}'].isnumeric() or sus[f'rendimiento_derecho_{i + 1}'].isnumeric():
sus[f'peso_estatico_{i + 1}'] = _e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s))
else:
......@@ -316,25 +364,49 @@ def readdata(s, r):
# frenos
for i in range(4):
fre = {}
fre[f'peso_estatico_{i + 1}'] = _e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s))
fre[f'fuerza_izquierda_{i + 1}'] = _e2q(_attempt( reach(f"fuerzaIzq-{i}"), "?" )(s))
fre[f'fuerza_derecha_{i + 1}'] = _e2q(_attempt( reach(f"fuerzaDer-{i}"), "?" )(s))
pSo = PuntoComa(_e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s)))
fre[f"titulo_eje_freno_{i+1}"] = EjesTitulosOrden(i+1)
fre[f'peso_estatico_{i + 1}'] = pSo
fre[f'fuerza_izquierda_{i + 1}'] = PuntoComa(_e2q(_attempt( reach(f"fuerzaIzq-{i}"), "?" )(s)))
fre[f'fuerza_derecha_{i + 1}'] = PuntoComa(_e2q(_attempt( reach(f"fuerzaDer-{i}"), "?" )(s)))
fre[f'diferencia_freno_{i + 1}'] = PuntoComa(s.traerTextDiv(f"remotoDivDiferencia-{i}"))
fre[f'eficacia_freno_{i + 1}'] = PuntoComa(s.traerTextDiv(f"remotoDivEficiencia-{i}"))
##################################CALCULADOS##############################################
fre[f'peso_derecho_{i + 1}'] = DividirPeso(pSo)
fre[f'peso_izquierdo_{i + 1}'] = DividirPeso(pSo)
r['frenos'].update(fre)
# freno trasero
r['trasero']['peso_estatico'] = _e2q(_attempt( reach(f"pesoBasculaEst-0"), "?" )(s))
r['trasero']['fuerza_izquierda'] = _e2q(_attempt( reach(f"fuerzaIzqEst-0"), "?" )(s))
r['trasero']['fuerza_derecha'] = _e2q(_attempt( reach(f"fuerzaDerEst-0"), "?" )(s))
r['trasero']['eje'] = _e2q(_attempt( reach(f"nroEjeEst-0"), "?" )(s))
r['frenos']["pesoTotalFreno"] = PuntoComa(s.traerTextDiv(f"divTotalPesoBascula"))
r['frenos']["totalFzaIzq"] = PuntoComa(s.traerTextDiv(f"divTotalFuerzaIzq"))
r['frenos']["totalFzaDer"] = PuntoComa(s.traerTextDiv(f"divTotalFuerzaDer"))
r['frenos']["totalEficacia"] = PuntoComa(s.traerTextDiv(f"divTotalEficiencia")).replace("%","")
# freno trasero (Freno de mano)
PsoEstaFrM = PuntoComa(_e2q(_attempt( reach(f"pesoBasculaEst-0"), "?" )(s)))
r['trasero']['peso_estatico'] = PsoEstaFrM
r['trasero']['fuerza_izquierda'] = PuntoComa(_e2q(_attempt( reach(f"fuerzaIzqEst-0"), "?" )(s)))
r['trasero']['fuerza_derecha'] = PuntoComa(_e2q(_attempt( reach(f"fuerzaDerEst-0"), "?" )(s)))
r['trasero']['eje'] = PuntoComa(_e2q(_attempt( reach(f"nroEjeEst-0"), "?" )(s)))
r["trasero"][f'eficacia_freno_mano'] = PuntoComa(s.traerTextDiv(f"remotoDivEficienciaEst-0"))
r["trasero"][f'diferencia_freno_mano'] = PuntoComa(s.traerTextDiv(f"remotoDivDiferenciaEst-0"))
#########################################CALCULADO##############################################
r['trasero']['peso_izquierda'] = DividirPeso(PsoEstaFrM)
r['trasero']['peso_derecha'] = DividirPeso(PsoEstaFrM)
# gases y humos
r['gaseshumos']['opacidad_logaritmica'] = _e2q(_attempt( reach(f"opacidadLogaritmica"), "?" )(s))
r['gaseshumos']['co'] = _e2q(_attempt( reach(f"cantCO"), "?" )(s))
r['gaseshumos']['hc'] = _e2q(_attempt( reach(f"cantHC"), "?" )(s))
r['gaseshumos']['opacidad_logaritmica'] = PuntoComa(_e2q(_attempt( reach(f"opacidadLogaritmica"), "?" )(s)))
r['gaseshumos']['co'] = PuntoComa(_e2q(_attempt( reach(f"cantCO"), "?" )(s)))
r['gaseshumos']['hc'] = PuntoComa(_e2q(_attempt( reach(f"cantHC"), "?" )(s)))
#Nivel sonoro
try:
r['ruido']["nivelsonoro"] = _e2q(_attempt( reach(f"extEscape"), "?" )(s))
except Exception as E:
print("""###Error a traer datos de nivel sonoro###""")
print(E)
print("""###Error a traer datos de nivel sonoro###""")
#print(r)
return r
def rnddata(r):
......@@ -420,4 +492,4 @@ def _e2q(string):
# Inicio del servicio
if __name__ == "__main__":
app.run("0.0.0.0", port=11000)
app.run("0.0.0.0", port=configuracion.port)
def convertir_a_flotante(cadena):
try:
# Reemplaza la coma por un punto en caso de que la cadena use coma como separador decimal
cadena = cadena.replace(',', '.')
# Convierte la cadena a un número de coma flotante
return float(cadena)
except ValueError:
# Maneja el error en caso de que la conversión falle
print(f"Error: '{cadena}' no es un número válido")
return "?"
def dividir_a_la_mitad_y_redondear(num,res=1):
try:
# Divide el número a la mitad
resultado = num / 2
# Redondea el resultado a un dígito decimal
resultado_redondeado = round(resultado, res)
return resultado_redondeado
except TypeError:
# Maneja el error en caso de que el argumento no sea un número
print(f"Error: '{num}' no es un número válido")
return None
def PuntoComa(val,final=","):
if final == ".":
rta = val.replace(",",final)
else:
rta = val.replace(".",final)
return rta
def DividirPeso(total, res=1,sep=","):
"""Divide un string de peso a su mitad cpm la
resolucion definida en 1 por defecto y conversion de
puntocoma"""
try:
total = convertir_a_flotante(total)
mitad = dividir_a_la_mitad_y_redondear(total,res)
rto = PuntoComa(str(mitad),final=sep)
except Exception as E:
print(f"Error al dividir peso, error: {str(E)}")
rto = "?"
if rto in [None,"","None"]:
rto = "?"
print(f"dividir {total} {rto}")
return rto
\ No newline at end of file
const idCentGlobal = '126';///Declaracion de taller
const chatUrl = 'https://api.hgt.com.ar/poll/rto_' + idCentGlobal + '_update/dewfrfgbeolkgkteprlk,hptrlk,hqff';
let pendingRequests = 0;
function CargarLista() {
const requestData = {
"token": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
"url": "https://hgt.hgt.com.ar/api_rto/diaria",
"clear": true,
"params": {
"ApiKey": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
"id_cent": idCentGlobal
}
};
fetch('https://api.hgt.com.ar/redirect', {
method: 'POST',
headers: {
'Accept': 'application/json',
"Content-Type": "application/json"
},
body: JSON.stringify(requestData)
})
.then(response => response.json())
.then(data => {
createHistoricoList(data);
})
.catch(error => {
console.error('Error:', error);
});
};
// Function to create the list items
function createHistoricoList(data) {
const historicoDiv = document.getElementById('div_historico');
historicoDiv.innerHTML = "" ;
//historicoDiv.innerText = "Dominios del dia"
data.inspecciones.forEach(inspeccion => {
const button = document.createElement('button');
button.className = 'PDFButton';
button.id = inspeccion.name;
button.textContent = 'Ir dominio ';
const div = document.createElement('div');
//div.textContent = inspeccion.name + " " + inspeccion.resultado + " " + inspeccion.fecha + " ";
const titulo = document.createElement('H4');
titulo.textContent = inspeccion.name + " " + inspeccion.resultado ;
const ftl = document.createElement('H6');
ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria;
div.appendChild(titulo);
div.appendChild(ftl);
div.appendChild(button);
const separador =document.createElement('hr')
separador.className = 'custom-hr';
historicoDiv.appendChild(div);
historicoDiv.appendChild(separador);
});
}
async function fetchChat() {
const MensajeDiv = document.getElementById('DivMensajeFijo');
const MensajeCaida = "Se perdio contacto con el server, revise conexcion a internet"
//MensajeDiv.innerText = "Escuchando novedades"
while (true) {
try {
const response = await fetch(chatUrl);
const data = await response.json();
if (data.proccess === true) {
//CargarLista();
MensajeDiv.innerText = "Lista Actualizada al " + data.tiempo
}
if (MensajeDiv.innerText == MensajeCaida) {
MensajeDiv.innerText = "Se recupero conixion al server, Esperando novedades, o recarge la pagina"
}
} catch (error) {
MensajeDiv.innerText = MensajeCaida;
// Si ocurre un error, esperamos 5 segundos antes de volver a intentarlo
await new Promise(resolve => setTimeout(resolve, 5000));
}
}
}
function BuscarLista(fecha,dominio) {
const requestData = {
"token": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
"url": "https://hgt.hgt.com.ar/api_rto/buscador",
"clear": true,
"params": {
"ApiKey": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
"id_cent": idCentGlobal,
//"id_cent": "61",
"fecha":fecha,
"dominio":dominio
}
};
fetch('https://api.hgt.com.ar/redirect', {
method: 'POST',
headers: {
'Accept': 'application/json',
"Content-Type": "application/json"
},
body: JSON.stringify(requestData)
})
.then(response => response.json())
.then(data => {
createHistoricoList(data);
})
.catch(error => {
console.error('Error:', error);
});
};
async function IniciarInterfaceBusqueda() {
const searchForm = document.getElementById('searchForm');
searchForm.addEventListener('submit', function(event) {
event.preventDefault(); // Prevent the form from submitting normally
//console.log("Presionando boton busqueda")
const fecha = document.getElementById('date_input').value;
const dominio = document.getElementById('domain_input').value;
if (fecha === "" && dominio === "") {
alert("Carge los parametros de busqueda");
return; // Stop further execution if validation fails
} else {
BuscarLista(fecha,dominio);
}
})
}
////////////INICIO ACTIVIDAD
window.addEventListener('load', () => {
//CargarLista();
//fetchChat();
IniciarInterfaceBusqueda();
});
\ No newline at end of file
login = {
"jpdure":"xvc7733455XVC"
}
report = {
'header': {
'patente': 'PRUEBA12',
'fecha-hora': '19/06/2024 11:45',
'ingeniero': 'Usuario no cargado',
'fecha': '19/06/2024', 'hora': '11:46'},
'alineador': {
'eje_delantero': '7.8'},
'suspension': {
'rendimiento_izquierdo_1': '?',
'rendimiento_derecho_1': '?',
'titulo_eje_1': 'primer',
'titulo_eje_2': 'segundo',
'rendimiento_izquierdo_2': '?',
'rendimiento_derecho_2': '?',
'peso_estatico_1': '?',
'peso_estatico_2': '?'},
'frenos': {
'peso_estatico_1': '1159',
'fuerza_izquierda_1': '2,66',
'fuerza_derecha_1': '2,72',
'diferencia_freno_1': '2,21',
'eficacia_freno_1': '47,32',
'peso_derecho_1': '579,5',
'peso_izquierdo_1': '579,5',
'peso_estatico_2': '3729',
'fuerza_izquierda_2': '8,73',
'fuerza_derecha_2': '8,58',
'diferencia_freno_2': '1,72',
'eficacia_freno_2': '47,32',
'peso_derecho_2': '1864,5',
'peso_izquierdo_2': '1864,5',
'peso_estatico_3': '?',
'fuerza_izquierda_3': '?',
'fuerza_derecha_3': '?',
'diferencia_freno_3': '?',
'eficacia_freno_3': '?',
'peso_derecho_3': '?',
'peso_izquierdo_3': '?',
'peso_estatico_4': '?',
'fuerza_izquierda_4': '?',
'fuerza_derecha_4': '?',
'diferencia_freno_4': '?',
'eficacia_freno_4': '?',
'peso_derecho_4': '?',
'peso_izquierdo_4': '?',
'pesoTotalFreno': '4888',
'totalFzaIzq': '11,39',
'totalFzaDer': '11,30',
'titulo_eje_freno_1': 'primer',
'titulo_eje_freno_2': 'segundo',
'titulo_eje_freno_3': 'tercer',
'titulo_eje_freno_4': 'cuarto',
'totalEficacia': '47,32'},
'trasero': {
'peso_estatico': '4888',
'fuerza_izquierda': '9,01',
'fuerza_derecha': '9,02',
'eje': '2',
'eficacia_freno_mano': '37,60',
'peso_izquierda':"2444",
'peso_derecha':"2444",
'diferencia_freno_mano': '0,11'},
'gaseshumos': {
'opacidad_logaritmica': '?',
'co': '?',
'hc': '?'},
'ruido': {
'nivelsonoro': '92'}
}
\ No newline at end of file
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ url_for('static', filename = 'styles/general.css') }}">
<script src="/protected_static/buscador.js"></script>
<!--INCLUIMOS LA FUENTE
<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" />
-->
<title>Pruebas de Alineamiento</title>
<style>
.custom-hr {
border: none;
border-top: 1px solid #000; /* Personaliza el color y grosor aquí */
width: 66.67%; /* Dos tercios del ancho de la página */
margin: 20px 0; /* Ajusta el espacio alrededor de la línea aquí */
margin-left: 0; /* Alinea la línea al inicio (izquierda) */
}
</style>
</head>
<body>
<div >
<!--
<div class="MessageFixed" id="DivMensajeFijo">
</div>
-->
<div class="DataCard" >
<form id="searchForm">
<div>
<label for="date_input">Fecha:</label>
<input type="date" id="date_input" name="date_input">
</div>
<div>
<label for="domain_input">Dominio:</label>
<input type="text" id="domain_input" name="domain_input">
</div>
<button class="PDFButton" type="submit" id="id_boton_busqueda">Buscar</button>
</form>
<hr class="custom-hr" >
Resultados de la busqueda
<br>
<div id="div_historico">
<hr class="custom-hr" >
Sin resultados
<hr class="custom-hr" >
</div>
</div>
<div class="PDFButtonContainerFixed">
<h3>Buscador</h3>
<button class="PDFButton" onclick= "location.href='/historico'">
Historico
</button>
<button class="PDFButton" onclick= "location.href='/'">
Carga
</button>
</div>
</div>
<div id="message" class="MessageContainer" onclick="this.style.display = 'none'" style="display: none;">
<div class="Message" style="text-align: center;">
<p id = "msg"></p>
<span class = "X">x<span>
</div>
</div>
</body>
</html>
\ No newline at end of file
<html lang="en">
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
......@@ -11,8 +12,9 @@
<script src="{{ url_for('static', filename = 'src/pdf3.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/forms.js') }}"></script>
<link rel="stylesheet" href="{{ url_for('static', filename = 'styles/general.css') }}">
<!--INCLUIMOS LA FUENTE-->
<!--INCLUIMOS LA FUENTE
<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" />
-->
<title>Pruebas de Alineamiento</title>
</head>
<body>
......@@ -38,7 +40,7 @@
<option value="4">4</option>
</select>
<br>
Peso Total <input sub="suspension" type="text" name="peso_estatico_general" id="peso_estatico_general">
Peso Total <input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_general">
<h1>Alineador</h1>
......@@ -54,6 +56,8 @@
{% for eje in range(2) %}
<h3>Eje {{ eje + 1 }}</h3>
Titulo Eje <input readonly="1" sub="suspension" type="text" name="titulo_eje_{{ eje + 1 }}">
<br>
Rend. Izquerdo <input sub="suspension" type="text" name="rendimiento_izquierdo_{{ eje + 1 }}">
<br>
Rend. Derecho <input sub="suspension" type="text" name="rendimiento_derecho_{{ eje + 1 }}">
......@@ -69,6 +73,8 @@
<!--Aca Trabajamos para repoorte cliente corrientes-->
<h3>Eje {{ eje + 1 }}</h3>
Titulo Eje <input readonly="1" sub="frenos" type="text" id="titulo_eje_freno_{{ eje + 1 }}" name="titulo_eje_freno_{{ eje + 1 }}">
<br>
Fuerza Izquierda <input sub="frenos" type="text" id="fuerza_izquierda_{{ eje + 1 }}" name="fuerza_izquierda_{{ eje + 1 }}">
<br>
Fuerza Derecha <input sub="frenos" type="text" id="fuerza_derecha_{{ eje + 1 }}" name="fuerza_derecha_{{ eje + 1 }}">
......@@ -81,6 +87,10 @@
<br>
Ovalidad Derecha <input sub="frenos" type="text" name="ovalidad_derecha_{{ eje + 1 }}">
<br>
Peso Izq. <input sub="frenos" type="text" id="peso_freno_izq_{{ eje + 1 }}" name="peso_izquierdo_{{ eje + 1 }}">
<br>
Peso Der. <input sub="frenos" type="text" id="peso_freno_der_{{ eje + 1 }}" name="peso_derecho_{{ eje + 1 }}">
<br>
Peso Total <input sub="frenos" type="text" id="peso_freno_estatico_{{ eje + 1 }}" name="peso_estatico_{{ eje + 1 }}">
<br>
Diferencia <input sub="frenos" type="text" id="diferencia_freno_{{ eje + 1 }}" name="diferencia_freno_{{ eje + 1 }}" value="---" readonly>
......@@ -90,34 +100,34 @@
<br>
{% endfor %}
<h3>Resultados finales freno serrvicio</h3>
Fuerza Fre. max. <input sub="frenos" type="text" id="rf_servicio_fuerza_max" name="rf_servicio_fuerza_max" value="---">
<h3>TOTALIZADO</h3>
F.Izq. Total. <input sub="frenos" type="text" id="totalFzaIzq" name="totalFzaIzq" value="---">
<br>
F. Der. Total <input sub="frenos" type="text" id="totalFzaDer" name="totalFzaDer" value="---">
<br>
Diferencia <input sub="frenos" type="text" id="rf_servicio_fuerza_diferencia" name="rf_servicio_fuerza_diferencia" value="---">
Eficacia estic. <input sub="frenos" type="text" id="totalEficacia" name="totalEficacia" value="---">
<br>
Eficacia estic. <input sub="frenos" type="text" id="rf_servicio_eficacia_estatica" name="rf_servicio_eficacia_estatica" value="---">
Peso Total <input sub="frenos" type="text" id="pesoTotalFreno" name="pesoTotalFreno" value="---">
<br>
<h1>Freno Estacionamiento</h1>
Fuerza Izquierda <input sub="trasero" type="text" name="fuerza_izquierda" id="fuerza_izquierda_freno_mano">
Fuerza Izquierda <input sub="trasero" type="text" name="fuerza_izquierda" id="2fuerza_izquierda_freno_mano">
<br>
Fuerza Derecha <input sub="trasero" type="text" name="fuerza_derecha" id="fuerza_derecha_freno_mano">
Fuerza Derecha <input sub="trasero" type="text" name="fuerza_derecha" id="2fuerza_derecha_freno_mano">
<br>
Diferencia <input sub="frenos" type="text" id="diferencia_freno_mano" name="diferencia_freno_mano" value="---" readonly>
Diferencia <input sub="trasero" type="text" id="diferencia_freno_mano" name="diferencia_freno_mano" value="---" readonly>
<br>
Eficacia <input sub="frenos" type="text" id="eficacia_freno_mano" name="eficacia_freno_mano" value="---" readonly>
Eficacia <input sub="trasero" type="text" id="eficacia_freno_mano" name="eficacia_freno_mano" value="---" readonly>
<br>
Eje Nº <input sub="trasero" type="text" name="eje" id="eje_freno_est">
<br>
<!--Peso Total hidden-->
Peso Total<input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_freno_mano">
<br>
<h3>Resultados finales freno servicio</h3>
Fuerza Fre. max. <input sub="frenos" type="text" id="rf_estacionamiento_fuerza_max" name="rf_estacionamiento_fuerza_max" value="---">
<br>
Diferencia <input sub="frenos" type="text" id="rf_estacionamiento_fuerza_diferencia" name="rf_estacionamiento_fuerza_diferencia" value="---">
Peso Izq<input sub="trasero" type="text" name="peso_izquierda" id="peso_izquierda_freno_mano">
<br>
Eficacia estic. <input sub="frenos" type="text" id="rf_estacionamiento_eficacia_estatica" name="rf_estacionamiento_eficacia_estatica" value="---">
Peso Der<input sub="trasero" type="text" name="peso_derecha" id="peso_derecho_freno_mano">
<br>
<h1>Gases y Humos</h1>
Gases <input sub="gaseshumos" type="text" name="opacidad_logaritmica">
<br>
......@@ -125,6 +135,9 @@
<br>
HC <input sub="gaseshumos" type="text" name="hc">
<br>
<h1>Ruido</h1>
dbA <input sub="ruido" type="text" name="nivelsonoro" id="ruido_dba_id">
<br>
<br>
<br>
Por defecto: <input type="text" name="defecto" value="---">
......@@ -132,13 +145,28 @@
</div>
<div class="PDFButtonContainerFixed">
<button class="PDFButton" onclick=
"window.open(
compile(
(new PDF2()).pdf( collectToConvert() ),
new jsPDF('portrait', 'pt', 'a4')
)
.output('bloburl')
)";
>
Pdf Informe
</button>
<img id="maha" src="{{ url_for('static', filename = 'assets/maha.png') }}" style="display: none;">
</div>
<!--
<div class="PDFButtonContainerFixed">
<button class="PDFButton" id="boton_pdf_maha_reporte">
Linea 1
</button>
<button class="PDFButton" id="boton_pdf_maha_reporte2">
Linea 2
</button>
<!--
<button class="PDFButton" onclick=
"window.open(
compile(
......@@ -150,9 +178,9 @@
>
Linea 2
</button>
-->
<img id="maha" src="{{ url_for('static', filename = 'assets/maha2.png') }}" style="display: none;">
</div>
-->
<div class="PDFButtonContainerFixed" style="bottom: 40%;">
<button class="PDFButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};"
onclick="location.reload()">
......@@ -196,11 +224,16 @@
<button class="PDFButton" onclick= "location.href='/historico'">
Historico
</button>
<button class="PDFButton" onclick= "location.href='/buscador'">
Buscador
</button>
</div>
<button class="PDFButton loginB" onclick= "location.href='/login'">
Login
</button>
</div>
<div id="message" class="MessageContainer" onclick="this.style.display = 'none'" style="display: none;">
<div class="Message" style="text-align: center;">
......@@ -208,7 +241,7 @@
<span class = "X">x<span>
</div>
</div>
<script src="{{ url_for('static', filename = 'src/report.js') }}"></script>
<!--<script src="{{ url_for('static', filename = 'src/report.js') }}"></script>-->
</body>
</html>
\ No newline at end of file
......@@ -37,6 +37,10 @@
<h3>Dominios del dia</h3>
<button class="PDFButton" onclick= "location.href='/buscador'">
Buscador
</button>
<button class="PDFButton" onclick= "location.href='/'">
Carga
</button>
......
def EjesTitulosOrden(n):
tr = {
"1":"primer",
"2":"segundo",
"3":"tercero",
"4":"cuarto"
}
try:
rta = tr[str(n)]
except:
rta = str(n)
print(f"titulos.EjesTituloOrden {n} no definido se usa ingreso")
print(rta)
return rta
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!