示例#1
0
文件: models.py 项目: Yestioured/llv
    def itens_mais(cls, shopping_id, acao, tipo):
        hoje = date.today()

        mais_vistas_query = cls.query_relatorio(shopping_id, acao, tipo)
        mes_query = cls.query_relatorio(shopping_id,
                                        acao,
                                        tipo,
                                        date=hoje + timedelta(days=-30))
        semana_query = cls.query_relatorio(shopping_id,
                                           acao,
                                           tipo,
                                           date=hoje + timedelta(days=-7))

        mais_vistas, total_vistas = listas_e_totais(mais_vistas_query,
                                                    'vistas')
        mais_do_mes, total_mes = listas_e_totais(mes_query, 'vistas')
        mais_da_semana, total_semana = listas_e_totais(semana_query, 'vistas')

        return {
            'tipo': cls.TIPOS[tipo][1],
            'nome_shopping': Shopping.objects.get(id=shopping_id).nome,
            'mais_vistas': mais_vistas,
            'total_vistas': total_vistas,
            'mais_do_mes': mais_do_mes,
            'total_mes': total_mes,
            'mais_da_semana': mais_da_semana,
            'total_semana': total_semana
        }
示例#2
0
文件: views.py 项目: joncasdam/llv
def lojas_mais_solicitadas(request, shopping_id):
    inicio_str = inicio = fim_str = fim = None
    if request.method == "POST":
        inicio_str = request.POST.get('inicio', None)
        inicio = datetime.strptime(inicio_str, '%d/%m/%Y')
        fim_str = request.POST.get('fim', None)
        fim = datetime.strptime(fim_str, '%d/%m/%Y')

    contexto = {'nome_shopping': Shopping.objects.get(id=shopping_id).nome}

    if inicio and fim:
        query_filtro = Loja.objects.annotate(pedidos=Count('pk', only=Q(shopping=shopping_id,
                                                                        solicitacoes__data_criacao__gte=inicio,
                                                                        solicitacoes__data_criacao__lte=fim))) \
                                   .order_by('-pedidos')
        filtradas, total_filtradas = listas_e_totais(query_filtro, 'pedidos')
        contexto.update({'filtradas': filtradas, 'total_filtradas': total_filtradas,
                         'inicio': inicio_str, 'fim': fim_str})
    else:
        hoje = date.today()
        mes = hoje + timedelta(days=-30)
        semana = hoje + timedelta(days=-7)
        solicitadas_query = Loja.relatorio_solicitacoes(shopping_id)
        mais_solicitadas, total_solicitadas = listas_e_totais(solicitadas_query, 'pedidos')
        mes_query = Loja.relatorio_solicitacoes(shopping_id, date=mes)
        mais_do_mes, total_mes = listas_e_totais(mes_query, 'pedidos')
        semana_query = Loja.relatorio_solicitacoes(shopping_id, date=semana)
        mais_da_semana, total_semana = listas_e_totais(semana_query, 'pedidos')
        contexto.update({'mais_solicitadas': mais_solicitadas, 'total_solicitadas': total_solicitadas,
                         'mais_do_mes': mais_do_mes, 'total_mes': total_mes,
                         'mais_da_semana': mais_da_semana, 'total_semana': total_semana})
    return render(request, "relatorios/lojas_mais_solicitadas.html", contexto)
示例#3
0
文件: models.py 项目: luancgarcia/llv
    def itens_mais(cls, shopping_id, acao, tipo):
        hoje = date.today()

        mais_vistas_query = cls.query_relatorio(shopping_id, acao, tipo)
        mes_query = cls.query_relatorio(shopping_id, acao, tipo, date=hoje + timedelta(days=-30))
        semana_query = cls.query_relatorio(shopping_id, acao, tipo, date=hoje + timedelta(days=-7))

        mais_vistas, total_vistas = listas_e_totais(mais_vistas_query, 'vistas')
        mais_do_mes, total_mes = listas_e_totais(mes_query, 'vistas')
        mais_da_semana, total_semana = listas_e_totais(semana_query, 'vistas')

        return {'tipo': cls.TIPOS[tipo][1],
                'nome_shopping': Shopping.objects.get(id=shopping_id).nome,
                'mais_vistas': mais_vistas, 'total_vistas': total_vistas,
                'mais_do_mes': mais_do_mes, 'total_mes': total_mes,
                'mais_da_semana': mais_da_semana, 'total_semana': total_semana}
