Extraer tablas de pdf: concurso de traslados

Revisado 24 mayo 2018

Versión TL;DR

Intento hacer un post friki sobre cómo extraer datos de un pdf que no está orientado a que se saquen datos, de modo que se puedan manipular. Uso como ejemplo el concurso de traslados: en 2018 concurso con baremo la primera vez, y el pdf son más de 1500 páginas de tablas de datos. Además hay más listados en pdf: vacantes provisionales, asignación provisional, vacantes definitivas...
Al final el post es tanto sobre concurso que sobre cómo sacar datos; en mi primer concurso son baremo me asignan y reviso muchas cosas.

Detalles

Índice
  • Contexto de por qué gastar tiempo en esto 
  • Concurso 2017-2018
  • Listado provisional baremo
    • La parte friki: procesado de pdf con listado para extraer datos
    • Otras variantes procesado listado
  • Vacantes provisionales 
  • Asignación provisional
    • Concepto de asignación forzosa
  • Vacantes definitivas
  • Asignación definitiva

Contexto de por qué gastar tiempo en esto

Se suele conocer poco cómo funciona el proceso de tener un destino definitivo como docente: mucha gente habla de "aprobar / sacar plaza en las oposiciones", pero no es correcto. En unas oposiciones uno puede puede aprobar y no ser seleccionado, pero además se puede ser seleccionado y estar años en expectativa de destino, o se puede tener plaza (un destino definitivo) vía destino forzoso. El primer destino debe ser en la comunidad autónoma donde uno fue seleccionado, y solamente años después se puede solicitar traslado a otra comunidad.

