def eventos_lista(request): ''' @eventos: view para listar as eventos cadastradas no sistema ''' dados = menu_lateral() ordem = request.GET.get('ordem') eventos = Evento.objects.filter(status='2') if ordem == 'alpha': eventos_list = eventos.order_by('titulo') elif ordem == 'data': eventos_list = eventos.order_by('-criado_em') elif ordem == 'rate': eventos_list = eventos.order_by('-rating') else: eventos_list = eventos.order_by('-criado_em') paginator = Paginator(eventos_list, 6) # exibe 6 por pagina page1 = request.GET.get('pg') try: eventos = paginator.page(page1) except PageNotAnInteger: eventos = paginator.page(1) except EmptyPage: eventos = paginator.page(paginator.num_pages) evento = {'eventos': eventos, 'total_eventos': len(eventos_list), 'ordem': ordem} evento.update(dados) return render(request, 'eventos_lista.html', evento)
def galeria_visualizar(request,tipo,id_galeria): ''' @galeria_lista: view para listar as galerias cadastradas no sistema ''' dados = menu_lateral() if tipo == 'evento': evento = Evento.objects.get(id=id_galeria) tags_cont = evento.tags.count album = {'titulo':evento.titulo,'tipo':'evento','data':evento.criado_em,'origem':evento,'id':evento.id} fotos_list = evento.fotos_evento.all() else: galeria = Galeria.objects.get(id=id_galeria) tags_cont = galeria.tags.count album = {'titulo':galeria.titulo,'tipo':'galeria','data':galeria.criado_em,'origem':galeria,'id':galeria.id} fotos_list = galeria.fotos_galeria.all() paginator = Paginator(fotos_list , 16) # exibe 16 por pagina page1 = request.GET.get('pg') try: fotos = paginator.page(page1) except PageNotAnInteger: fotos = paginator.page(1) except EmptyPage: fotos = paginator.page(paginator.num_pages) return render(request, 'galeria_visualizar.html',{'fotos':fotos,'galeria':album})
def busca_site(request): ''' @busca_site: View para renderizar a página inicial do site. A Busca será feita por relevancia, buscando pelo Titulo depois pelo Texto ''' dados = menu_lateral() try: query = request.GET.get('query').replace('+',' ') resultado_titulo = Evento.objects.filter(titulo__icontains=query,status='2').order_by('titulo') try: tag = Tag.objects.get(nome=query.upper()) resultado_tags = tag.tags_evento.all().order_by('titulo').exclude(id__in=resultado_titulo) except: resultado_tags = [] resultado_texto = Evento.objects.filter(texto__icontains=query,status='2').order_by('-criado_em').exclude(id__in=resultado_titulo).exclude(id__in=resultado_tags) resultado_geral = list(itertools.chain(resultado_titulo,resultado_tags,resultado_texto)) except: query = request.GET.get('tag').replace('+',' ') tag = Tag.objects.get(nome=query.upper()) resultado_geral = tag.tags_evento.all().order_by('titulo') resultado_lista = [] if len(resultado_geral) > 0: for evento in resultado_geral: e_dict = {} e_dict['id'] = evento.id e_dict['titulo'] = evento.titulo e_dict['autor'] = evento.autor e_dict['texto'] = evento.texto e_dict['criado_em'] = evento.criado_em e_dict['foto'] = evento.foto resultado_lista.append(e_dict) paginator = Paginator(resultado_lista, 6) # exibe 6 por pagina page1 = request.GET.get('pg') try: resultados = paginator.page(page1) except PageNotAnInteger: resultados = paginator.page(1) except EmptyPage: resultados = paginator.page(paginator.num_pages) busca = {'eventos':resultados,'total_eventos':len(resultado_lista),'query':query} busca.update(dados) return render(request,"busca.html",busca)
def galeria_lista(request): ''' @galeria_lista: view para listar as galerias cadastradas no sistema ''' dados = menu_lateral() try: query = request.GET.get('tag').replace('+',' ') tag = Tag.objects.get(nome=query.upper()) eventos = tag.tags_evento.all().order_by('titulo') galerias = tag.tags_galeria.all().order_by('titulo') except: query = "" eventos = Evento.objects.all().order_by('-criado_em') galerias = Galeria.objects.all().order_by('-criado_em') galeria_list = [] for evento in eventos: if evento.foto or evento.fotos_evento.all(): album = {'titulo':evento.titulo,'tipo':'evento','data':evento.criado_em,'origem':evento,'id':evento.id} galeria_list.append(album) for galeria in galerias: if galeria.fotos_galeria.all(): album = {'titulo':galeria.titulo,'tipo':'galeria','data':galeria.criado_em,'origem':galeria,'id':galeria.id} galeria_list.append(album) galeria_list_ordem = sorted(galeria_list, key=lambda k: k['data'],reverse=True) paginator = Paginator(galeria_list_ordem , 16) # exibe 16 por pagina page1 = request.GET.get('pg') try: galerias = paginator.page(page1) except PageNotAnInteger: galerias = paginator.page(1) except EmptyPage: galerias = paginator.page(paginator.num_pages) galeria = {'galerias': galerias,'total_galerias':len(galeria_list),'query':query} galeria.update(dados) return render(request, 'galeria_lista.html',galeria)