Example #1
0
def delete_user(sender,instance,using,**kwargs):
    #Eliminamos sus comentarios
    print "On eliminar"
    Comentario.objects.filter(author=instance.id).delete()

    #Eliminamos sus votos    
    print "Antes"
    Vote.objects.filter(user=instance.id).delete()    
    print "DEspues"
    recommender=EstablecimientosRecommender()    
    recommender.precompute()
Example #2
0
def delete_user(sender, instance, using, **kwargs):
    #Eliminamos sus comentarios
    print "On eliminar"
    Comentario.objects.filter(author=instance.id).delete()

    #Eliminamos sus votos
    print "Antes"
    Vote.objects.filter(user=instance.id).delete()
    print "DEspues"
    recommender = EstablecimientosRecommender()
    recommender.precompute()
Example #3
0
def establecimiento_delete(sender, instance, **kwargs):
    u"""
        Cuando una establecimiento se borra tambĂ­en se borrara los votos
    """
    print "Establecimiento eliminado"
    id_establecimiento=instance.id
    Vote.objects.filter(object_id=id_establecimiento).delete()
    Score.objects.filter(object_id=id_establecimiento).delete()
    print "Calificacion eliminada"
    recommender=EstablecimientosRecommender()    
    print "Eliminando recomendacion"
    recommender.storage.remove_recommendations(instance)
    print "Computando"
    recommender.precompute()
Example #4
0
    def post(self, request, pk,format=None):
        u"""
            Se modifica una calificacion si existe , de lo contrario se crea una nueva.

            Returns:
                Ok HTTP_201_CREATED si to salio bien, 
                de lo contrario HTTP_400_BAD_REQUEST
        """
        
        try:                      
            calificacion = request.DATA.get("calificacion")
            respuesta=""            
            
            establecimiento = Establecimiento.objects.get(id=pk)                        
            if calificacion:
                calificacion=int(calificacion)                
                if calificacion>=1 and calificacion<=5 :                        
                    recommender=EstablecimientosRecommender()        
                    print "BIne"
                    # print establecimiento
                    # print calificacion
                    # print request.user
                    # print request.META['REMOTE_ADDR']
                    # print request.__dict__
                    # print "----------__>\n"
                    # print request.COOKIES
                    
                    establecimiento.rating.add(
                    score=calificacion, 
                    user=request.user, 
                    ip_address=request.META['REMOTE_ADDR']
                    )  
                                                                           
                    print "MAL"
                    print "Actualizando matriz"
                    recommender.precompute()                 
                    respuesta="Calificacion realizada"

                    return Response(respuesta, status=status.HTTP_201_CREATED)
                else:
                    respuesta="Valor no valido"     
        except Exception, e:
            print "Ell establecimiento no existe "            
            respuesta="Algo salio mal ",str(e)            
            print e
Example #5
0
    def obtener_recomendacion(self, user):
        print "Prediciendo recomendacion"
        recomendador_instance = EstablecimientosRecommender()
        recomendaciones = recomendador_instance.storage.get_recommendations_for_user(
            user)
        print recomendaciones
        if recomendaciones:
            print "Recomendando"
            result = []
            for recomendacion in recomendaciones:
                result.append(recomendacion.object)
            recomendaciones = result

            recomendaciones_leng = len(recomendaciones)
            if recomendaciones_leng < 10:
                query = Establecimiento.objects.all().order_by('-rating_score')
                for establecimiento in query:
                    if establecimiento not in recomendaciones:
                        if not Vote.objects.filter(
                                object_id=establecimiento.id, user=user.id):
                            recomendaciones.append(establecimiento)
                            if len(recomendaciones) >= 10:
                                break

        else:
            query = Establecimiento.objects.all().order_by('-rating_score')
            for establecimiento in query:
                if establecimiento not in recomendaciones:
                    if not Vote.objects.filter(object_id=establecimiento.id,
                                               user=user.id):
                        recomendaciones.append(establecimiento)
                        if len(recomendaciones) >= 10:
                            print "Se completo la lista de 10 recomendaciones"
                            break
            print "No se encontraron recomendaciones"
        return recomendaciones