Una vez seleccionado existe un proceso que es el concurso de traslados, en el que los que no tienen destino definitivo lo solicitan, y los que lo tienen pueden solicitar cambiar.
Hay que baremar para ordenar peticiones y ordenar plazas, y es un tema complejo.
En concurso 2017 concursé como funcionario en prácticas, en ese caso por normativa con baremo 0: no gasté tiempo en ordenar datos porque no tenía posibilidades de destino forzoso al no tener habilitación bilingüe (conozco dos casos en Física y Química de Madrid que, estando el listado de seleccionados de 2016 por detrás de mi sí tuvieron destino forzoso debido a la habilitación, ya que para los no habilitados en Física y Química en Madrid hay gente que tarda más de 10 años en tener el primer destino definitivo.

Concurso 2017-2018

En el concurso 2018 sí concurso con baremo

Enlace al trámite
Concurso de traslados de ámbito autonómico para los Cuerpos de Maestros, Catedráticos y Profesores de Enseñanza Secundaria, Régimen Especial y FP (2017/2018)
Enlace a la página en madrid.org
Concursos de Traslados de los Cuerpos de Secundaria, FP y RE . Exposición de la lista provisional de admitidos y excluidos y baremo provisional.

Listado provisional baremo

Se publican listados de baremo provisional el 9 febrero 2018

El Listado provisional de admitidos y baremo es un pdf de 1521 páginas, donde está ordenado alfabéticamente.

Hay listados más voluminosos baremo histórico es un pdf de 3073 páginas.

La duda inmediata es ¿en qué posición estoy ordenado por puntuación? ¿Si asignan x destinos, me llegará la asignación?

Ordenar a mano sería una locura, así que intento hacerlo automáticamente; si el formato del fichero se mantiene, valdrá para el baremo definitivo.
Además me lo ha pedido una compañera, y espero que sea útil para más gente; me limito a Física y Química pero esto vale para otras especialidades.

Uno puede pensar simplemente en ordenar, pero hay más cosas que no están bajo control: las plazas "de resultas": los concursantes con plaza definitiva a los que sí se asigne nuevo destino crean un hueco en la plaza desde la que salen, y esa no ha aparecido como vacante. 

La parte friki: procesado de pdf con listado para extraer datos

Yo uso solamente software libre: con Adobe PDF profesional o algo de pago igual se puede pero ni me lo planteo ni lo documento. 

Lo primero que hago es manejar un pdf más pequeño limitado a Física y Química, que son las 68 páginas que van de 461 a 528 incluidas.

Primera herramienta imprescindible para trabajar con pdf, que ya tenía instalada (linux): pdftk
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Partiendo del fichero descargado como Listados.pdf obtengo un fichero ListadosFQ.pdf
pdftk Listados.pdf cat 461-528 output ListadosFQ.pdf

Ahora hay que sacar los datos:
Una opción para sacar en texto del propio pdftk es pdftotext --layout

Un ejemplo¿Cómo sacar más de 2.5 puntos en el punto 2.2 del baremo?
El pdf aunque no está pensado para ello se puede tratar y pasar a hoja de cálculo y luego echar cuentas. Una buena utilidad en linux es pdftotext con la opción -layout
Un ejemplo de comando que he utilizado

pdftotext -x 455 -y 165 -H 800 -W 40 -layout 2014-07-18-BaremoDefinitivo.pdf

Tras eso se tiene un fichero de texto plano que se ordena e importa, pero ... eso vale teniendo una línea por registro; y en este fichero cada registro son varias líneas.

Buscando referencias
http://okfnlabs.org/blog/2016/04/19/pdf-tools-extract-text-and-data-from-pdfs.html

Pruebo la primera
http://tabula.technology/

Descargada, desde linux se ejecuta como
java -jar tabula.jar
Tras arrancar con un navegador se accede al servicio local
http://127.0.0.1:8080

Se elige gráficamente la zona que es una tabla, y se puede marcar que esa misma zona se repite en todas las páginas con la opción ""Repeat this Selection"

Pruebo primero una página con "preview & export extracted data": ok, extrae la tabla y la visualiza, pero repite estructura de dos líneas por registro, lo que no me vale.

Pruebo a marcar de uno en uno los 5 campos principales: nombre, año, puntuación, modalidad y total.



Es lento, pero al final visualiza los registros en interfaz web.
Doy a generar csv y lo genera, pero es todo un csv: una línea por campo, sin separación de registros.

>>Ojo: el orden en el que se marcan gráficamente los campos importa de cara a los datos. El botón "Repeat this Selection" junto a cada selección estorba para marcar selecciones si se hace de izquierda a derecha: las hago de derecha a izquierda, pero en todas en mismo orden.


Quiero 5 campos por registro, pero no hay un separador de registros, todo está separado por comas.

Usando vi para ojear el fichero veo un carácter raro al final.
Miro el fichero con od -cx y veo que las líneas terminan en \r\n: retorno de carro y salto de línea. Podría convertir con dos2unix pero aprovecho el \r.

Necesito insertar un carácter separador cada 5 líneas.
https://stackoverflow.com/questions/6870111/sed-insert-a-string-after-every-n-lines

Comienzo con

sed 's/\r/;/g' < tabula-ListadosFQ.csv > tabula-ListadosFQ-v2.csv

Con ello me quito los \r y tengo un separador real
Ahora añado para preparar el salto de línea adicional

sed '0~5 s/$/salto/g' < tabula-ListadosFQ-v2.csv > tabula-ListadosFQ-v3.csv

Ahora quito todos los saltos de línea
https://stackoverflow.com/questions/1251999/how-can-i-replace-a-newline-n-using-sed

sed ':a;N;$!ba;s/\n/ /g' tabula-ListadosFQ-v3.csv > tabula-ListadosFQ-v4.csv 

Y por último pongo un salto de línea por registro
sed 's/salto/\n/g' < tabula-ListadosFQ-v4.csv > tabula-ListadosFQ-v5.csv


Tras eso importo en LibreOffice calc sin problema, usando UTF-8 para que tome bien la letra Ñ.

Ordeno por modalidad y luego por puntuación total y año: desconozco cómo se usa la puntuación (que es la nota de concurso-oposición) en concurso de traslados.

Lo comparto aquí 2018-02-09-CGT-Madrid-ListadosFQ.ods
Y también en versión de hoja de cálculo Google

Resumen:
88 modalidad A
9 modalidad E
3 modalidad I
169 modalidad J (hay otro J que es un error, es una jubilación)
Total: 269 participantes


Aclaración sobre significado modalidad  (lo que aparece en solicitud)
A.- Como propietario definitivo 
B.- Excedente voluntario

Obligados a participar por no tener destino a causa de:
C.- Resolución firme de expediente disciplinario
D.- Cumplimiento de sentencia o resolución de recurso
E.- Supresión de puesto de trabajo

F.- Reingreso con destino provisional
G.- Excedencia forzosa
H.- Suspensión de funciones, una vez cumplida la sanción
I.- Causas análogas que impliquen pérdida del destino definitivo
J.- Funcionario de carrera que no ha obtenido su primer destino definitivo.
K.- Seleccionado en un proceso selectivo (funcionario en prácticas/exento de prácticas), que aún no ha sido nombrado funcionario de carrera.


En 2017 participé con modalidad K, en 2018 con modalidad J.

Otras variantes procesado listado

Cortesía de Jorge Aguilera    (¡Gracias!)
https://twitter.com/jagedn/status/964403849946480641
https://gitlab.com/snippets/1699189

Vacantes provisionales

El 20 febrero 2018 se publican Concursos de Traslados de los Cuerpos de Secundaria, FP y RE . Vacantes provisionales.

El fichero de vacantes secundaria (pdf de 89 páginas) tiene 2 columnas, planteo buscar las de Física y Química
Me bastaría buscar FISICA y QUIMICA pero pongo IES para localizar de qué centro son mirando el fichero.
Primera columna
pdftotext -x 20 -y 80 -H 620 -W 250 -layout 2018-02-20-ANEXO.pdf 
egrep "IES|FISICA Y QUIMICA" 2018-02-20-ANEXO.txt > 2018-02-20-ANEXO-FQ.txt

Segunda columna, lo uno a resultado primera
pdftotext -x 280 -y 80 -H 620 -W 250 -layout 2018-02-20-ANEXO.pdf
egrep "IES|FISICA Y QUIMICA" 2018-02-20-ANEXO.txt >> 2018-02-20-ANEXO-FQ.txt

Veo que aparece carácter extraño, que elimino
sed 's/\f//g' < 2018-02-20-ANEXO-FQ.txt > 2018-02-20-ANEXO-FQv2.txt

Tras eso importo en libreoffice con ancho fijo
Código centro hasta 8 / nombre hasta 40 / vacantes bilingües hasta 51 / resto
Algunos fallos:
1. Nombres muy largos:
Página 14 SIES SECCION DEL IES HUMANES EN CUBAS DE LA SAGR
Página 25 SIES SECCION DEL IES AFRICA EN MORALEJA DE ENMED
Página 35 IES CENTRO DE CAPACITACION AGRA
Página 41 SIES SECCION DEL IES CARPE DIEM EN COLMENAR OR
Página 44 SIES SECCION DEL IES ANSELMO LORENZO EN MORATA TA 

2. Algunos números de vacantes descolocados
Página 85 IES SAN ISIDRO

Tras limpiar los fallos, es un fichero de 823 líneas
Tras algunos errores, comparto la tabla aquí 2018-02-20-Anexo-FQv2.ods
Blg=0 (no bilingüe): 78 vacantes
Blg=1 (bilingüe francés): 1 vacante
Blg=2 (bilingüe inglés): 17 vacantes
Blg=3 (bilingüe alemán): 1 vacante
Total: 97 vacantes

Asignación provisional

El 14 marzo se publica nuevo listado
Listado provisional de participantes que han obtenido plaza, por puntuación.

Es un pdf de 136 páginas: comienzo quedándome con las páginas asociadas a Física y Química 0007
Comienza en página 48 (tiene parte que son de otra especialidad, 006 Matemáticas) y hasta página 57 (completa, página 58 ya es de 008 Biología)
Podría pensar en coger páginas 48 a 57 y luego descartar, pero el formato de la página 48 es distingo al tener la línea gris "Especialidad: 590007, FÍSICA Y QUÍMICA", y hay que hacerlo en dos tramos. La página 48 solamente tiene 3 registros de FQ, que casi se hacen antes a mano.

pdftk CONCEDIDOS_POR_PUNTUACION.pdf cat 49-57 output CONCEDIDOS_POR_PUNTUACIONFQ.pdf

Veo que hay nueva versión de tabula, que permite guaradar las elecciones, muy interesante y útil

Latest Version: Tabula 1.2.0
February 27, 2018

Tabula 1.2.0 contains an update to our processing backend. It is now also possible to save selections.

Tras descargar y ejecutar, marco
Marco tres campos (de derecha a izquierda y de abajo a arriba para poder seleccionar)
  • Blg
  • Destino actual
  • Nombre
Se podrían añadir más: Tipo Petición Adjud.: (DPL ó FORZOSO)

Indico repetir selección, y lo intento guardar, pero la opción "Save selections as template" no parece funcionar aunque indica "saved!" a veces, ni me aparece para recargar.
Como indica eso veo que sí genera un fichero

./tabula/templates/2e3ecdafe8ea11e41647a5a032b3f0fcd9e4b565.tabula-template.json



Exporto a csv y repito el proceso

sed 's/\r/;/g' < tabula-CONCEDIDOS_POR_PUNTUACIONFQ.csv > tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v2.csv

sed '0~3 s/$/salto/g' < tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v2.csv > tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v3.csv

sed ':a;N;$!ba;s/\n/ /g' tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v3.csv > tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v4.csv

sed 's/salto/\n/g' < tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v4.csv > tabula-CONCEDIDOS_POR_PUNTUACIONFQ-v5.csv

Pero tengo errores, se me repiten filas,  no sale todo en orden ... tengo que revisar la selección. Son muchos campos juntos, el hueco emergente para marcar seleccionar en todas las páginas ocupa mucho, y hacer zoom con ctrl+ no ajusta bien ampliación y selección marcada.
Reviso fichero -v2 que es donde mejor se ven para corregir y repito
Al ser 15 por página y 9 páginas son 135.
Tras añadir los 3 que faltaban a mano son 138.
Le añado una columna con el número y ordeno alfabéticamente.
Lo añado como hoja en la hoja de cálculo inicial de solicitantes, y combino

Combino datos (uso INDEX y MATCH porque con VLOOKUP no me va bien)


Comparto la hoja de cálculo asociada
2018-03-19-CGT-Madrid-ListadosFQ.ods

De manera resumida y aproximada en lo que me interesa, se asignan destinos a los 60 J (expectativa) primeros

Un resumen

A Con plaza definitiva, E suprimidos, I pérdida destino, J expectativa
Blg=0 (no bilingües) 44 A, 2 E, 2 I, 64 J
Blg=2 (bilingüe inglés), 6A, 18 J
Blg=3 (bilingüe alemán), 1 J

Estos suman 137, y eran 138 asignados.
Mirando, es MERIDA VARGAS, LARA     IES JUAN DE MAIRENA - PSAJE LA VIÑA 3 - 28701, que es un caso forzoso de 2016.

Se está adjudicando de manera forzosa una plaza a una persona que que al estar en expectativa tiene que concursar de manera forzosa, pero que no estaba en el listado provisional de admitidos.

Se pueden hacer más cosas:
-Combinar con vacantes, confirmar que se han asignado las ofertadas (eran 97) y ver lo que ha surgido "de resultas"

Concepto de asignación forzosa

Hay algunas modalidades que son forzosas; yo entiendo asignación forzosa como "asignación a un centro no solicitado por un participantes de participación forzosa"

Vacantes definitivas

20 abril se publica nuevo listado (pdf de 88 páginas)
Anexo III a: Relación de vacantes definitivas. Institutos de Enseñanza Secundaria, Secciones y otros Centros (20/04/2018)
Detalle curioso: se publica pdf día 20 abril, pero pdf internamente indica 13 abril
Título: NBF8225_20180413_121544_84.pdf
Autor:  Oracle Reports
Fecha de creación: 13/4/2018, 14:15:55
Fecha de modificación: 13/4/2018, 14:15:55
Creador: Oracle9iAS Reports Services 


Repito el proceso, similar a lo realizado con vacantes provisionales

pdftotext -x 20 -y 80 -H 620 -W 250 -layout 2018-04-20-ANEXO.pdf 
egrep "IES|FISICA Y QUIMICA" 2018-04-20-ANEXO.txt > 2018-04-20-ANEXO-FQ.txt

Segunda columna, lo uno a resultado primera
pdftotext -x 280 -y 80 -H 620 -W 250 -layout 2018-04-20-ANEXO.pdf egrep "IES|FISICA Y QUIMICA" 2018-04-20-ANEXO.txt >> 2018-04-20-ANEXO-FQ.txt

Veo que aparece carácter extraño, que elimino
sed 's/\f//g' < 2018-04-20-ANEXO-FQ.txt > 2018-04-20-ANEXO-FQv2.txt

Al importar añado columna adicional con número de fila, para recuperar orden original que tenía al importar y poder asociar cada vacante a su centro.
Comparto la nueva tabla aquí:
2018-04-20-Anexo-FQv2.ods
Blg=0 (no bilingüe): 139 vacantes (frente a 78 en listado provisional)
Blg=1 (bilingüe francés): 1 vacante (lo mismo que en listado provisional)
Blg=2 (bilingüe inglés): 23 vacantes (frente a 17 en listado provisional)
Blg=3 (bilingüe alemán): 1 vacante (lo mismo que en listado provisional)
Total: 164 vacantes (frente a 97 en listado provisional)

Salen en definitiva 164-97=67 vacantes más que en provisionales (67/97=69% más)
¿a qué tipo de gestor le varían un 69% las vacantes entre listados febrero y abril? 

10 mayo 2018
Se publica modificación vacantes definitivas
RESOLUCIÓN de 27 de abril de 2018, de la Dirección General de Recursos Humanos, de la Consejería de Educación e Investigación, por la que se modificanlas vacantes definitivas en la Resolución de 13 de abril de 2018, de la Dirección General de Recursos Humanos, por la que se elevan a definitivas las vacantes delos centros docentes de la Consejería de Educación e Investigación.
Son 3 páginas, otro formato: en Física y Química afecta a 2 centros: en total 3+1 vacantes pasan a 1+0

Baremo y asignación definitiva

11 mayo 2018
Se publican muchos listados, entre ellos

Adjudicación definitiva
Listado de participantes que han obtenido plaza, por puntuación.
Pdf de 172 páginas

Echo un vistazo manualmente:

Se asigna en Física y Química sin ser bilingüe hasta ARANAZ MARTIN, FERNANDO, con Puntos: total: 2,3664.Según listado que hice en post en febrero en versión de hoja de cálculo Google esa persona estaba en la posición 163 de expectativa con esa puntuación.
Pero veo que hay personas cuya puntuación ha cambiado (habrán reclamado baremación). Ejemplos:
--GUISADO DIAZ, PATRICIA en listado anterior tenía 6,833 y estaba en posición 137, pero se le asigna no bilingüe con 7,833 (mi misma puntuación, y también FORZOSO), por detrás de mi al tener menos puntos/nota de oposición.
--CABALLERO GOMEZ, LAURA en listado anterior tenía 7,6664 y estaba en posición 130, pero se le asigna no bilingüe con 10,833 por delante de mi.
--GARCIA ROMERO, MARIA DEL PILA en listado anterior tenía 2,4664 y ahora tiene ( listado de participantes "ALFABÉTICO DE PARTICIPANTES") 5,5664, pero no se le asigna mientras que sí a ARANAZ MARRTIN, FERNANDO con menos puntuación 2,3664

Ideas:
Quiero entender cómo funciona, documentar

1. Revisar por qué hay gente que no ha sido adjudicada estando en expectativa según Listado de participantes que no han obtenido destino, por especialidad.
Por ejemplo, RODRIGUEZ RODRIGUEZ, ISRAEL, con puntuación muy cercana a la mía 7,7996 no ha sido asignado, pero sí no bilingüe a ARANAZ MARTIN, FERNANDO, con 2,3664.
Cojo páginas 17 y 18
pdftk ParticipantesSinDestinosPorEspecialidad.pdf cat 17-18 output ParticipantesSinDestinosPorEspecialidadFQ.pdf 
pdftotext -layout ParticipantesSinDestinosPorEspecialidadFQ.pdf
Luego borro a mano e importo a hoja de cálculo, y veo que casi todos son modalidad J (expectativa) salvo:
-1 persona con modalidad K (de la DAT SUR): quizá alguien que aplazó las prácticas? No estaba en listados febrero
RODRIGUEZ RODRIGUEZ,MARIA DEL MAR
-6 personas con modalidad E (suprimidos): sí estaban en listado de febrero (eran 9 en total, luego se supone que se ha asignado a 3 modalidad E)
2018-05-11-ParticipantesSinDestinosPorEspecialidadFQ.ods

Me comentan que ARANAZ MARTIN, FERNANDO puede asignarse a un centro de especial dificultad, al que solamente se va si se ha solicitado
El centro es 28058603 IES NUMANCIA
Y efectivamente está en convocatoria
ANEXO 29
CENTROS DE ESPECIAL DIFICULTAD
Por Resolución de 17 de octubre de 2007 (BOCM de 5 de noviembre).
http://w3.bocm.es/boletin/CM_Orden_BOCM/2017/10/30/BOCM-20171030-9.PDF#page=154

En página 17 de la convocatoria aclara que no se asignan si no se solicitan

5.3.2.1. Peticiones a centro, localidad o ambas modalidades.
...
g) Plazas en centros de Especial Dificultad por tratarse de difícil desempeño. Las peticiones
realizadas en centros de Especial dificultad, por tratarse de difícil desempeño, se deberán realizar a centro concreto, consignándose, en todo caso, el código de la especialidad por la que participa en las posibles peticiones a centro. No se tendrán en cuenta este tipo de centros en las peticiones realizadas a localidad o zona.

