Commit 8816840f by Tu Nombre

Actualizo a base nueva

1 parent 5308a5ee
...@@ -4,3 +4,5 @@ grepfile = "/home/taller_1/Pruebas-RTO/grep.sh" ...@@ -4,3 +4,5 @@ grepfile = "/home/taller_1/Pruebas-RTO/grep.sh"
deltaminutos = 7 deltaminutos = 7
delataPositivoNegativo = "-" delataPositivoNegativo = "-"
ManualLogin = False # PAra hacer pruebas sin tener que loguear ManualLogin = False # PAra hacer pruebas sin tener que loguear
port = 12000
codigo_cent = "126"
\ No newline at end of file \ No newline at end of file
...@@ -4,6 +4,13 @@ from flask import send_from_directory, abort ...@@ -4,6 +4,13 @@ from flask import send_from_directory, abort
from iselenium import SeleniumInterface as SI from iselenium import SeleniumInterface as SI
import random, json, os, datetime, ingenieros,apollo, fosadiaria import random, json, os, datetime, ingenieros,apollo, fosadiaria
import configuracion import configuracion
from matematika import *
from titulos import *
import pruebas
class MyCustomException(Exception):
def __init__(self, message):
super().__init__(message)
ing = ingenieros.ingenieros() ing = ingenieros.ingenieros()
FozaDiaria = fosadiaria.FosaDiaria() FozaDiaria = fosadiaria.FosaDiaria()
...@@ -58,7 +65,6 @@ def protected_static(filename): ...@@ -58,7 +65,6 @@ def protected_static(filename):
else: else:
return abort(403) return abort(403)
@app.route('/historico') @app.route('/historico')
def historico(): def historico():
if "login" not in request.cookies: if "login" not in request.cookies:
...@@ -69,6 +75,15 @@ def historico(): ...@@ -69,6 +75,15 @@ def historico():
bypass = False 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']) @app.route('/login', methods = ['GET', 'POST'])
def login(): def login():
...@@ -78,6 +93,27 @@ def login(): ...@@ -78,6 +93,27 @@ def login():
) )
else: else:
try: 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) s = SI(SI.Chrome)
r = make_response( r = make_response(
json.dumps( json.dumps(
...@@ -122,6 +158,9 @@ def manual(): ...@@ -122,6 +158,9 @@ def manual():
bypass = True bypass = True
) )
@app.route('/anomalies', methods = ['POST']) @app.route('/anomalies', methods = ['POST'])
def anomalies(): def anomalies():
if "login" not in request.cookies: if "login" not in request.cookies:
...@@ -176,6 +215,8 @@ def report(): ...@@ -176,6 +215,8 @@ def report():
d = request.json d = request.json
plate = d['header']['patente'] plate = d['header']['patente']
if plate.upper() =="PRUEBA":
return json.dumps(pruebas.report)
s = SI(SI.Chrome) s = SI(SI.Chrome)
answer = { answer = {
...@@ -185,6 +226,7 @@ def report(): ...@@ -185,6 +226,7 @@ def report():
"frenos" : {}, "frenos" : {},
"trasero" : {}, "trasero" : {},
"gaseshumos" : {}, "gaseshumos" : {},
"ruido":{},
} }
answer['header']['patente'] = plate.upper() answer['header']['patente'] = plate.upper()
...@@ -217,18 +259,21 @@ def report(): ...@@ -217,18 +259,21 @@ def report():
return f"Error yendo a las especificaciones técnicas del dominio '{plate}'. {str(E)}" return f"Error yendo a las especificaciones técnicas del dominio '{plate}'. {str(E)}"
try: try:
answer = readdata(s, answer) answer = readdata(s, answer)
except: except Exception as E:
s.driver.quit()
return f"Error leyendo datos de la patente '{plate}'."
try:
answer = rnddata(answer)
except:
s.driver.quit() 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) #print(answer)
answer['header']["hora"] = str(fingfd) answer['header']["hora"] = str(fingfd)
s.driver.quit() s.driver.quit()
print("report",answer)
return json.dumps(answer) return json.dumps(answer)
def login(u, p, s): def login(u, p, s):
...@@ -293,6 +338,8 @@ def gotoadmin(s, r): ...@@ -293,6 +338,8 @@ def gotoadmin(s, r):
r['header']['cp'] = cp.get_attribute("innerText").split(":")[1].strip() r['header']['cp'] = cp.get_attribute("innerText").split(":")[1].strip()
return r return r
######################Cambio DBA ruido
def readdata(s, r): def readdata(s, r):
reach = lambda id: lambda s: s.readInput( s.find(s.By.ID, id) ) reach = lambda id: lambda s: s.readInput( s.find(s.By.ID, id) )
...@@ -304,6 +351,7 @@ def readdata(s, r): ...@@ -304,6 +351,7 @@ def readdata(s, r):
sus = r['suspension'] sus = r['suspension']
for i in range(2): for i in range(2):
# si valores de rendimiento son numeros, leer el peso # 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(): 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)) sus[f'peso_estatico_{i + 1}'] = _e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s))
else: else:
...@@ -316,25 +364,49 @@ def readdata(s, r): ...@@ -316,25 +364,49 @@ def readdata(s, r):
# frenos # frenos
for i in range(4): for i in range(4):
fre = {} fre = {}
fre[f'peso_estatico_{i + 1}'] = _e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s)) pSo = PuntoComa(_e2q(_attempt( reach(f"pesoBascula-{i}"), "?" )(s)))
fre[f'fuerza_izquierda_{i + 1}'] = _e2q(_attempt( reach(f"fuerzaIzq-{i}"), "?" )(s)) fre[f"titulo_eje_freno_{i+1}"] = EjesTitulosOrden(i+1)
fre[f'fuerza_derecha_{i + 1}'] = _e2q(_attempt( reach(f"fuerzaDer-{i}"), "?" )(s)) 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) r['frenos'].update(fre)
# freno trasero r['frenos']["pesoTotalFreno"] = PuntoComa(s.traerTextDiv(f"divTotalPesoBascula"))
r['frenos']["totalFzaIzq"] = PuntoComa(s.traerTextDiv(f"divTotalFuerzaIzq"))
r['trasero']['peso_estatico'] = _e2q(_attempt( reach(f"pesoBasculaEst-0"), "?" )(s)) r['frenos']["totalFzaDer"] = PuntoComa(s.traerTextDiv(f"divTotalFuerzaDer"))
r['trasero']['fuerza_izquierda'] = _e2q(_attempt( reach(f"fuerzaIzqEst-0"), "?" )(s)) r['frenos']["totalEficacia"] = PuntoComa(s.traerTextDiv(f"divTotalEficiencia")).replace("%","")
r['trasero']['fuerza_derecha'] = _e2q(_attempt( reach(f"fuerzaDerEst-0"), "?" )(s))
r['trasero']['eje'] = _e2q(_attempt( reach(f"nroEjeEst-0"), "?" )(s)) # 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 # gases y humos
r['gaseshumos']['opacidad_logaritmica'] = _e2q(_attempt( reach(f"opacidadLogaritmica"), "?" )(s)) r['gaseshumos']['opacidad_logaritmica'] = PuntoComa(_e2q(_attempt( reach(f"opacidadLogaritmica"), "?" )(s)))
r['gaseshumos']['co'] = _e2q(_attempt( reach(f"cantCO"), "?" )(s)) r['gaseshumos']['co'] = PuntoComa(_e2q(_attempt( reach(f"cantCO"), "?" )(s)))
r['gaseshumos']['hc'] = _e2q(_attempt( reach(f"cantHC"), "?" )(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 return r
def rnddata(r): def rnddata(r):
...@@ -420,4 +492,4 @@ def _e2q(string): ...@@ -420,4 +492,4 @@ def _e2q(string):
# Inicio del servicio # Inicio del servicio
if __name__ == "__main__": 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 \ 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 \ 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 \ 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 \ No newline at end of file
<html lang="en">
<html lang="es">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
...@@ -11,8 +12,9 @@ ...@@ -11,8 +12,9 @@
<script src="{{ url_for('static', filename = 'src/pdf3.js') }}"></script> <script src="{{ url_for('static', filename = 'src/pdf3.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/forms.js') }}"></script> <script src="{{ url_for('static', filename = 'src/forms.js') }}"></script>
<link rel="stylesheet" href="{{ url_for('static', filename = 'styles/general.css') }}"> <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" /> <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" />
-->
<title>Pruebas de Alineamiento</title> <title>Pruebas de Alineamiento</title>
</head> </head>
<body> <body>
...@@ -38,7 +40,7 @@ ...@@ -38,7 +40,7 @@
<option value="4">4</option> <option value="4">4</option>
</select> </select>
<br> <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> <h1>Alineador</h1>
...@@ -54,6 +56,8 @@ ...@@ -54,6 +56,8 @@
{% for eje in range(2) %} {% for eje in range(2) %}
<h3>Eje {{ eje + 1 }}</h3> <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 }}"> Rend. Izquerdo <input sub="suspension" type="text" name="rendimiento_izquierdo_{{ eje + 1 }}">
<br> <br>
Rend. Derecho <input sub="suspension" type="text" name="rendimiento_derecho_{{ eje + 1 }}"> Rend. Derecho <input sub="suspension" type="text" name="rendimiento_derecho_{{ eje + 1 }}">
...@@ -69,6 +73,8 @@ ...@@ -69,6 +73,8 @@
<!--Aca Trabajamos para repoorte cliente corrientes--> <!--Aca Trabajamos para repoorte cliente corrientes-->
<h3>Eje {{ eje + 1 }}</h3> <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 }}"> Fuerza Izquierda <input sub="frenos" type="text" id="fuerza_izquierda_{{ eje + 1 }}" name="fuerza_izquierda_{{ eje + 1 }}">
<br> <br>
Fuerza Derecha <input sub="frenos" type="text" id="fuerza_derecha_{{ eje + 1 }}" name="fuerza_derecha_{{ eje + 1 }}"> Fuerza Derecha <input sub="frenos" type="text" id="fuerza_derecha_{{ eje + 1 }}" name="fuerza_derecha_{{ eje + 1 }}">
...@@ -81,6 +87,10 @@ ...@@ -81,6 +87,10 @@
<br> <br>
Ovalidad Derecha <input sub="frenos" type="text" name="ovalidad_derecha_{{ eje + 1 }}"> Ovalidad Derecha <input sub="frenos" type="text" name="ovalidad_derecha_{{ eje + 1 }}">
<br> <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 }}"> Peso Total <input sub="frenos" type="text" id="peso_freno_estatico_{{ eje + 1 }}" name="peso_estatico_{{ eje + 1 }}">
<br> <br>
Diferencia <input sub="frenos" type="text" id="diferencia_freno_{{ eje + 1 }}" name="diferencia_freno_{{ eje + 1 }}" value="---" readonly> Diferencia <input sub="frenos" type="text" id="diferencia_freno_{{ eje + 1 }}" name="diferencia_freno_{{ eje + 1 }}" value="---" readonly>
...@@ -90,34 +100,34 @@ ...@@ -90,34 +100,34 @@
<br> <br>
{% endfor %} {% endfor %}
<h3>Resultados finales freno serrvicio</h3> <h3>TOTALIZADO</h3>
Fuerza Fre. max. <input sub="frenos" type="text" id="rf_servicio_fuerza_max" name="rf_servicio_fuerza_max" value="---"> 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> <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> <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> <br>
<h1>Freno Estacionamiento</h1> <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> <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> <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> <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> <br>
Eje Nº <input sub="trasero" type="text" name="eje" id="eje_freno_est"> Eje Nº <input sub="trasero" type="text" name="eje" id="eje_freno_est">
<br> <br>
<!--Peso Total hidden--> <!--Peso Total hidden-->
Peso Total<input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_freno_mano"> Peso Total<input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_freno_mano">
<br> <br>
<h3>Resultados finales freno servicio</h3> Peso Izq<input sub="trasero" type="text" name="peso_izquierda" id="peso_izquierda_freno_mano">
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="---">
<br> <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> <br>
<h1>Gases y Humos</h1> <h1>Gases y Humos</h1>
Gases <input sub="gaseshumos" type="text" name="opacidad_logaritmica"> Gases <input sub="gaseshumos" type="text" name="opacidad_logaritmica">
<br> <br>
...@@ -125,6 +135,9 @@ ...@@ -125,6 +135,9 @@
<br> <br>
HC <input sub="gaseshumos" type="text" name="hc"> HC <input sub="gaseshumos" type="text" name="hc">
<br> <br>
<h1>Ruido</h1>
dbA <input sub="ruido" type="text" name="nivelsonoro" id="ruido_dba_id">
<br>
<br> <br>
<br> <br>
Por defecto: <input type="text" name="defecto" value="---"> Por defecto: <input type="text" name="defecto" value="---">
...@@ -132,13 +145,28 @@ ...@@ -132,13 +145,28 @@
</div> </div>
<div class="PDFButtonContainerFixed"> <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"> <button class="PDFButton" id="boton_pdf_maha_reporte">
Linea 1 Linea 1
</button> </button>
<button class="PDFButton" id="boton_pdf_maha_reporte2"> <button class="PDFButton" id="boton_pdf_maha_reporte2">
Linea 2 Linea 2
</button> </button>
<!--
<button class="PDFButton" onclick= <button class="PDFButton" onclick=
"window.open( "window.open(
compile( compile(
...@@ -150,9 +178,9 @@ ...@@ -150,9 +178,9 @@
> >
Linea 2 Linea 2
</button> </button>
-->
<img id="maha" src="{{ url_for('static', filename = 'assets/maha2.png') }}" style="display: none;"> <img id="maha" src="{{ url_for('static', filename = 'assets/maha2.png') }}" style="display: none;">
</div> </div>
-->
<div class="PDFButtonContainerFixed" style="bottom: 40%;"> <div class="PDFButtonContainerFixed" style="bottom: 40%;">
<button class="PDFButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};" <button class="PDFButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};"
onclick="location.reload()"> onclick="location.reload()">
...@@ -196,11 +224,16 @@ ...@@ -196,11 +224,16 @@
<button class="PDFButton" onclick= "location.href='/historico'"> <button class="PDFButton" onclick= "location.href='/historico'">
Historico Historico
</button> </button>
<button class="PDFButton" onclick= "location.href='/buscador'">
Buscador
</button>
</div> </div>
<button class="PDFButton loginB" onclick= "location.href='/login'"> <button class="PDFButton loginB" onclick= "location.href='/login'">
Login Login
</button> </button>
</div> </div>
<div id="message" class="MessageContainer" onclick="this.style.display = 'none'" style="display: none;"> <div id="message" class="MessageContainer" onclick="this.style.display = 'none'" style="display: none;">
<div class="Message" style="text-align: center;"> <div class="Message" style="text-align: center;">
...@@ -208,7 +241,7 @@ ...@@ -208,7 +241,7 @@
<span class = "X">x<span> <span class = "X">x<span>
</div> </div>
</div> </div>
<script src="{{ url_for('static', filename = 'src/report.js') }}"></script> <!--<script src="{{ url_for('static', filename = 'src/report.js') }}"></script>-->
</body> </body>
</html> </html>
\ No newline at end of file \ No newline at end of file
...@@ -37,6 +37,10 @@ ...@@ -37,6 +37,10 @@
<h3>Dominios del dia</h3> <h3>Dominios del dia</h3>
<button class="PDFButton" onclick= "location.href='/buscador'">
Buscador
</button>
<button class="PDFButton" onclick= "location.href='/'"> <button class="PDFButton" onclick= "location.href='/'">
Carga Carga
</button> </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!