source: seguimiento_proyectos/sepai/proyectos/utils.py @ b1c4c62

desarrollo
Last change on this file since b1c4c62 was fca831c, checked in by lhernandez <lhernandez@…>, 8 años ago

Preparada carga masiva de los objetivos historicos de la nacion, se debe estudiar una manera mas optima para cargar la data actualmente tarda mas de 2 min para montar los 651 registros

  • Propiedad mode establecida a 100644
File size: 7.1 KB
Línea 
1# -*- coding: utf-8 -*-
2from .models import (
3    ObjetivosHistorico, ObjetivosNacional,
4    ObjetivosEstrategico, ObjetivosGeneral
5)
6
7
8def listObjetivoHistoricoNacional(data_historico):
9    pos_his = 0
10    pos_nac = 0
11    data_obj_historicos = []
12    data_obj_nacionales = []
13    for data in range(1, len(data_historico)):
14        objetivos_historicos = str(
15                        data_historico[data].split(b"|")[0][0:3], 'utf-8'
16                        )
17        objetivos_historicos_nivel = objetivos_historicos.replace(
18                        '.', ""
19                        ).strip()
20        objetivos_historicos_descripcion = str(
21            data_historico[data].split(b"|")[0][3:], 'utf-8'
22        )
23        objetivos_nacionales_nivel = str(
24            data_historico[data].split(b"|")[1][0:3], 'utf-8'
25            ).strip()
26        objetivos_nacionales_descripcion = str(
27            data_historico[data].split(b"|")[1][3:], 'utf-8'
28            )
29        if objetivos_historicos_nivel != "":
30            if data_obj_historicos:
31                nivel = data_obj_historicos[pos_his][0:3].split("|")[0]
32                if nivel == objetivos_historicos_nivel:
33                    pass
34                else:
35                    data_obj_historicos += objetivos_historicos_nivel + '|'  + objetivos_historicos_descripcion + '\n',
36                    pos_his += 1
37                    hist = ObjetivosHistorico(nivel=objetivos_historicos_nivel,
38                                          objetivo=objetivos_historicos_descripcion)
39                    hist.save()
40            else:
41                data_obj_historicos += objetivos_historicos_nivel + '|' + objetivos_historicos_descripcion + '\n',
42                hist = ObjetivosHistorico(nivel=objetivos_historicos_nivel,
43                                          objetivo=objetivos_historicos_descripcion)
44                hist.save()
45        nivel_hist = ObjetivosHistorico.objects.get(
46                        nivel=objetivos_historicos_nivel
47                        )
48        if objetivos_nacionales_nivel != "":
49            if data_obj_nacionales:
50                nivel_naci = data_obj_nacionales[pos_nac].split('|')[1][0:4]
51                if nivel_naci == objetivos_nacionales_nivel:
52                    pass
53                else:
54                    data_obj_nacionales += objetivos_historicos_nivel + '|' + objetivos_nacionales_nivel + '|' + objetivos_nacionales_descripcion + '\n',
55                    pos_nac += 1
56                    nacional = ObjetivosNacional(
57                        fk_objetivo_historico=nivel_hist,
58                        nivel=objetivos_nacionales_nivel,
59                        objetivo=objetivos_nacionales_descripcion
60                        )
61                    nacional.save()
62            else:
63                data_obj_nacionales += objetivos_historicos_nivel + '|' + objetivos_nacionales_nivel + '|' + objetivos_nacionales_descripcion + '\n',
64                nacional = ObjetivosNacional(
65                        fk_objetivo_historico=nivel_hist,
66                        nivel=objetivos_nacionales_nivel,
67                        objetivo=objetivos_nacionales_descripcion
68                        )
69                nacional.save()
70
71    return data_obj_historicos, data_obj_nacionales
72
73
74def listObjetivoEstrategico(data_historico, list_obj_nacional):
75    pos_estr = 0
76    data_obj_estrategic = []
77    for data in range(1, len(data_historico)):
78        objetivos_estrategicos_descripcion = str(
79                data_historico[data].split(b"|")[2][6:], 'utf-8'
80                ).strip()
81        objetivos_estrategicos_nivel = str(
82            data_historico[data].split(b"|")[2][0:6], 'utf-8'
83            ).strip()
84        for lista in range(len(list_obj_nacional)):
85            nivel_padre = list_obj_nacional[lista].split("|")[1][0:3].strip()
86            nivel_naci = ObjetivosNacional.objects.get(nivel=nivel_padre)
87            if objetivos_estrategicos_nivel != "":
88                if data_obj_estrategic:
89                    nivel = str(
90                                data_historico[data].split(b"|")[2][0:3], 'utf-8'
91                                ).strip()
92                    if nivel == nivel_padre:
93                        data_obj_estrategic += nivel_padre + '|' + objetivos_estrategicos_nivel + '|' + objetivos_estrategicos_descripcion + '\n',
94                        pos_estr += 1
95                        obj_estrategic = ObjetivosEstrategico(
96                            fk_objetivo_nacional=nivel_naci,
97                            nivel=objetivos_estrategicos_nivel,
98                            objetivo=objetivos_estrategicos_descripcion
99                            )
100                        obj_estrategic.save()
101                    else:
102                        pass
103                else:
104                    data_obj_estrategic += nivel_padre + '|' + objetivos_estrategicos_nivel + '|' + objetivos_estrategicos_descripcion + '\n',
105                    obj_estrategic = ObjetivosEstrategico(
106                            fk_objetivo_nacional=nivel_naci,
107                            nivel=objetivos_estrategicos_nivel,
108                            objetivo=objetivos_estrategicos_descripcion
109                            )
110                    obj_estrategic.save()
111
112    return data_obj_estrategic
113
114
115def listObjetivoGenerales(data_historico, list_obj_estrategic):
116    pos_gen = 0
117    data_obj_general = []
118    for data in range(1, len(data_historico)):
119        objetivos_generales_descripcion = str(
120                data_historico[data].split(b"|")[3][8:], 'utf-8'
121                ).strip()
122        objetivos_generales_nivel = str(
123            data_historico[data].split(b"|")[3][0:8], 'utf-8'
124            ).strip()
125        for lista in range(len(list_obj_estrategic)):
126            nivel_padre = list_obj_estrategic[lista].split("|")[1][0:6].strip()
127            nivel = str(
128            data_historico[data].split(b"|")[3][0:6], 'utf-8'
129            ).strip()
130            nivel_estrategic = ObjetivosEstrategico.objects.get(nivel=nivel_padre)
131            if objetivos_generales_nivel != "":
132                if data_obj_general:
133                    if nivel == nivel_padre:
134                        data_obj_general += nivel_padre + '|' + objetivos_generales_nivel + '|' + objetivos_generales_descripcion + '\n',
135                        pos_gen += 1
136                        obje_general = ObjetivosGeneral(
137                            fk_objetivo_estrategico=nivel_estrategic,
138                            nivel=objetivos_generales_nivel,
139                            objetivo=objetivos_generales_descripcion
140                            )
141                        obje_general.save()
142                    else:
143                        pass
144                else:
145                    data_obj_general += nivel_padre + '|' + objetivos_generales_nivel + '|' + objetivos_generales_descripcion + '\n'
146                    obje_general = ObjetivosGeneral(
147                            fk_objetivo_estrategico=nivel_estrategic,
148                            nivel=objetivos_generales_nivel,
149                            objetivo=objetivos_generales_descripcion
150                            )
151                    obje_general.save()
152
153    return data_obj_general
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.