Pasa lo mismo con JAREÑO LAZARO, RAQUEL que está asignada con 6,033 puntos a 28030174 IES CELESTINO MUTIS.

Pero HORCAJO MINGUEZ, ALFONSO está asignado con 3,1664 puntos a 28045463 CEPA EL MOLAR, y no veo que los CEPA sean voluntarios para secundaria.

Se indica en
"5.3.2.2. Forma de solicitar determinadas plazas:
1. Cuerpo de Maestros:
...Plazas de Educación de Personas Adultas en centros Ordinarios y Penitenciarios.
Se deberá utilizar el código específico: 074
"
pero no aparece asociado a secundaria.


2. No hay un listado de "baremación definitiva": es el propio listado de participantes "ALFABÉTICO DE PARTICIPANTES" (727 páginas) publicado también 11 mayo 2018 el que tiene el baremo. Hay que procesar ese fichero o el de asignados sacando datos de las notas de adjudicación y revisar cuáles han cambiado. Cambiará formato, pero llama la atención que pase de 1521 páginas a 727. Para revisar los de Física y Química en lugar de usar el fichero de orden alfabético y rebuscar sería más sencillo usar participantes por especialidad, pero no lo hay, solamente hay concedidos por especialidad.

Quito la portada antes de procesar con tabula
pdftk ALFABETICO.pdf cat 2-727 output ALFABETICO-SINPORTADA.pdf


