Commit 03ebb548 by Juan

Merge branch 'Actualizacion-CENT-2023' into 'master'

Actualizacion cent 2023

See merge request !1
2 parents 1c57184f d55dea15
import datetime, time
class estaticos():
"""Clase para meter funciones a reutilizar por todo lados
sin contexto o uno pequeño"""
@staticmethod
def FechaHora():
"""Devuelve la fecha y hora en formato humano"""
rta = datetime.datetime.now().strftime("%d/%m/%Y %H:%M")
return(rta)
@staticmethod
def Hora():
"""Devuelve la fecha y hora en formato humano"""
rta = datetime.datetime.now().strftime("%H:%M")
return(rta)
@staticmethod
def Fecha():
"""Devuelve la fecha con formatio humano"""
rta = datetime.datetime.now().strftime("%d/%m/%Y")
return(rta)
if __name__ == "__main__":
print(estaticos.FechaHora())
print(estaticos.Fecha())
a = datetime.datetime.now()
print(a, a - datetime.timedelta(seconds=100))
{
"mdfernandez054":{"nombreyapellido":"Dolores Fernandez","matricula":""},
"bolattif":{"nombreyapellido":"Federico Bolatti","matricula":""},
"boveria":{"nombreyapellido":"Adrian Boveri","matricula":""}
}
\ No newline at end of file \ No newline at end of file
import json, datetime, time, apollo
class ingenieros():
"""Esta Clase abstrae la relacion de los usuarios de login y los datos
de los usuarios, al dia de mañana se podria mover a laika si es necesario
Pero por ahora los armo en un json y a la mierda no hay tantos ingenieros
ni tanta rotacion"""
def __init__(self) -> None:
self.Archivo = "data/ingenieros.json"
self.cache = {}
self.delta = datetime.timedelta(seconds=100)
self._last_update = datetime.datetime.now() #- self.delta
self.LeerArchivo(force=True)
def CacheVencido(self):
a = datetime.datetime.now()
return a - self._last_update > self.delta
def LeerDatosUsuario(self,usuario):
"""Lee los datos de un usuario desde el cache si el tiempo
no excede el delta"""
try:
rta = self.LeerArchivo()[usuario]
except Exception as E:
print(E)
rta = {"nombreyapellido":"Usuario no cargado","matricula":""}
return rta
def LeerArchivo(self,force=False):
if self.CacheVencido() or force:
with open(self.Archivo) as file:
data = json.load(file)
self.cache = data
self._last_update = datetime.datetime.now()
else:
data = self.cache
return data
if __name__ == "__main__":
ing = ingenieros()
print(apollo.estaticos.FechaHora())
for n in range(0,125):
apollo.estaticos.FechaHora()
print(ing.LeerDatosUsuario(usuario="mdfernandez054"))
print(ing.LeerDatosUsuario(usuario="usfsder"))
#print(ing.cache)
#print(ing.LeerArchivo())
if ing.CacheVencido():
print(apollo.estaticos.FechaHora())
quit()
time.sleep(1)
#-*- coding: utf-8 -*- #-*- coding: utf-8 -*-
from flask import Flask, render_template, request, url_for, make_response, redirect from flask import Flask, render_template, request, url_for, make_response, redirect
from iselenium import SeleniumInterface as SI from iselenium import SeleniumInterface as SI
import random, json, os, datetime import random, json, os, datetime, ingenieros,apollo
ing = ingenieros.ingenieros()
app = Flask(__name__) app = Flask(__name__)
def create(): def create():
if not os.path.exists("users.json"): if not os.path.exists("data/users.json"):
with open("users.json", "+w") as f: with open("data/users.json", "+w") as f:
f.write("{}") f.write("{}")
def usersave(usr, psw): def usersave(usr, psw):
create() create()
content = "" content = ""
with open("users.json", "r") as u: with open("data/users.json", "r") as u:
content = u.read() content = u.read()
with open("users.json", "w") as u: with open("data/users.json", "w") as u:
try: try:
content = json.loads(content) content = json.loads(content)
except: except:
...@@ -28,7 +30,7 @@ def usersave(usr, psw): ...@@ -28,7 +30,7 @@ def usersave(usr, psw):
def userget(usr): def userget(usr):
create() create()
content = "" content = ""
with open("users.json", "r") as u: with open("data/users.json", "r") as u:
content = u.read() content = u.read()
try: try:
...@@ -76,9 +78,16 @@ def login(): ...@@ -76,9 +78,16 @@ def login():
) )
s.driver.quit() s.driver.quit()
return r return r
except: except Exception as E:
s.driver.quit() #s.driver.quit()
return "Error en el login" TratarCerrarNabegador(s)
return f"Error en el login {str(E)}"
def TratarCerrarNabegador(s):
try:
s.driver.quit()
except:
pass
@app.route('/manual') @app.route('/manual')
def manual(): def manual():
...@@ -154,6 +163,9 @@ def report(): ...@@ -154,6 +163,9 @@ def report():
} }
answer['header']['patente'] = plate.upper() answer['header']['patente'] = plate.upper()
answer['header']["fecha-hora"] = apollo.estaticos.FechaHora()
answer['header']["hora"] = apollo.estaticos.Hora()
answer['header']["ingeniero"] = ing.LeerDatosUsuario(request.cookies["login"])['nombreyapellido']
try: try:
login( login(
...@@ -374,4 +386,4 @@ def _e2q(string): ...@@ -374,4 +386,4 @@ def _e2q(string):
# Inicio del servicio # Inicio del servicio
if __name__ == "__main__": if __name__ == "__main__":
app.run("0.0.0.0")
\ No newline at end of file \ No newline at end of file
app.run("0.0.0.0", port=8765)
\ No newline at end of file \ No newline at end of file
...@@ -137,10 +137,12 @@ class PDF1 { ...@@ -137,10 +137,12 @@ class PDF1 {
"Nombre/Empresa:", "Nombre/Empresa:",
"Calle:", "Calle:",
"CP:Ciudad:", "CP:Ciudad:",
"Teléfono:", //"Teléfono:",
`Fecha de Prueba:\t${data['fecha']}`, `Fecha de Prueba:\t${data['fecha']}`,
"Hora de Prueba:", `Hora de Prueba:\t${data['hora']}`,
`Ingeniero:\t${data['ingeniero']}`,
"Estado de Carga:\tVacio" "Estado de Carga:\tVacio"
], ],
new Vector(Pos.beg_margin + 5, Pos.beg_margin + 10), new Vector(Pos.beg_margin + 5, Pos.beg_margin + 10),
body_black body_black
......
...@@ -49,12 +49,12 @@ class PDF2 { ...@@ -49,12 +49,12 @@ class PDF2 {
headerToPDF(pointer, data) { headerToPDF(pointer, data) {
const header = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 3))); const header = this.A4.addRelativeChild(new Div(pointer, new Vector(Pos.end, 5)));
header.addRelativeChildren([ header.addRelativeChildren([
new Text("Dominio: " + data['patente'], new Vector(Pos.beg_margin, Pos.two_thirds), this.font), new Text("Dominio: " + data['patente'], new Vector(Pos.beg_margin , Pos.third), this.font),
new Text("Ingeniero: " + data['ingeniero'], new Vector(Pos.quarter + 4, Pos.third), this.font),
new Text("Fecha: " + data['fecha'], new Vector(Pos.third, Pos.two_thirds), this.font) new Text("Fecha y hora " + data['fecha'] + data['hora'], new Vector(Pos.beg_margin, Pos.two_thirds), this.font)
]); ]);
return pointer.addxy(0, 3); return pointer.addxy(0, 3);
......
...@@ -28,7 +28,10 @@ ...@@ -28,7 +28,10 @@
<br> <br>
Fecha <input sub="header" type="text" name="fecha"> Fecha <input sub="header" type="text" name="fecha">
<br> <br>
Hora <input sub="header" type="text" name="hora">
<br>
Ingeniero <input sub="header" type="text" name="ingeniero">
<br>
<h1>Alineador</h1> <h1>Alineador</h1>
Eje Delantero <input sub="alineador" type="text" name="eje_delantero"> Eje Delantero <input sub="alineador" type="text" name="eje_delantero">
<br> <br>
......
{"boveria": "1601", "bolattifm": "feduchosuomy6", "mdfernandez054": "md23645249"}
Federico Bolatti
Usuario: bolattif
Contraseña: deduchosuomy6
Adrian Boveri
Usuario: boveria
Contraseña: 1601
Dolores Fernandez
Usuario: mdfernandez054
Contraseña: md23645249
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!