def detail(request, product_id):

    # Buscar Lista de Productos recomendados para el usuario
    valorCalificacion = 0
    usuario_activo = request.user
    usuario = Users.objects.get(pk=usuario_activo.id)
    nombre_usuario = (
        usuario.Nombre.encode("utf-8").lower().capitalize()
        + " "
        + usuario.Apellido_p.encode("utf-8").lower().capitalize()
    )
    ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize()
    contacto_usuario = usuario.Contacto.encode("utf-8").lower()
    productos_similares = recomendaciones_contenido.k_vecinos_productos(product_id, 6)
    # Busca el producto seleccionado
    Producto = get_object_or_404(Product, pk=product_id)

    # Busca objeto de Producto con calificacion para el usuario
    try:
        calificacionExistente = Calificaciones.objects.get(product=Producto, users=usuario)
    except Calificaciones.DoesNotExist:
        comentario = ""
        valorCalificacion = 0
        calificacionExistente = Calificaciones(
            product=Producto, users=usuario, calificacion_producto=valorCalificacion, comentario=comentario
        )

    if request.POST.get("comentario") is not None:
        comentario = request.POST.get("comentario")
        calificacionExistente.calificacion_producto = valorCalificacion
        calificacionExistente.comentario = comentario
        calificacionExistente.save()
    else:
        if calificacionExistente.comentario is not None:
            comentario = calificacionExistente.comentario
        else:
            comentario = ""

    if request.POST.get("calificacion") is not None:
        valorCalificacion = request.POST.get("calificacion")
        calificacionExistente.calificacion_producto = valorCalificacion
        calificacionExistente.comentario = comentario
        calificacionExistente.save()
        productoExtra = Product_extras()
        productoExtra = productoExtra.calculaPromedio(Producto)

        if "recomendaciones_sesion" in request.session.keys():
            reco_listas = recomendaciones_xti(usuario)
            request.session["recomendaciones_sesion"] = reco_listas

    else:
        if calificacionExistente.calificacion_producto is not None:
            valorCalificacion = calificacionExistente.calificacion_producto
        else:
            valorCalificacion = 0

    # Busca comentarios del mismo Producto por otros usuarios
    try:
        comentariosExistentes = (
            Calificaciones.objects.filter(product=Producto).order_by("-fecha").select_related("users")[:20]
        )
    except Calificaciones.DoesNotExist:
        comentariosExistentes = None

    # Construccion del template y envio de Respuesta
    template = loader.get_template("products/detail.html")
    context = {
        "latest_productos_list": productos_similares,
        "Producto": Producto,
        "id_user": usuario_activo.id,
        "calificacionExistente": calificacionExistente,
        "comentario": comentario,
        "valorCalificacion": valorCalificacion,
        "comentariosExistentes": comentariosExistentes,
        "nombre_usuario": nombre_usuario,
        "ciudad_usuario": ciudad_usuario,
        "contacto_usuario": contacto_usuario,
    }

    return HttpResponse(template.render(context, request))
Exemple #2
0
def detail(request, product_id):

    #Buscar Lista de Productos recomendados para el usuario
    valorCalificacion = 0
    usuario_activo = request.user
    usuario = Users.objects.get(pk=usuario_activo.id)
    latest_productos_list, metadatos_recomendacion = recomendaciones_conocimiento.recomendacion_por_reglas(usuario)
    latest_productos_list = recomendaciones_contenido.k_vecinos_productos(product_id, 10)
    #Busca el producto seleccionado
    Producto = get_object_or_404(Product, pk=product_id)

    #Busca objeto de Producto con calificacion para el usuario
    try:
        calificacionExistente = Calificaciones.objects.get(product=Producto, users=usuario)
    except Calificaciones.DoesNotExist:
        comentario = ""
        valorCalificacion = 0
        calificacionExistente = Calificaciones(product=Producto, users=usuario, calificacion_producto=valorCalificacion, comentario=comentario)

    if request.POST.get('comentario') is not None:
        comentario = request.POST.get('comentario')
        calificacionExistente.calificacion_producto=valorCalificacion
        calificacionExistente.comentario=comentario
        calificacionExistente.save()
    else:
        if calificacionExistente.comentario is not None:
            comentario = calificacionExistente.comentario
        else:
            comentario = ""

    if request.POST.get('calificacion') is not None:
        valorCalificacion = request.POST.get('calificacion')
        calificacionExistente.calificacion_producto=valorCalificacion
        calificacionExistente.comentario=comentario
        calificacionExistente.save()
    else:
        if calificacionExistente.calificacion_producto is not None:
            valorCalificacion = calificacionExistente.calificacion_producto
        else:
            valorCalificacion = 0

    #Busca comentarios del mismo Producto por otros usuarios
    try:
        comentariosExistentes = Calificaciones.objects.filter(product=Producto).order_by('-fecha').select_related('users')[:20]
    except Calificaciones.DoesNotExist:
        comentariosExistentes = None

    #Construccion del template y envio de Respuesta
    template = loader.get_template('products/detail.html')
    context = {
        'latest_productos_list': latest_productos_list[:100],
        'metadatos_usuario': metadatos_recomendacion,
        'Producto': Producto,
        'id_user': usuario_activo.id,
        'calificacionExistente': calificacionExistente,
        'comentario': comentario,
        'valorCalificacion': valorCalificacion,
        'comentariosExistentes': comentariosExistentes
    }

    return HttpResponse(template.render(context, request))