3. Procesar los concedidos. El fichero "CONCEDIDOS POR PUNTUACIÓN" son 172 páginas, Física y Química empieza en página 59 y termina en la 72.


-Sin contar los bilingües, soy "el sexto por la cola", y de los 5 detrás solamente uno es forzoso, con mi misma puntuación.

-Revisar qué casos han renunciado
Para variar otro listado con otro formato (no indica especialidad, solamente nombre)
Listado de participantes que han renunciado a la adjudicación.
-Tengo que entender qué significa / cómo se implementa el FORZOSO (es mi caso): han asignado a gente "por delante de mi" forzoso y "por detrás de mi" que no es forzoso. Se me ocurre que es asociado a si se da destino que no estaba entre los solicitados.


Transparencia, procedimiento

¿Cómo se puede concursar sin tener la lista de vacantes cerrada antes?
¿Cómo puede variar un 70% la lista de vacantes a mitad del proceso?
¿Por qué si en la definitiva se asigna  algo que no ha salido en provisional, con tanto cambio entre ellas, no se puede renunciar?


Comentarios puntuales; si todo es transparente todo se puede revisar y no haber nada raro.

LECHUGA CERCAS, SONIA    2010    7,4649     J    44,4996     IES PEDRO DE TOLOSA - CALLE DE LOS ESTUDIOS 1 - 28680    0

http://sanmartindevaldeiglesias.es/ayuntamiento/gobierno/#1454142833964-1f5897b1-9cad

Sonia Lechuga Cercas (PSOE)
2ª Teniente de Alcalde.
Concejala Delegada de  Educación, Hacienda, Turismo y Desarrollo Económico.

Hay quien comenta que la plaza del IES Pedro de Tolosa en San Martín de Valdeiglesias asignada no había existido antes, por revisar. Me comenta gente que lo ha revisado que sí existía antes.









Comentarios

Entradas populares de este blog

Ratios en educación

Nóminas digitales funcionarios Madrid

Raíces: programa gestión educativa Madrid