def categoria(request, categoria): categoria = Categoria.objects.filter(slug=categoria).get() hoje = date.today() items = Oferta.objects.filter(status=Oferta.PUBLICADO, categoria=categoria)\ .filter(inicio__lte=hoje,fim__gte=hoje) destaques, ofertas, eventos, mais_paginas = destaques_ofertas_eventos(items) contexto = {'destaques': destaques, 'ultimo_destaque_id': [int(d['id']) for d in destaques], 'eventos': eventos, 'ultimo_evento_id': [int(e['id']) for e in eventos], 'ofertas': ofertas, 'ultima_oferta_id': [int(o['id']) for o in ofertas], 'categorias': Categoria.publicadas_com_oferta(), 'mais_paginas': mais_paginas, 'lojas': Loja.publicadas_com_oferta(), 'lojas_splash': Loja.publicadas_sem_oferta()} return render(request, "home.html", contexto)
def contexto_home(destaques, eventos, ofertas, mais_paginas, shopping, com_filtro=False): trinta = tem_trinta = tem_cinq = cinquenta = tem_setenta = setenta \ = preco1 = tem_preco1 = preco2 = tem_preco2 = preco3 = tem_preco3 = preco4 \ = tem_preco4 = preco5 = tem_preco5 = False generos = [] if com_filtro: destaques_x = Oferta.prontos(tipo=Oferta.DESTAQUE, shopping=shopping.id) eventos_x = Oferta.prontos(tipo=Oferta.EVENTO, shopping=shopping.id) ofertas_x = Oferta.prontos(shopping=shopping.id) ofertas_x = ofertas_x[:slice_oferta(len(destaques_x), len(eventos_x))] else: destaques_x = destaques eventos_x = eventos ofertas_x = ofertas lojas_dict = {} for i in Oferta.itens_por_shopping(shopping=shopping.id): #Condição antiga. **Fabiano Miranda** #if i.genero and Oferta.GENEROS[i.genero][1].lower() not in generos: if Oferta.GENEROS[i.genero][1].lower() not in generos: generos.append(Oferta.GENEROS[i.genero][1]) desconto = int(i.desconto) if i.desconto else None if desconto: if not tem_trinta and desconto <= 30: trinta = tem_trinta = True if not tem_cinq and desconto > 30 and desconto <= 50: cinquenta = tem_cinq = True if not tem_setenta and desconto > 50: setenta = tem_setenta = True preco = int(i.preco_final) if i.preco_final else None if preco: if not tem_preco1 and preco <= 30: preco1 = tem_preco1 = True if not tem_preco2 and preco > 30 and preco <= 50: preco2 = tem_preco2 = True if not tem_preco3 and preco > 50 and preco <= 100: preco3 = tem_preco3 = True if not tem_preco4 and preco > 100 and preco <= 300: preco4 = tem_preco4 = True if not tem_preco5 and preco > 300: preco5 = tem_preco5 = True if i.loja: lojas_dict[i.loja.slug] = i.loja.nome #for i in destaques_x+eventos_x+ofertas_x: # if i.get('genero', None) and i['genero'].lower() not in generos: # generos.append(i['genero']) # desconto = int(i['desconto']) if i.get('desconto', None) else None # if desconto: # if not tem_trinta and desconto <= 30: # trinta = tem_trinta = True # if not tem_cinq and desconto > 30 and desconto <= 50: # cinquenta = tem_cinq = True # if not tem_setenta and desconto > 50: # setenta = tem_setenta = True # if i.get('loja', None): # lojas_dict[i['loja']['slug']] = i['loja']['nome'] # preco = int(i['preco_final']) if i.get('preco_final', None) else None # if preco: # if not tem_preco1 and preco <= 30: # preco1 = tem_preco1 = True # if not tem_preco2 and preco > 30 and preco <= 50: # preco2 = tem_preco2 = True # if not tem_preco3 and preco > 50 and preco <= 100: # preco3 = tem_preco3 = True # if not tem_preco4 and preco > 100 and preco <= 300: # preco4 = tem_preco4 = True # if not tem_preco5 and preco > 300: # preco5 = tem_preco5 = True return {'destaques': destaques, 'ultimo_destaque_id': [int(d['id']) for d in destaques], 'eventos': eventos, 'ultimo_evento_id': [int(e['id']) for e in eventos], 'ofertas': ofertas, 'ultima_oferta_id': [int(o['id']) for o in ofertas], 'categorias': Categoria.publicadas_com_oferta(shopping.id), 'mais_paginas': mais_paginas, #'lojas': Loja.publicadas_com_oferta(shopping=shopping.id), 'lojas_dict': OrderedDict(sorted(lojas_dict.items(), key=lambda n: n[1])), 'lojas_splash': Loja.publicadas_sem_oferta(shopping=shopping.id), 'sazonal': Sazonal.atual(shopping=shopping.id), 'shopping_id': shopping.id, 'shopping_slug': shopping.slug, 'shopping_nome': shopping.nome, 'generos': set(generos), 'trinta': trinta, 'cinquenta': cinquenta, 'setenta': setenta, 'preco1': preco1, 'preco2': preco2, 'preco3': preco3, 'preco4': preco4, 'preco5': preco5}