示例#4
0
文件: views.py 项目: joncasdam/llv
def categorias_mais_vistas(request, shopping_id):
    inicio_str = inicio = fim_str = fim = None
    if request.method == "POST":
        inicio_str = request.POST.get('inicio', None)
        inicio = datetime.strptime(inicio_str, '%d/%m/%Y')
        fim_str = request.POST.get('fim', None)
        fim = datetime.strptime(fim_str, '%d/%m/%Y')

    contexto = {'tipo': 'categoria', 'modalidade': None,
                'nome_shopping': Shopping.objects.get(id=shopping_id).nome}

    if inicio and fim:
        query_filtro = Categoria.objects.annotate(vistas=Count('pk', only=Q(ofertas__loja__shopping=shopping_id,
                                                                            ofertas__logs__acao=1,
                                                                            ofertas__logs__data_criacao__gte=inicio,
                                                                            ofertas__logs__data_criacao__lte=fim+timedelta(days=1)))) \
                                        .order_by('-vistas')
        filtradas, total_filtradas = listas_e_totais(query_filtro, 'vistas')
        contexto.update({'filtradas': filtradas, 'total_filtradas': total_filtradas,
                         'inicio': inicio_str, 'fim': fim_str})
    else:
        hoje = date.today()
        mes = hoje + timedelta(days=-30)
        semana = hoje + timedelta(days=-7)

        mais_query = Categoria.objects.annotate(vistas=Count('pk', only=Q(ofertas__loja__shopping=shopping_id,
                                                                          ofertas__logs__acao=1))).order_by('-vistas')

        mes_query = Categoria.objects.annotate(vistas=Count('pk', only=Q(ofertas__loja__shopping=shopping_id,
                                                                         ofertas__logs__acao=1,
                                                                         ofertas__logs__data_criacao__gte=mes)))\
                                     .order_by('-vistas')

        semana_query = Categoria.objects.annotate(vistas=Count('pk', only=Q(ofertas__loja__shopping=shopping_id,
                                                                            ofertas__logs__acao=1,
                                                                            ofertas__logs__data_criacao__gte=semana)))\
                                        .order_by('-vistas')

        mais_vistas, total_vistas = listas_e_totais(mais_query, 'vistas')
        mais_do_mes, total_mes = listas_e_totais(mes_query, 'vistas')
        mais_da_semana, total_semana = listas_e_totais(semana_query, 'vistas')
        contexto.update({'mais_vistas': mais_vistas, 'total_vistas': total_vistas,
                         'mais_do_mes': mais_do_mes, 'total_mes': total_mes,
                         'mais_da_semana': mais_da_semana, 'total_semana': total_semana})

    return render(request, "relatorios/mais_vistas.html", contexto)
示例#5
0
文件: views.py 项目: joncasdam/llv
def itens_com_mais(request, shopping_id, acao, tipo):
    inicio_str = inicio = fim_str = fim = None
    if request.method == "POST":
        inicio_str = request.POST.get('inicio', None)
        inicio = datetime.strptime(inicio_str, '%d/%m/%Y')
        fim_str = request.POST.get('fim', None)
        fim = datetime.strptime(fim_str, '%d/%m/%Y')

    if inicio and fim:
        query_filtro = Oferta.relatorio_filtrado(shopping_id, acao, tipo, inicio, fim)

        filtradas, total_filtradas = listas_e_totais(query_filtro, 'vistas')
        contexto = {'tipo': Oferta.TIPOS[tipo][1], 'nome_shopping': Shopping.objects.get(id=shopping_id).nome,
                    'filtradas': filtradas, 'total_filtradas': total_filtradas,
                    'inicio': inicio_str, 'fim': fim_str}
    else:
        contexto = Oferta.itens_mais(shopping_id, acao, tipo)

    return contexto