def resultados(request, rubro_id=None): """ Resultados de la búsqueda de proyectos """ rubro = get_object_or_none(Rubro, id=rubro_id) if request.method == "POST": form = BusquedaForm(request.POST) if form.is_valid(): resultado = form.save() request.session["resultado"] = resultado else: form = BusquedaForm() if "resultado" in request.session: resultado = request.session["resultado"] else: resultado = Proyecto.accepted.all() if rubro: resultado = resultado.filter(rubro=rubro) return direct_response(request, 'proyectos/resultados.html', {'resultado': get_paginated(request, resultado, 3), 'resultados_sp': resultado, 'form': form, 'cliente': Cliente.get_authenticated(request), 'rubros': Rubro.objects.all(), 'rubro_activo': rubro, 'rango_venta': Proyecto.get_rango_precio(u"V"), 'rango_renta': Proyecto.get_rango_precio(u"R"),})
def perfil_proyecto(request, slug_proyecto): """ Perfil de un proyecto Ofertas: 1- se elije aleatoriamente una de las ofertas del proyecto con fecha_fin posterior a hoy 2- se elige aleatoriamente uno de los items(con estado disponible) pertenecientes al tipo de item en oferta 3- si puede realizar los pasos anteriores, pone en blanco la oferta y el item """ proyecto = get_object_or_404(Proyecto, ~Q(estado=u'B'), slug=slug_proyecto) etapa_actual, subetapa_actual, avance_actual = proyecto.get_etapa_actual() relacionados = Proyecto.accepted.filter(rubro=proyecto.rubro).exclude( slug=slug_proyecto) if proyecto.latitud: CLOSE_CONST = 2 referencias = Referencia.objects.filter( latitud__lte=proyecto.latitud+CLOSE_CONST, latitud__gte=proyecto.latitud-CLOSE_CONST, longitud__lte=proyecto.longitud+CLOSE_CONST, longitud__gte=proyecto.longitud-CLOSE_CONST, ) else: referencias = None # Ofertas try: oferta = proyecto.oferta_set.filter( fecha_fin__gt=date.today(), fecha_inicio__lte=date.today(), item__estado=u'D').order_by('?')[0] # random_item_id = oferta.tipo_item.item_set.filter( # estado=u'D').order_by('?')[0].id random_item_id = oferta.item.id except IndexError: oferta = '' random_item_id = 0 #items = Item.objects.filter(plano__proyecto=proyecto) return direct_response( request, 'proyectos/perfil_proyecto.html', {"proyecto": proyecto, "caracteristicas": proyecto.caracteristica_set.all(), "beneficios": proyecto.beneficio_set.all(), "referencias": referencias, "items_height": Item.objects.filter(plano__proyecto=proyecto).count()*71, "cliente": Cliente.get_authenticated(request), "etapa_actual": etapa_actual, "subetapa_actual": subetapa_actual, "avance_actual": avance_actual, "relacionados": relacionados, 'oferta': oferta, 'random_item_id': random_item_id})