- Fecha y hora:
- 06/12/2016 17:06:28 (hace 7 años)
- Branches:
- master, carga
- Children:
- 34f3fd8
- Parents:
- 862cf76
- Ubicación:
- economico
- Ficheros:
-
- 3 editados
Leyenda
- No modificado
- Añadido
- Eliminado
-
economico/forms.py
r3957a55 rfc268ed 28 28 DOMINIO_COMERCIAL, DOMINIO_CAMBIO 29 29 ) 30 from base.functions import cargar_anho_base 30 31 31 32 … … 99 100 ) 100 101 102 def __init__(self, *args, **kwargs): 103 super(AnhoBaseForm, self).__init__(*args, **kwargs) 104 self.fields['anho_base'].choices = cargar_anho_base(anho_inicial='2007') 105 101 106 102 107 @python_2_unicode_compatible … … 162 167 ) 163 168 169 def __init__(self, *args, **kwargs): 170 super(AnhoIniForm, self).__init__(*args, **kwargs) 171 self.fields['periodo_anho_ini'].choices = cargar_anho_base(anho_inicial='2007') 172 164 173 165 174 @python_2_unicode_compatible … … 183 192 ) 184 193 194 def __init__(self, *args, **kwargs): 195 super(AnhoFinForm, self).__init__(*args, **kwargs) 196 self.fields['periodo_anho_fin'].choices = cargar_anho_base(anho_inicial='2007') 197 185 198 186 199 @python_2_unicode_compatible … … 388 401 """ 389 402 390 391 403 @python_2_unicode_compatible 392 404 class MonetarioInstrumentoPoliticaForm(MesIniForm, MesFinForm, AnhoIniForm, AnhoFinForm): … … 399 411 @version 1.0.0 400 412 """ 401 402 413 403 414 @python_2_unicode_compatible -
economico/models.py
r7676b1c rfc268ed 26 26 27 27 @python_2_unicode_compatible 28 class Precios(models.Model): 29 ## Año base del registro 30 anho_base = models.CharField(max_length=4, null=True) 31 32 ## Año al que pertenece el(los) registro(s) 33 anho = models.CharField(max_length=4, verbose_name=_("Año")) 34 35 ## Mes del registro 36 mes = models.CharField(max_length=2, choices=MESES[1:], verbose_name=_("Mes")) 37 38 ## Índice total a registrar 39 inpc = models.DecimalField(max_digits=18, decimal_places=2, verbose_name=_("INPC")) 40 41 ## Ciudad del registro. La información registrada es solo para el tipo de dominio por ciudad 42 ciudad = models.CharField(max_length=3, choices=DOMINIO[1:], null=True, verbose_name=_("Ciudad")) 43 44 def gestion_init(self, *args, **kwargs): #ciudad=None, anho_base=None, mes_ini=None, mes_fin=None, anho_ini=None, anho_fin=None 45 46 grupo_label = str(PreciosGrupo._meta.verbose_name) 47 grupo_count_fields = PreciosGrupo._meta.get_fields()[:-3].__len__() 48 sector_label = str(PreciosSector._meta.verbose_name) 49 sector_count_fields = PreciosSector._meta.get_fields()[:-3].__len__() 50 naturaleza_label = str(PreciosNaturaleza._meta.verbose_name) 51 naturaleza_count_fields = PreciosNaturaleza._meta.get_fields()[:-3].__len__() 52 servicios_label = str(PreciosServicios._meta.verbose_name) 53 servicios_count_fields = PreciosServicios._meta.get_fields()[:-3].__len__() 54 inflacionario_label = str(PreciosInflacionario._meta.verbose_name) 55 inflacionario_count_fields = PreciosInflacionario._meta.get_fields()[:-3].__len__() 56 productos_label = str(PreciosProductos._meta.verbose_name) 57 productos_count_fields = PreciosProductos._meta.get_fields()[:-3].__len__() 58 fields = [ 59 [ 60 {'tag': '', 'color': '', 'text_color': '', 'combine': 0}, 61 {'tag': '', 'color': '', 'text_color': '', 'combine': 0}, 62 {'tag': '', 'color': '', 'text_color': '', 'combine': 0}, 63 {'tag': grupo_label, 'color': 'indigo', 'text_color': 'white', 'combine': grupo_count_fields}, 64 {'tag': sector_label, 'color': 'orange', 'text_color': 'white', 'combine': sector_count_fields}, 65 {'tag': naturaleza_label, 'color': 'gray25', 'text_color': 'black', 'combine': naturaleza_count_fields}, 66 {'tag': servicios_label, 'color': 'green', 'text_color': 'white', 'combine': servicios_count_fields}, 67 {'tag': inflacionario_label, 'color': 'red', 'text_color': 'white', 'combine': inflacionario_count_fields}, 68 {'tag': productos_label, 'color': 'aqua', 'text_color': 'black', 'combine': productos_count_fields}, 69 ], 70 [] 71 ] 72 relations, data, exclude_fields = [], [], ['id', 'anho_base', 'real_precios_id'] 73 74 if not 'dominio' in kwargs or not kwargs['dominio'] == 'C': 75 exclude_fields.append('ciudad') 76 77 for f in self._meta.get_fields(): 78 try: 79 field, label, null = f.attname, str(f.verbose_name), f.null 80 if not field in exclude_fields and not f.get_internal_type() == "ManyToOneRel": 81 type, validators, error_messages = f.get_internal_type(), f.validators, f.error_messages 82 83 if type == "ForeignKey": 84 relations.append(f.rel.to) 85 86 fields[1].append({ 87 'field': field, 'label': label, 'type': type, 'null': null, 'validators': validators, 88 'error_messages': error_messages 89 }) 90 except Exception as e: 91 pass 92 93 for grupo in PreciosGrupo._meta.get_fields(): 94 if not grupo.attname in exclude_fields: 95 fields[1].append({ 96 'field': grupo.attname, 'label': str(grupo.verbose_name), 'type': grupo.get_internal_type(), 97 'null': grupo.null, 'validators': grupo.validators, 'error_messages': grupo.error_messages 98 }) 99 100 for sector in PreciosSector._meta.get_fields(): 101 if not sector.attname in exclude_fields: 102 fields[1].append({ 103 'field': sector.attname, 'label': str(sector.verbose_name), 'type': sector.get_internal_type(), 104 'null': sector.null, 'validators': sector.validators, 'error_messages': sector.error_messages 105 }) 106 107 for naturaleza in PreciosNaturaleza._meta.get_fields(): 108 if not naturaleza.attname in exclude_fields: 109 fields[1].append({ 110 'field': naturaleza.attname, 'label': str(naturaleza.verbose_name), 'type': naturaleza.get_internal_type(), 111 'null': naturaleza.null, 'validators': naturaleza.validators, 'error_messages': naturaleza.error_messages 112 }) 113 114 for servicios in PreciosServicios._meta.get_fields(): 115 if not servicios.attname in exclude_fields: 116 fields[1].append({ 117 'field': servicios.attname, 'label': str(servicios.verbose_name), 'type': servicios.get_internal_type(), 118 'null': servicios.null, 'validators': servicios.validators, 'error_messages': servicios.error_messages 119 }) 120 121 for inflacionario in PreciosInflacionario._meta.get_fields(): 122 if not inflacionario.attname in exclude_fields: 123 fields[1].append({ 124 'field': inflacionario.attname, 'label': str(inflacionario.verbose_name), 'type': inflacionario.get_internal_type(), 125 'null': inflacionario.null, 'validators': inflacionario.validators, 'error_messages': inflacionario.error_messages 126 }) 127 128 for productos in PreciosProductos._meta.get_fields(): 129 if not productos.attname in exclude_fields: 130 fields[1].append({ 131 'field': productos.attname, 'label': str(productos.verbose_name), 'type': productos.get_internal_type(), 132 'null': productos.null, 'validators': productos.validators, 'error_messages': productos.error_messages 133 }) 134 135 return {'cabecera': fields, 'relations': relations, 'data': data, 'output': 'precios'} 136 137 138 @python_2_unicode_compatible 139 class PreciosGrupo(models.Model): 140 141 alimento_bebida = models.DecimalField( 142 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(1) Alimentos y Bebidas no Alcohólicas") 143 ) 144 145 bebida_tabaco = models.DecimalField( 146 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(2) Bebidas Alcohólicas y Tabaco") 147 ) 148 149 vestido_calzado = models.DecimalField( 150 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(3) Vestido y Calzado") 151 ) 152 153 alquiler_vivienda = models.DecimalField( 154 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(4) Alquiler de Vivienda") 155 ) 156 157 servicio_vivienda = models.DecimalField( 158 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(5) Servicios de Vivienda Excepto Teléfono") 159 ) 160 161 equipamiento_hogar = models.DecimalField( 162 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(6) Equipamiento de Hogar") 163 ) 164 165 salud = models.DecimalField( 166 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(7) Salud") 167 ) 168 169 transporte = models.DecimalField( 170 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(8) Transporte") 171 ) 172 173 comunicaciones = models.DecimalField( 174 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(9) Comunicaciones") 175 ) 176 177 esparcimiento = models.DecimalField( 178 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(10) Esparcimiento y Cultura") 179 ) 180 181 educacion = models.DecimalField( 182 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(11) Servicios de Educación") 183 ) 184 185 retaurant_hotel = models.DecimalField( 186 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(12) Restaurant y Hotel") 187 ) 188 189 bienes_servicios = models.DecimalField( 190 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("(13) Bienes y Servicios Diversos") 191 ) 192 193 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 194 195 class Meta: 196 verbose_name = _("Índice por Grupo") 197 198 199 @python_2_unicode_compatible 200 class PreciosSector(models.Model): 201 202 durables = models.DecimalField( 203 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Bienes durables") 204 ) 205 206 semi_durables = models.DecimalField( 207 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Bienes semidurables") 208 ) 209 210 no_durables = models.DecimalField( 211 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Bienes no durables") 212 ) 213 214 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 215 216 class Meta: 217 verbose_name = _("Índice por Sector de Origen") 218 219 220 @python_2_unicode_compatible 221 class PreciosNaturaleza(models.Model): 222 223 bienes = models.DecimalField( 224 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Bienes") 225 ) 226 227 agricolas = models.DecimalField( 228 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Agrícolas") 229 ) 230 231 pesquero = models.DecimalField( 232 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Productos Pesqueros") 233 ) 234 235 agroindustrial = models.DecimalField( 236 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Agroindustrial") 237 ) 238 239 otros = models.DecimalField( 240 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Otros manufacturados") 241 ) 242 243 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 244 245 class Meta: 246 verbose_name = _("Índice por Naturaleza y Durabilidad") 247 248 249 @python_2_unicode_compatible 250 class PreciosServicios(models.Model): 251 total = models.DecimalField( 252 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Total Servicios") 253 ) 254 255 basicos = models.DecimalField( 256 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Servicios Básicos") 257 ) 258 259 otros = models.DecimalField( 260 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Otros servicios") 261 ) 262 263 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 264 265 class Meta: 266 verbose_name = _("Índice de Servicios") 267 268 @python_2_unicode_compatible 269 class PreciosInflacionario(models.Model): 270 nucleo = models.DecimalField( 271 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Núcleo Inflacionario (NI)") 272 ) 273 274 alimentos = models.DecimalField( 275 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Alimentos Elaborados") 276 ) 277 278 textiles = models.DecimalField( 279 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Textiles y Prendas de Vestir") 280 ) 281 282 bienes = models.DecimalField( 283 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Bienes Industriales excepto alimentos y textiles") 284 ) 285 286 servicios = models.DecimalField( 287 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Servicios no administrados") 288 ) 289 290 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 291 292 class Meta: 293 verbose_name = _("Índice del Núcleo Inflacionario") 294 295 @python_2_unicode_compatible 296 class PreciosProductos(models.Model): 297 controlados = models.DecimalField( 298 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("Controlados") 299 ) 300 301 no_controlados = models.DecimalField( 302 max_digits=18, decimal_places=2, default=0.0, verbose_name=_("No Controlados") 303 ) 304 305 real_precios = models.ForeignKey(Precios, verbose_name=_("Sector Real")) 306 307 class Meta: 308 verbose_name = _("Índice de Productos Controlados y no Controlados") 309 310 311 312 @python_2_unicode_compatible 28 313 class SectorReal(models.Model): 29 314 """! -
economico/templates/economico.precios.html
ra56cae5 rfc268ed 60 60 <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2">{{ form.periodo_anho_fin }}</div> 61 61 </div> 62 {% include 'base.down.up.files.html' with url_down=url_down app='economico' mod=' AreaReal' %}62 {% include 'base.down.up.files.html' with url_down=url_down app='economico' mod='Precios' %} 63 63 </div> 64 64 </div> 65 65 {% endblock %} 66 {% block extra_footer %} 67 <script> 68 $(document).ready(function() { 69 $('#{{ form.dominio.auto_id }}').on('change', function() { 70 $(this).val().split('dominio: ' + $(this).val() + ",").join(""); 71 if ($(this).val() != "") { 72 var filters = $("#filters"); 73 filters.val(filters.val() + 'dominio: ' + $(this).val() + ','); 74 } 75 }); 76 77 $('.download-file').on('click', function(e) { 78 e.preventDefault(); 79 var filters = $("#filters"), json_filter = ''; 80 var dominio = $('#{{ form.dominio.auto_id }}'); 81 var anho_base = $("#{{ form.anho_base.auto_id }}"); 82 var periodo_mes_ini = $("#{{ form.periodo_mes_ini.auto_id }}"); 83 var periodo_mes_fin = $("#{{ form.periodo_mes_fin.auto_id }}"); 84 var periodo_anho_ini = $("#{{ form.periodo_anho_ini.auto_id }}"); 85 var periodo_anho_fin = $("#{{ form.periodo_anho_fin.auto_id }}"); 86 87 if (dominio.val()) { 88 json_filter += "\"dominio\": \"" + dominio.val() + "\","; 89 } 90 if (anho_base.val()) { 91 json_filter += "\"anho_base\": \"" + anho_base.val() + "\","; 92 } 93 if (periodo_mes_ini.val()) { 94 json_filter += "\"periodo_mes_ini\": \"" + periodo_mes_ini.val() + "\","; 95 } 96 if (periodo_mes_fin.val()) { 97 json_filter += "\"periodo_mes_fin\": \"" + periodo_mes_fin.val() + "\","; 98 } 99 if (periodo_anho_ini.val()) { 100 json_filter += "\"periodo_anho_ini\": \"" + periodo_anho_ini.val() + "\","; 101 } 102 if (periodo_anho_fin.val()) { 103 json_filter += "\"periodo_anho_fin\": \"" + periodo_anho_fin.val() + "\","; 104 } 105 106 if (json_filter) { 107 json_filter = json_filter.slice(0, -1); 108 filters.val(json_filter); 109 } 110 111 }); 112 }); 113 </script> 114 {% endblock %}
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.