Demanda de evaluación (V)
Elaboración del documento de solicitud
Aunque con algunos cambios respecto lo expuesto en la [entrada anterior] y admitiendo que la formulación de ese script se puede mejorar sustancialmente, damos por concluida esa primera fase del proyecto y nos embarcamos en la segunda: la elaboración del documento de demanda.
Este documento se genera automáticamente a partir de los datos recogidos en la fase anterior y almacenados para su uso posterior en un archivo llamado datos.txt, contenido en el subdirectorio datos (1).
Opto por elaborar primeramente un documento en formato docx para que pueda se manipulado fácilmente por el profesorado una vez generado su contenido-base (2). Esto requiere trabajar con la biblioteca Python-docx (3). Una vez elaborado ese documento, propongo convertirlo a formato PDF para su tramitación segura (4).
Para el correcto desarrollo de esta fase del proceso se requiere acceder al archivo que contiene los datos (datos.txt) y manipularlo para obtener de él, de forma desglosada, toda la información. Dentro de este procedimiento es necesario convertir lo que son cadenas de caracteres en elementos de lista.
La segunda parte de la fase consiste en recuperar la información de los documentos que contienen los listados de DA, características EA y actuaciones MAD. Estos datos son necesarios para identificar los contenidos que son relevantes para el caso, ya que serán ellos los que consten en el documento (5)
Finalmente, la tercera parte de esta segunda fase es la creación del documento. Para ello necesitamos trabajar con Python-docx, aunque el objetivo es crear un documento simple, por lo que no me detendré en cuestiones de forma y estilo (6).
Paso a continuación a presentar este script.
#Importar bibliotecas
from docx import Document
from docx.shared import Inches
#CARGAR DATOS. Acceder al archivo datos.txt ------------------------------------------------
'''
Acceder al archivo, cargar la información y convertirla en lista.
'''
dir_archivo = 'datos/datos.txt'
archivo = open(dir_archivo,'r',encoding='utf-8')
texto=archivo.readlines()
archivo.close()
#Paso del contenido de cada línea a una variable
al = texto[0].rstrip()
da = texto[1].rstrip()
ea = texto[2].rstrip()
mad = texto[3].rstrip()
#Transformación de cada línea en una lista
datos_al = al.split('|')
datos_da = da.split('|')
datos_ea = ea.split('|')
datos_mad = mad.split('|')
#Extracción de información de datos_al
if datos_al[4] == 'EI':
etapa = 'Educación Infantil'
else:
etapa = 'Educación Primaria'
#Extracción de datos de las MAD (datos_mad)
'''
Requiere al acceso previo al documento que recoge estas medidas (ncc/mad.txt)
y la comparación de cada elemento de datos_mad con su contenido
'''
medidas_ap = []
mad_aplicadas = []
dir_datos = 'ncc/mad.txt'
archivo_mad = open(dir_datos,'r',encoding='utf-8')
medidas= archivo_mad.readlines()
for i in range(0,6,1):
if datos_mad[i] == 'S':
mad_aplicadas.append(medidas[i].strip())
#Extracción de datos de las DA y EA observadas (condicionado al nivel escolar)
#Acceso a los documentos
dir_da = ''
dir_ea = ''
lista_da = []
lista_ea =[]
val_nivel = int(al[-1])
if val_nivel == 1:
dir_da = 'ncc/da_n1.txt'
dir_ea = 'ncc/ea_a.txt'
elif val_nivel == 2:
dir_da = 'ncc/da_n2.txt'
dir_ea = 'ncc/ea_b.txt'
elif val_nivel == 3:
dir_da = 'ncc/da_n3.txt'
dir_ea = 'ncc/ea_a.txt'
archivo_da = open(dir_da,'r',encoding='utf-8')
lista_da = archivo_da.readlines()
archivo_ea = open(dir_ea,'r',encoding='utf-8')
lista_ea = archivo_ea.readlines()
# Listado de características DA realmente observadas
caract_da = []
n_da = len(datos_da)
for i in range(0,n_da,1):
if datos_da[i] == 'S':
caract_da.append(lista_da[i].strip())
#Listado de características EA realmente observadas
caract_ea = []
n_ea = len(datos_ea)
for i in range(0,n_ea,1):
if datos_ea[i] == 'S':
caract_ea.append(lista_ea[i].strip())
#CREAR INFORME. Datos de identificación en formato docx -------------------------------------
info_deriva = Document()
titulo = 'PROPUESTA DEL EQUIPO DOCENTE DE SOLICITUD DE EVALUACIÓN PSICOPEDAGÓGICA'
info_deriva.add_heading(titulo, level = 0) #Título del documento
centro_curso = (f'Centro {datos_al[2]} \nCurso escolar {datos_al[3]}') #Datos de identificación
info_deriva.add_heading(centro_curso , level = 2)
dat_per = (f'Alumno/a: {datos_al[0]} {datos_al[1]}')
dat_escol = (f'Etapa y curso: {etapa} ({datos_al[5]})\nTutor/a: {datos_al[7]}')
dat_tut = (f'Fecha de emisión: {datos_al[6]}')
info_deriva.add_heading(dat_per , level = 3)
info_deriva.add_heading(dat_escol , level = 3)
info_deriva.add_heading(dat_tut , level = 3)
presenta = info_deriva.add_paragraph(f'\nMediante este documento el Equipo Educativo solicita al SEO la evaluación psicopedagógica de {datos_al[0]} {datos_al[1]} al observar la presencia de las dificultades de aprendizaje que se indican.\n') #Presentación del documento
medidas = info_deriva.add_paragraph(f'Previamente se informa de las medidas ordinarias de atención a la diversidad adoptadas con anterioridad a la formulación de esta demanda.\n')
for mad in mad_aplicadas:
info_deriva.add_paragraph(mad, style='List Bullet')
#Salto de página para crear los listados de las DA y las características EA observadas
info_deriva.add_page_break()
#Escritura de listado DA realmente observadas
info_deriva.add_paragraph('Se enumeran a continuación las dificultades de aprendizaje observadas\n')
for da_ob in caract_da:
info_deriva.add_paragraph(da_ob, style='List Bullet')
#Escritura de las características (deficiencias) EA realmente observadas
info_deriva.add_paragraph('\nIgualmente se informa de las características del estilo de aprendizaje que se considera motivan la presente demanda de intervención del SEO:\n')
for ea_ob in caract_ea:
info_deriva.add_paragraph(ea_ob, style='List Bullet')
#Fin y cierre del documento docx
print('FIN DEL SCRIPT DE COMPOSICIÓN DEL DOCUMENTO DE DERIVACIÓN')
info_deriva.save('solicitud.docx') # Cierre del documento docx
Espero que la aclaración que precede al script y los comentarios que éste contiene te sirvan para comprender su lógica y las instrucciones empleadas.
Cuando el procedimiento esté completo aportaré la documentación necesaria, de momento te propongo que estudies este script y manipules sus partes para entender cómo funciona. Para ello te aporto los documentos necesarios, incluyendo un ficticio datos.txt. Están disponibles en este [archivo zip].
NOTAS
(1) No era la única opción disponible y en cierto sentido puede resultar menos eficiente que otras, pero me ha parecido adecuada para facilitar la diferenciación de los dos subprocesos y aligerar de extensión y complejidad el script en el que he estado trabajando hasta ahora.(2) Que es el que crea automáticamente el script anterior.(3) Ver subsección del mismo nombre en la sección [Textos](4) En su momento trataré con más detalle estas cuestiones de procedimiento. De momento decir que esa última manipulación se realiza mediante la utilidad de conversión disponible en Word y en Writer. Como ya sabemos, aunque se cree un documento docx, es posible trabajar con él mediante Writer, incluyendo la posibilidad de exportar a formato PDF.(5) Al contrario de la formulación de los soportes de las Administraciones educativas, los recursos de programación que empleamos y los script resultantes nos permiten identificar qué es lo relevante del caso y qué no lo es. No parece lógico renunciar a esta ventaja y reproducir fórmulas que son propias de modelos tipo formulario.(6) Aun queda una última parte: la conversión del documento .docx en .pdf; pero no la considero relevante para esta exposición, como tampoco lo es la posible modificación que pueda realizar el profesorado del documento creado, opción disponible precisamente por crear el documento en un formato editable y accesible para los procesadores de texto de uso más común.
Espero que la aclaración que precede al script y los comentarios que éste contiene te sirvan para comprender su lógica y las instrucciones empleadas.
Cuando el procedimiento esté completo aportaré la documentación necesaria, de momento te propongo que estudies este script y manipules sus partes para entender cómo funciona. Para ello te aporto los documentos necesarios, incluyendo un ficticio datos.txt. Están disponibles en este [archivo zip].

No hay comentarios:
Publicar un comentario
Comenta esta entrada