Adzacam commited on
Commit
f454f4d
·
1 Parent(s): 907ac73

Fix FK constraint on NLP audit log

Browse files
Files changed (1) hide show
  1. app.py +30 -30
app.py CHANGED
@@ -844,48 +844,48 @@ def batch_analyze_nlp(
844
  if record.asistencia < 70.0 or record.incumplimiento_tareas > 30.0:
845
  alertas.append("RIESGO_DESERCION_ALTA")
846
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
847
  if confianza_ia < 0.60:
848
  log = LogAuditoriaNlp(
849
  texto_original=nombre_resuelto,
850
  prediccion_beto=nombre_resuelto,
851
  confianza_ia=confianza_ia,
852
  correccion_humana="PENDIENTE",
853
- usuario_auditor=getattr(record, 'id_usuario', 1)
854
  )
855
  db.add(log)
856
  db.flush()
857
  requiere_revision = True
858
  else:
859
  # Insert into Constellation Schema
860
- id_tiempo_val = getattr(record, 'id_tiempo', 1)
861
- id_docente_val = getattr(record, 'id_docente', 1)
862
- id_modulo_val = getattr(record, 'id_modulo', 1)
863
- id_documento_val = getattr(record, 'id_documento', 1)
864
- id_usuario_val = getattr(record, 'id_usuario', 1)
865
-
866
- # Ensure dimensions exist using in-memory cache to prevent lock contention
867
- if id_docente_val not in existing_docentes:
868
- db.add(DimDocente(id_docente=id_docente_val, nombre_completo="Docente Generico", area_especialidad="Generico"))
869
- existing_docentes.add(id_docente_val)
870
-
871
- if id_modulo_val not in existing_modulos:
872
- db.add(DimModulo(id_modulo=id_modulo_val, nombre_modulo=getattr(record, 'modulo', "Modulo Generico") or "Modulo Generico", nombre_institucion=getattr(record, 'institucion', "GiraGroup") or "GiraGroup", programa=getattr(record, 'programa', "General") or "General"))
873
- existing_modulos.add(id_modulo_val)
874
-
875
- if id_tiempo_val not in existing_tiempos:
876
- db.add(DimTiempo(id_tiempo=id_tiempo_val, gestion=2026, semestre=1, mes="Mayo"))
877
- existing_tiempos.add(id_tiempo_val)
878
-
879
- if id_documento_val not in existing_docs:
880
- db.add(DimOrigenDocumental(id_documento=id_documento_val, tipo_documento="SHEET", nombre_archivo="carga_automatica"))
881
- existing_docs.add(id_documento_val)
882
-
883
- if id_usuario_val not in existing_users:
884
- db.add(Users(id=id_usuario_val, username=f"sistema_{id_usuario_val}", hashed_password="$placeholder$", role="admin"))
885
- existing_users.add(id_usuario_val)
886
-
887
- db.flush()
888
-
889
  if record.tipo_fuente == "FINANCE":
890
  fact = FactSituacionFinanciera(
891
  id_estudiante=estudiante.id_estudiante,
 
844
  if record.asistencia < 70.0 or record.incumplimiento_tareas > 30.0:
845
  alertas.append("RIESGO_DESERCION_ALTA")
846
 
847
+ # Ensure dimensions exist using in-memory cache to prevent lock contention
848
+ id_tiempo_val = getattr(record, 'id_tiempo', 1)
849
+ id_docente_val = getattr(record, 'id_docente', 1)
850
+ id_modulo_val = getattr(record, 'id_modulo', 1)
851
+ id_documento_val = getattr(record, 'id_documento', 1)
852
+ id_usuario_val = getattr(record, 'id_usuario', 1)
853
+
854
+ if id_docente_val not in existing_docentes:
855
+ db.add(DimDocente(id_docente=id_docente_val, nombre_completo="Docente Generico", area_especialidad="Generico"))
856
+ existing_docentes.add(id_docente_val)
857
+
858
+ if id_modulo_val not in existing_modulos:
859
+ db.add(DimModulo(id_modulo=id_modulo_val, nombre_modulo=getattr(record, 'modulo', "Modulo Generico") or "Modulo Generico", nombre_institucion=getattr(record, 'institucion', "GiraGroup") or "GiraGroup", programa=getattr(record, 'programa', "General") or "General"))
860
+ existing_modulos.add(id_modulo_val)
861
+
862
+ if id_tiempo_val not in existing_tiempos:
863
+ db.add(DimTiempo(id_tiempo=id_tiempo_val, gestion=2026, semestre=1, mes="Mayo"))
864
+ existing_tiempos.add(id_tiempo_val)
865
+
866
+ if id_documento_val not in existing_docs:
867
+ db.add(DimOrigenDocumental(id_documento=id_documento_val, tipo_documento="SHEET", nombre_archivo="carga_automatica"))
868
+ existing_docs.add(id_documento_val)
869
+
870
+ if id_usuario_val not in existing_users:
871
+ db.add(Users(id=id_usuario_val, username=f"sistema_{id_usuario_val}", hashed_password="$placeholder$", role="admin"))
872
+ existing_users.add(id_usuario_val)
873
+
874
+ db.flush()
875
+
876
  if confianza_ia < 0.60:
877
  log = LogAuditoriaNlp(
878
  texto_original=nombre_resuelto,
879
  prediccion_beto=nombre_resuelto,
880
  confianza_ia=confianza_ia,
881
  correccion_humana="PENDIENTE",
882
+ usuario_auditor=id_usuario_val
883
  )
884
  db.add(log)
885
  db.flush()
886
  requiere_revision = True
887
  else:
888
  # Insert into Constellation Schema
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
889
  if record.tipo_fuente == "FINANCE":
890
  fact = FactSituacionFinanciera(
891
  id_estudiante=estudiante.id_estudiante,