def addValoracion(request): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: if request.method == "POST": form = forms.ValoracionForm(request.POST) if form.is_valid(): ruta = get_object_or_404(models.Ruta, pk=request.session['ruta']) valoracion = models.ValoracionRuta( fechaCreacion=timezone.now(), valoracion=request.POST['puntuacion'], comentario=request.POST['comentario'], usuario=usuario, ruta=ruta) valoracion.save() dias = models.Dia.dias_ruta(ruta) ruta_seguida = (ruta in usuario.ruta_set.all()) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta( ruta) calcular_valoraciones_ruta(ruta, valoraciones) return render( request, 'ruta.html', { 'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones': valoraciones }) else: ruta = models.Ruta.objects.filter( pk=request.session['ruta']) dias = models.Dia.dias_ruta(ruta) ruta_seguida = (ruta in usuario.ruta_set.all()) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta( ruta) return render( request, 'ruta.html', { 'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones': valoraciones }) else: return HttpResponseRedirect('/')
def addValoracion(request): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: if request.method == "POST": form = forms.ValoracionForm(request.POST) if form.is_valid(): lugar_interes = get_object_or_404( models.LugarInteres, pk=request.session['lugar_interes']) valoracion = models.ValoracionLugarInteres( fechaCreacion=timezone.now(), valoracion=request.POST['puntuacion'], comentario=request.POST['comentario'], usuario=usuario, lugarInteres=lugar_interes) valoracion.save() form = forms.ValoracionForm() valoraciones = models.ValoracionLugarInteres.valoraciones_lugar_interes( lugar_interes) calcular_valoraciones_lugar_interes( lugar_interes, valoraciones) return render( request, 'lugarInteres.html', { 'lugar_interes': lugar_interes, 'form': form, 'valoraciones': valoraciones, 'usuario': usuario }) else: lugar_interes = get_object_or_404( models.LugarInteres, pk=request.session['lugar_interes']) form = forms.ValoracionForm() valoraciones = models.ValoracionLugarInteres.valoraciones_lugar_interes( lugar_interes) return render( request, 'lugarInteres.html', { 'lugar_interes': lugar_interes, 'form': form, 'valoraciones': valoraciones, 'usuario': usuario }) else: return HttpResponseRedirect('/')
def borrarDia(request, id_dia): if "usuario" in request.session: usuario = models.Usuario.objects.filter(alias = request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: dia = get_object_or_404(models.Dia, pk=id_dia) ruta = dia.ruta if dia.creador == usuario: dia.delete() dias = models.Dia.dias_ruta(ruta) ruta_seguida = (ruta in usuario.ruta_set.all()) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta(ruta) views_ruta.calcular_precio_ruta(ruta, dias) lugares_interes = [] for dia in dias: lugares_interes_aux = dia.lugarinteres_set.all() for lugar_interes in lugares_interes_aux: lugares_interes.append(lugar_interes) log = models.Log(usuario=usuario, ruta=ruta, fecha=timezone.now(), log='modificado') log.save() return render(request, 'ruta.html', {'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones':valoraciones, 'lugares_interes': lugares_interes}) else: return HttpResponseRedirect('/')
def borrarValoracion(request, id_valoracion): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: valoracion = get_object_or_404(models.ValoracionLugarInteres, pk=id_valoracion) lugar_interes = valoracion.lugarInteres valoracion.delete() request.session['lugar_interes'] = lugar_interes.pk form = forms.ValoracionForm() valoraciones = models.ValoracionLugarInteres.valoraciones_lugar_interes( lugar_interes) calcular_valoraciones_lugar_interes(lugar_interes, valoraciones) return render( request, 'lugarInteres.html', { 'lugar_interes': lugar_interes, 'form': form, 'valoraciones': valoraciones, 'usuario': usuario }) else: return HttpResponseRedirect('/')
def borrarValoracion(request, id_valoracion): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: valoracion = get_object_or_404(models.ValoracionRuta, pk=id_valoracion) ruta = valoracion.ruta valoracion.delete() valoraciones = models.ValoracionRuta.valoraciones_ruta(ruta) calcular_valoraciones_ruta(ruta, valoraciones) dias = models.Dia.dias_ruta(ruta) ruta_seguida = (ruta in usuario.ruta_set.all()) form = forms.ValoracionForm() return render( request, 'ruta.html', { 'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones': valoraciones }) else: return HttpResponseRedirect('/')
def dejarDeSeguirRuta(request, id_ruta): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: ruta = get_object_or_404(models.Ruta, pk=id_ruta) dias = models.Dia.dias_ruta(ruta) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta(ruta) lugares_interes = [] for dia in dias: lugares_interes_aux = dia.lugarinteres_set.all() for lugar_interes in lugares_interes_aux: lugares_interes.append(lugar_interes) rutas_seguidas = usuario.ruta_set.all() rutas_creadas = models.Ruta.objects.filter(creador=usuario) if not (ruta not in rutas_seguidas or ruta in rutas_creadas): ruta.seguidores.remove(usuario) return render( request, 'ruta.html', { 'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': False, 'form': form, 'valoraciones': valoraciones, 'lugares_interes': lugares_interes }) else: return HttpResponseRedirect('/')
def editarDia(request, id_dia): if "usuario" in request.session: usuario = models.Usuario.objects.filter(alias = request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: dia = get_object_or_404(models.Dia, pk=id_dia) if dia and dia.creador == usuario: form = forms.RutaForm(request.POST or None, initial = {'titulo':dia.titulo, 'descripcion':dia.descripcion}) if form.is_valid(): if request.POST["titulo"]: dia.titulo=request.POST["titulo"] if request.POST["descripcion"]: dia.descripcion=request.POST["descripcion"] dia.save() ruta = dia.ruta dias = models.Dia.dias_ruta(ruta) ruta_seguida = (ruta in usuario.ruta_set.all()) views_ruta.calcular_precio_ruta(ruta, dias) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta(ruta) lugares_interes = [] for dia in dias: lugares_interes_aux = dia.lugarinteres_set.all() for lugar_interes in lugares_interes_aux: lugares_interes.append(lugar_interes) log = models.Log(usuario=usuario, ruta=ruta, fecha=timezone.now(), log='modificado') log.save() return render(request, 'ruta.html', {'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones':valoraciones, 'lugares_interes': lugares_interes}) else: return render(request, 'crearDia.html', {'form': form}) else: return HttpResponseRedirect('/inicio/') else: return HttpResponseRedirect('/')
def ruta(request, id_ruta): if "usuario" in request.session: usuario = models.Usuario.objects.filter( alias=request.session["usuario"])[0] if usuario == None: return HttpResponseRedirect('/') else: ruta = get_object_or_404(models.Ruta, pk=id_ruta) request.session['ruta'] = ruta.pk #Recuperamos los días pertenecientes a la ruta: dias = models.Dia.dias_ruta(ruta) precio_ruta = decimal.Decimal(0.0) for dia in dias: ruta.precio = precio_ruta + dia.precio ruta.save() ruta_seguida = (ruta in usuario.ruta_set.filter(pk=id_ruta)) form = forms.ValoracionForm() valoraciones = models.ValoracionRuta.valoraciones_ruta(ruta) lugares_interes = [] for dia in dias: lugares_interes_aux = dia.lugarinteres_set.all() for lugar_interes in lugares_interes_aux: lugares_interes.append(lugar_interes) calcular_precio_ruta(ruta, dias) return render( request, 'ruta.html', { 'ruta': ruta, 'usuario': usuario, 'dias': dias, 'ruta_seguida': ruta_seguida, 'form': form, 'valoraciones': valoraciones, 'lugares_interes': lugares_interes }) else: return HttpResponseRedirect('/')