def detail(request, product_id):

    #Buscar Lista de Productos recomendados para el usuario
    valorCalificacion = 0
    usuario_activo = request.user
    usuario = Users.objects.get(pk=usuario_activo.id)
    nombre_usuario = usuario.Nombre.encode("utf-8").lower().capitalize(
    ) + " " + usuario.Apellido_p.encode("utf-8").lower().capitalize()
    ciudad_usuario = usuario.Ciudad.encode("utf-8").lower().capitalize()
    contacto_usuario = usuario.Contacto.encode("utf-8").lower()
    productos_similares = recomendaciones_contenido.k_vecinos_productos(
        product_id, 6)
    #Busca el producto seleccionado
    Producto = get_object_or_404(Product, pk=product_id)

    #Busca objeto de Producto con calificacion para el usuario
    try:
        calificacionExistente = Calificaciones.objects.get(product=Producto,
                                                           users=usuario)
    except Calificaciones.DoesNotExist:
        comentario = ""
        valorCalificacion = 0
        calificacionExistente = Calificaciones(
            product=Producto,
            users=usuario,
            calificacion_producto=valorCalificacion,
            comentario=comentario)

    if request.POST.get('comentario') is not None:
        comentario = request.POST.get('comentario')
        calificacionExistente.calificacion_producto = valorCalificacion
        calificacionExistente.comentario = comentario
        calificacionExistente.save()
    else:
        if calificacionExistente.comentario is not None:
            comentario = calificacionExistente.comentario
        else:
            comentario = ""

    if request.POST.get('calificacion') is not None:
        valorCalificacion = request.POST.get('calificacion')
        calificacionExistente.calificacion_producto = valorCalificacion
        calificacionExistente.comentario = comentario
        calificacionExistente.save()
        productoExtra = Product_extras()
        productoExtra = productoExtra.calculaPromedio(Producto)

        if 'recomendaciones_sesion' in request.session.keys():
            reco_listas = recomendaciones_xti(usuario)
            request.session['recomendaciones_sesion'] = reco_listas

    else:
        if calificacionExistente.calificacion_producto is not None:
            valorCalificacion = calificacionExistente.calificacion_producto
        else:
            valorCalificacion = 0

    #Busca comentarios del mismo Producto por otros usuarios
    try:
        comentariosExistentes = Calificaciones.objects.filter(
            product=Producto).order_by('-fecha').select_related('users')[:20]
    except Calificaciones.DoesNotExist:
        comentariosExistentes = None

    #Construccion del template y envio de Respuesta
    template = loader.get_template('products/detail.html')
    context = {
        'latest_productos_list': productos_similares,
        'Producto': Producto,
        'id_user': usuario_activo.id,
        'calificacionExistente': calificacionExistente,
        'comentario': comentario,
        'valorCalificacion': valorCalificacion,
        'comentariosExistentes': comentariosExistentes,
        'nombre_usuario': nombre_usuario,
        'ciudad_usuario': ciudad_usuario,
        'contacto_usuario': contacto_usuario,
    }

    return HttpResponse(template.render(context, request))
def detail(request, product_id):

    #Buscar Lista de Productos recomendados para el usuario
    valorCalificacion = 0
    usuario_activo = request.user
    usuario = Users.objects.get(pk=usuario_activo.id)
    nombre_usuario = str(usuario.Nombre).lower().capitalize() +  " " + str(usuario.Apellido_p).lower().capitalize()
    ciudad_usuario = str(usuario.Ciudad).lower().capitalize()
    contacto_usuario = str(usuario.Contacto).lower()
    productos_similares = recomendaciones_contenido.k_vecinos_productos(product_id, 6)
    #Busca el producto seleccionado
    Producto = get_object_or_404(Product, pk=product_id)

    #Busca objeto de Producto con calificacion para el usuario
    try:
        calificacionExistente = Calificaciones.objects.get(product=Producto, users=usuario)
    except Calificaciones.DoesNotExist:
        comentario = ""
        valorCalificacion = 0
        calificacionExistente = Calificaciones(product=Producto, users=usuario, calificacion_producto=valorCalificacion, comentario=comentario)

    if request.POST.get('comentario') is not None:
        comentario = request.POST.get('comentario')
        calificacionExistente.calificacion_producto=valorCalificacion
        calificacionExistente.comentario=comentario
        calificacionExistente.save()
    else:
        if calificacionExistente.comentario is not None:
            comentario = calificacionExistente.comentario
        else:
            comentario = ""

    if request.POST.get('calificacion') is not None:
        valorCalificacion = request.POST.get('calificacion')
        calificacionExistente.calificacion_producto=valorCalificacion
        calificacionExistente.comentario=comentario
        calificacionExistente.save()
        productoExtra = Product_extras()
        productoExtra = productoExtra.calculaPromedio(Producto)
        
        if 'recomendaciones_sesion' in request.session.keys():
            reco_listas = recomendaciones_xti(usuario)
            request.session['recomendaciones_sesion'] = reco_listas


    else:
        if calificacionExistente.calificacion_producto is not None:
            valorCalificacion = calificacionExistente.calificacion_producto
        else:
            valorCalificacion = 0

    #Busca comentarios del mismo Producto por otros usuarios
    try:
        comentariosExistentes = Calificaciones.objects.filter(product=Producto).order_by('-fecha').select_related('users')[:20]
    except Calificaciones.DoesNotExist:
        comentariosExistentes = None

    #Construccion del template y envio de Respuesta
    template = loader.get_template('products/detail.html')
    context = {
        'latest_productos_list': productos_similares,
        'Producto': Producto,
        'id_user': usuario_activo.id,
        'calificacionExistente': calificacionExistente,
        'comentario': comentario,
        'valorCalificacion': valorCalificacion,
        'comentariosExistentes': comentariosExistentes,
        'nombre_usuario': nombre_usuario,
        'ciudad_usuario': ciudad_usuario,
        'contacto_usuario': contacto_usuario,
    }

    return HttpResponse(template.render(context, request))