views.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:IPP 作者: nicoechaniz 项目源码 文件源码
def _agregado_por_comercio(request, anio, mes, quincena, region_id, funcion, prefijo):
    if not (hasattr(request.user, "perfil") and \
            request.user.perfil.autorizacion >= PERMISO_COORD_ZONAL):
        messages.error(request, 'Permisos insuficientes.')
        return render(request, 'relevamiento/mensaje.html')

    lecturas = _lecturas_del_periodo(anio, mes, quincena, region_id, funcion)

    # Pivot de los resultados
    lecturas_por_comercio = OrderedDict()
    encabezado = ["Producto"]
    for lectura in lecturas:
        if lectura['comercio'] not in encabezado:
            encabezado.append(lectura['comercio'])
        lecturas_por_comercio.setdefault(lectura['producto'], {}).update(
            {lectura['comercio']: lectura['valor']})

    nombre_archivo = [prefijo, anio, mes.zfill(2), quincena.zfill(2)]
    if region_id:
        region = Region.objects.get(pk=region_id)
        nombre_archivo.append("_%s" % slugify(region.nombre))
    nombre_archivo.append(".csv")
    nombre_archivo = "".join(nombre_archivo)

    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename=%s;' % nombre_archivo
    response['Cache-Control'] = 'no-cache'

    writer = csv.DictWriter(response, fieldnames=encabezado)
    writer.writeheader()
    for producto, lecturas_dict in list(lecturas_por_comercio.items()):
        row = {"Producto": producto}
        row.update(lecturas_dict)
        writer.writerow(row)

    return response
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号