Example #1
0
#!/usr/bin/env python3

import simplekml
import utm

from api import Descripciones, Organismo, Puesto, dict_from_txt

puestos = [
    p for p in Puesto.load()
    if p.idCentroDirectivo != 1301 and p.idProvision not in (
        "L", ) and p.isTAI()
]

descripciones = Descripciones.load()
organismos = Organismo.load()
rcp_organi = {}
for o in organismos:
    for c in o.codigos:
        if isinstance(c, int):
            rcp_organi[c] = o

kml = simplekml.Kml()
kml.document.name = "TAI"

style_normal = simplekml.Style()
style_normal.iconstyle.color = simplekml.Color.blue
style_normal.iconstyle.icon.href = 'http://maps.google.com/mapfiles/ms/micons/blue.png'

kml.document.style = style_normal

style_con_vacantes = simplekml.Style()
Example #2
0
                        if value is not None and value[0] == '"':
                            value = value + " " + line
                        else:
                            value = line

                    if clave and value and (value[0] != '"' or value[-1] == '"'):
                        if value.startswith('"'):
                            value = value[1:-1]
                        if key not in idde:
                            idde[key] = {}
                        idde[key][clave] = value
                        clave = None
                        value = None
    print("100%% completado")
    
    idde = Descripciones(**idde)
    idde.save()
    Puesto.save(todos, name="destinos_all")

    puestos_ok = set()
    puestos_ko = set()

    puestos = [p for p in todos if p.isTAI(puestos_ok, puestos_ko)]
    print ("Comprobando vacantes")
    vacantes = [p for p in puestos if p.estado=="V"]
    id_vacantes = [str(p.idPuesto) for p in vacantes]
    re_puesto_vacante = re.compile(r"\b(" + "|".join(id_vacantes) + r")\b")
    nombramientos = list(sorted(glob("fuentes/nb_*.txt")))
    concursos = list(sorted(glob("fuentes/oc_*.txt")))
    visto_en={}
    count = 0
Example #3
0
    for k, d in sorted(cod_dir_latlon):
        l = geocode(d)
        if l:
            l = str(l.latitude) + "," + str(l.longitude)
        else:
            l = ""
        print("%s    %s    %s" % (k, l, d))
    print("")

codigos_tai = set()
for p in Puesto.load():
    codigos_tai.add(p.idMinisterio)
    codigos_tai.add(p.idCentroDirectivo)
    codigos_tai.add(p.idUnidad)

provincias = Descripciones.load().provincias

total = len(provincias)
count = 0
ok = 0
_ok = 0
last_ok = ""
print("Calculando coordenadas de provincias (%s)" % total)
for cod, prov in provincias.items():
    if cod not in direcciones:
        l = geocode(prov + ", España")
        if l:
            direcciones[cod] = str(l.latitude) + "," + str(l.longitude)
            last_ok = prov
            ok += 1
    count += 1
Example #4
0
if args.puestos or args.todo:
    xlss = list(sorted(glob("fuentes/RPT*.xls")))
    pdfs = list(sorted(glob("fuentes/*.pdf-nolayout.txt")))

    convocatorias = (
        (2016, 'L', 'BOE-A-2018-991'),
        (2015, 'L', 'BOE-A-2016-12467'),
    )

    total = 1 + len(xlss) + len(pdfs) + len(convocatorias)
    count = 1
    print("Leyendo puestos")
    print("%3d%% completado: cod_provincia.htm" % (count * 100 / total, ),
          end="\r")

    idde = Descripciones.load(name="datos/v1.0/descripciones.json")
    idde = idde.__dict__
    idde["provincias"] = {}

    soup = soup_from_file("fuentes/cod_provincia.htm")
    for tr in soup.select("table.miTabla tr"):
        tds = [td.get_text().strip() for td in tr.findAll("td")]
        if len(tds) == 2 and tds[0].isdigit():
            cod, prov = tds
            idde["provincias"][int(cod)] = prov

    todos = []
    organismos = {}

    for xls in xlss:
        count = count + 1
Example #5
0
                    action='store_true',
                    help='Solo genera la parte del ranking')

args = parser.parse_args()

j2 = Jnj2("j2/", "docs/")

# Excluir CENTROS PENITENCIARIOS, y volver a comprobar que es TAI
# Excluir nivel 18 (puede que salta alguno pero serán tan pocos...)
todos_tai = [
    p for p in Puesto.load()
    if p.idCentroDirectivo != 1301 and p.idProvision not in (
        "L", ) and p.isTAI()
]
todos_19 = [p for p in todos_tai if p.nivel < 19]
descripciones = Descripciones.load()

organismos = {}
for o in Organismo.load():
    for c in o.codigos:
        organismos[c] = o

if args.todo or args.direcciones:
    nf = Info(todos_tai, descripciones, organismos)
    j2.save("direcciones.html", info=nf, parse=fix_html)

if args.todo or args.destinos:
    paths = []
    for pais in set([p.pais for p in todos_19]):
        for provincia in set([p.provincia for p in todos_19
                              if p.pais == pais]):