fmatituy/selectospromanager
0
1from .formatos.aro import METADATA as aro_meta, FORM_NAME as aro_name2from .formatos.jsa import METADATA as jsa_meta, FORM_NAME as jsa_name3from .formatos.excavacion import METADATA as excavacion_meta, FORM_NAME as excavacion_name4from .formatos.alturas import METADATA as alturas_meta, FORM_NAME as alturas_name5from .formatos.espacios_confinados import METADATA as confinados_meta, FORM_NAME as confinados_name6from .formatos.caliente import METADATA as caliente_meta, FORM_NAME as caliente_name7from .formatos.energias_cero import METADATA as energias_meta, FORM_NAME as energias_name8from .formatos.izaje import METADATA as izaje_meta, FORM_NAME as izaje_name9from .formatos.limpieza import METADATA as limpieza_meta, FORM_NAME as limpieza_name10 11ALL_METADATA = {12 aro_name: aro_meta,13 jsa_name: jsa_meta,14 excavacion_name: excavacion_meta,15 alturas_name: alturas_meta,16 confinados_name: confinados_meta,17 caliente_name: caliente_meta,18 energias_name: energias_meta,19 izaje_name: izaje_meta,20 limpieza_name: limpieza_meta21}22 23def get_type_icon(tipo):24 mapping = {25 'Excavación y Demolición': 'foundation', 26 'Alturas': 'stairs', 27 'Espacios Confinados': 'settings_overscan', 28 'Trabajo en Caliente': 'whatshot', 29 'Energías Cero': 'electric_bolt', 30 'Mecánico / Izaje': 'cranes', 31 'Limpieza y Desinfección': 'clean_hands',32 'ARO': 'fact_check',33 'JSA': 'assignment'34 }35 return mapping.get(tipo, 'menu_book')36 37def get_nicer_label(key):38 key_low = key.lower().strip()39 if key_low.startswith('trab'):40 try:41 parts = key_low[4:].split('_', 1)42 if len(parts) == 2:43 num, suffix = parts44 map_s = {45 'nombre': 'NOMBRE Y APELLIDO', 46 'cc': 'CEDULA', 47 'firma': 'FIRMA', 48 'vig_exa': 'VIGENCIA EXAMENES', 49 'vig_cer': 'VIGENCIA CERTIFICACION', 50 'sys': 'TENSION ARTERIAL (SYS)', 51 'dia': 'TENSION ARTERIAL (DIA)'52 }53 return f"TRABAJADOR {num}: {map_s.get(suffix, suffix.upper())}"54 except: pass55 56 labels = {57 "empresa": "Empresa Ejecutora / Aliada", "nit_empresa": "NIT Empresa", "fecha": "Fecha de Diligenciamiento",58 "responsable": "Responsable Técnico de la Labor", "hora_inicio": "Hora de Inicio (Labor)", "hora_fin": "Hora de Finalización",59 "cliente": "Cliente / Mandante del Proyecto", "lugar": "Ubicación Geográfica / Área Específica", "descripcion_actividad": "DESCRIPCIÓN DE ACTIVIDAD",60 "sup_tec_nombre": "Coordinador de Trabajo Seguro en Altura: Nombre", 61 "sup_tec_cc": "Coordinador de Trabajo Seguro en Altura: C.C.", 62 "sup_tec_firma": "Coordinador de Trabajo Seguro en Altura: Firma",63 "sup_sst_nombre": "Supervisor de seguridad en el trabajo: Nombre", 64 "sup_sst_cc": "Supervisor de seguridad en el trabajo: C.C.", 65 "sup_sst_licencia": "Licencia SST No.", 66 "sup_sst_firma": "Supervisor de seguridad en el trabajo: Firma",67 68 # Gases y Atmósfera69 "g_oxg": "Nivel de Oxígeno (O2)", "g_exc": "Gases Explosivos (LEL)", "g_tox": "Gases Tóxicos", "g_h2s": "Ácido Sulfhídrico (H2S)", "g_mon": "Monóxido de Carbono (CO)",70 "v_oxg": "Valor Medido O2 (%)", "v_lel": "Valor Medido LEL (%)", "v_h2s": "Valor Medido H2S (ppm)", "v_co": "Valor Medido CO (ppm)",71 72 # LOTO73 "m_p_ide": "Identificación de fuentes de energía", "m_p_not": "Notificación a personal afectado", "m_p_apa": "Apagado del equipo / maquinaria", 74 "m_p_ais": "Aislamiento de fuentes de energía", "m_p_blo": "Bloqueo y Etiquetado (Lockout)", "m_p_lib": "Liberación de energía residual", "m_p_ver": "Verificación de Energía Cero",75 "e_blo": "Candado de seguridad (Rojo/Personal)", "e_eti": "Etiqueta 'PELIGRO NO OPERAR'", "e_can": "Caja de bloqueo grupal", "e_pin": "Pinza de bloqueo múltiple",76 77 # Izaje78 "c_pes": "Peso de la Carga (Toneladas/Kg)", "c_cap": "Capacidad Máxima del Equipo", "c_rad": "Radio de Giro / Alcance", "c_alt": "Altura Máxima de Izaje", "c_ang": "Ángulo de Pluma",79 "a_esl": "Eslingas de cadena / lona certificadas", "a_gan": "Ganchos con seguro de pestillo", "a_gri": "Grilletes en buen estado", "a_pol": "Polipastos / Tecle verificado",80 "m_est_ter": "Estabilidad del terreno certificada", "m_car_tab": "Tabla de carga presente y leída", "m_viento": "Anemómetro funcional (Viento < 30km/h)",81 82 # Químicos83 "q_nom": "Nombre del Agente Químico", "q_con": "Concentración / Dilución", "q_tim": "Tiempo de Actuación (Min)", "q_msds": "Ficha de Seguridad (MSDS) en sitio",84 "e_gua_n": "Guantes de Nitrilo / Neopreno", "e_del_p": "Delantal de PVC / Plástico", "e_bot_p": "Botas de PVC con puntera",85 86 # Alturas87 "si_ins_arn": "Arnés libre de cortes / quemaduras", "si_ins_lin": "Eslingas con absorbedor intacto", "si_ins_mos": "Mosquetones cierran automáticamente", "si_ins_pun": "Punto de anclaje certificado (>5000lb)",88 "m_pla_res": "Plan de Rescate específico en sitio", "m_cert_med": "Certificado médico de aptitud vigente",89 90 # Riesgos Generales91 "r_asf": "Asfixia / Atmósfera Peligrosa", "r_atr": "Atrapamientos / Derrumbes", "r_atp": "Ataque de Animales",92 "r_cdn": "Caída a Diferente Nivel", "r_cdo": "Caída de Objetos", "r_fan": "Fallo de Anclajes",93 "r_cea": "Colapso de Estructuras", "r_str": "Síndrome de Arnés", "r_mat": "Proyección de Materiales",94 "r_ccl": "Condiciones Climáticas", "r_inc": "Incendio / Explosión", "r_exp": "Exposición Tóxica",95 "r_que": "Quemaduras", "r_rad": "Radiación", "r_elc": "Contacto Eléctrico", "r_arc": "Arco Eléctrico",96 97 # EPP98 "e_cas": "Casco Dieléctrico / Barbuquejo", "e_arx": "Arnés Multipropósito", "e_lhz": "Línea de Vida Horizontal", 99 "e_lvt": "Línea de Vida Vertical", "e_tie": "Tie-Off Certificado", "e_gos": "Gafas de Seguridad", 100 "e_guv": "Guantes de Protección", "e_fre": "Freno de Cuerda / Bloqueador", "e_tim": "Tie-Off de Impacto",101 102 # Supervision TSA (4 sets)103 "sup_tsa_h1": "SUPERVISION DE TRABAJOS (TSA): HORA 1",104 "sup_tsa_f1": "SUPERVISION DE TRABAJOS (TSA): FIRMA 1",105 "sup_tsa_h2": "SUPERVISION DE TRABAJOS (TSA): HORA 2",106 "sup_tsa_f2": "SUPERVISION DE TRABAJOS (TSA): FIRMA 2",107 "sup_tsa_h3": "SUPERVISION DE TRABAJOS (TSA): HORA 3",108 "sup_tsa_f3": "SUPERVISION DE TRABAJOS (TSA): FIRMA 3",109 "sup_tsa_h4": "SUPERVISION DE TRABAJOS (TSA): HORA 4",110 "sup_tsa_f4": "SUPERVISION DE TRABAJOS (TSA): FIRMA 4",111 "e_mca": "Máscara Cara Completa (Full Face)", "e_scb": "Equipo de Respiración Autónomo", "e_mva": "Mascarilla con Válvula", 112 "e_arn": "Arnés de Espacios Confinados", "e_tri": "Trípode de Rescate", "e_win": "Winche de Recuperación",113 114 # Medidas115 "m_aro": "ARO Diligenciado", "m_vig": "Vigía de Seguridad", "m_aut": "Personal Certificado", 116 "m_ins": "Inspección de Herramientas", "m_tar": "Tarjeta / LOTO", "m_con": "Delimitación Conos",117 "m_snl": "Señalización Visible", "m_met": "Método de Trabajo Seguro", "m_pla": "Plan Emergencias",118 "m_eme": "Botiquín / Camilla en sitio", "m_ext": "Extintor PQS/CO2 cargado",119 120 # Nuevos Campos Alturas121 "altura_trabajo": "Altura aproximada a la cual se realizará el trabajo (metros)",122 "vig_exa": "Vigencia Exámenes", "vig_cer": "Vigencia Certificación", "ten_art": "Tensión Arterial",123 "e_obs": "Observaciones Adicionales de Seguridad",124 "sup_aux_nombre": "Supervisor técnico o Auxiliar Encargado: Nombre", 125 "sup_aux_cc": "Supervisor técnico o Auxiliar Encargado: C.C.", 126 "sup_aux_firma": "Supervisor técnico o Auxiliar Encargado: Firma",127 "sup_tec_hora": "Hora Coordinación", "sup_sst_hora": "Hora Supervisión SST", "sup_aux_hora": "Hora Auxiliar",128 "r_env_aire": "Contaminación del Aire", "r_env_suelo": "Contaminación del Suelo", "r_env_flora": "Afectación de la Flora", "r_env_fauna": "Afectación de la Fauna", "r_env_otro": "Otro Impacto Ambiental ¿Cuál?",129 "r_ind_asf": "Asfixia", "r_ind_atr": "Atrapamiento", "r_ind_atp": "Atropellamiento", "r_ind_cdn": "Caída de diferente nivel", "r_ind_cmn": "Caída al mismo nivel", "r_ind_tem": "Cambios bruscos de temperatura", "r_ind_cor": "Cortaduras y punzamientos", "r_ind_der": "Derrames, fugas",130 "r_ind_ele": "Electrocución", "r_ind_exp": "Explosión, Implosión", "r_ind_inf": "Incendio por inflamabilidad", "r_ind_com": "Incendio por compactibilidad", "r_ind_int": "Intoxicación", "r_ind_irr": "Irritación", "r_ind_que": "Quemaduras químicas", "r_ind_otro": "Otro Riesgo Industrial ¿Cuál?",131 "epp_cal": "Calzado de seguridad industrial", "epp_car": "Careta de pulir", "epp_cas": "Casco de seguridad con barbuquejo", "epp_gat": "Gafas de seguridad transparente", "epp_gac": "Gafas de seguridad claras", "epp_gni": "Guantes de nitrilo tipo hilo", "epp_gca": "Guantes de caucho", "epp_kde": "Kit de derrames",132 "epp_mhm": "Mascarilla para humo metálico", "epp_mfp": "Mascarilla con filtro para polvo", "epp_mfv": "Mascarilla con filtro para vapores", "epp_mon": "Monogafas", "epp_pai": "Protección auditiva de inserción", "epp_pac": "Protección auditiva tipo copa", "epp_tim": "Traje impermeable", "epp_tti": "Traje Tychem", "epp_tty": "Traje Tyvek",133 "epp_arx": "Arnés en X de cuerpo entero", "epp_epo": "Eslinga de posicionamiento", "epp_ere": "Eslinga de restricción", "epp_esy": "Eslinga en Y con absorbedor", "epp_lhp": "Línea de vida horizontal portátil", "epp_lvp": "Línea de vida vertical portátil", "epp_lhf": "Línea de vida horizontal fija", "epp_lvf": "Línea de vida vertical fija", "epp_mos": "Mosquetón",134 "epp_pol": "Sistema de poleas 3 a 1 o 4 a 1", "epp_tio": "Tie-off",135 "mp_ans": "¿Se realizó un análisis de seguridad y quedó escrito?", 136 "mp_cer": "¿Las personas que realizan la tarea se encuentran certificados en nivel operativo avanzado para el trabajo seguro en alturas?", 137 "mp_ins": "¿Se ha realizado una inspección previa al lugar donde se va a ejecutar el trabajo?", 138 "mp_tec": "Si el trabajo se hace sobre techo ¿se conoce el material?¿se ha verificado su estado (tejas húmedas, rotas o cristalizadas)?", 139 "mp_lvf": "Si el trabajo se hace sobre techo ¿se verificó si hay linea de vida fija?", 140 "mp_fac": "¿Se ha evaluado el factor de caída?", 141 "mp_pla": "¿Se ha planeado con anticipación los trabajos a ejecutar notificando a los ingenieros, supervisores y trabajadores?", 142 "mp_vig": "¿Se ha asignado por lo menos una persona que conozca los procedimientos de emergencia para vigilar y auxiliar los trabajadores?", 143 "mp_eme": "¿Se han identificado, ubicado los equipos de emergencia y salidas de evacuación?", 144 "mp_snl": "¿Se ha colocado la señalización adecuada en el área para evitar que personal que está trabajando o ajeno al trabajo, sufra o provoque un incidente?", 145 "mp_cra": "¿Los trabajadores están adecuadamente certificados para realizar trabajos en altura?", 146 "mp_col": "Colocar medidas colectivas de prevención (cinta, avisos de precaución, barandas, controles de acceso o inspector de seguridad)", 147 "mp_dia": "¿Se revisa diariamente el estado de los equipos y elementos de proteccion?", 148 "mp_paf": "¿Los puntos de anclaje fijos son utilizados individualmente (1 persona por anclaje) son certificados?", 149 "mp_pam": "Los puntos de anclaje móviles (líneas de vidas horizontales y verticales) se encuentran en buen estado", 150 "mp_arn": "¿Arnés y eslingas se encuentran en buen estado? ¿se inspecciona los EPP´s antes de ejecutar la tarea?", 151 "mp_lot": "Desenergizar, bloquear y etiquetar todas las fuentes de energía que pueden pasar por el lugar (eléctrica, hidráulica, mecánica, química, etc.). Aplicar loto", 152 "mp_ase": "Los equipos y elementos usados en altura deben estar asegurados para evitar su caída (tener precaución con cuerdas mal ubicadas)",153 "eq_and": "Andamio Multidireccional", "eq_ele": "Elevador Unipersonal", "eq_man": "Manlift o Brazo Articulado", "eq_tij": "Elevador en Tijera",154 "eq_ext": "Escalera de Extensión", "eq_avi": "Escalera Tipo Avión", "eq_gat": "Escalera Tipo Gato", "eq_eti": "Escalera Tipo Tijera"155 }156 return labels.get(key.lower().strip(), key.replace("_", " ").title())157 158# Note: Aliases will be handled in lookup logic if needed to avoid redundant 'missing' messages159 160 