예제 #1
0
파일: views.py 프로젝트: ajerneck/rand-art
def rate(request):
    if request.method == 'POST':
        form = request.POST

        ## get the ratings.
        ## ratings are in the form ('rating_label.id_article.id', 'on'),
        ## for labels with checked checkboxes.
        ## So, split out the article and label id,
        ## so it can be used in creating Ratings below.
        ks = form.items()
        ks = [(k.split('_'),v) for (k,v) in ks if 'rating_' in k]

        ## store ratings in database so they can be used in recommend view.
        rs = [Rating(label=int(k[1]), rating=transform_rating(v)) for (k,v) in ks]
        Rating.objects.all().delete()
        Rating.objects.bulk_create(rs)

        return HttpResponseRedirect('/recommend')

    else:
        ss = results.stratifiedSample(1)
        rs = {}
        for label in ss.keys():
            rs[label] = Article.objects.filter(id__in=ss[label])[0]

    return render(request, 'scrape/rate.html', {'rs': rs})
예제 #2
0
파일: views.py 프로젝트: ajerneck/rand-art
def inspect(request):
    ss = results.stratifiedSample(10)

    ## create a dict with lists of article objects corresponding to the sample.
    rs = {}
    for label in ss.keys():
        rs[label] = Article.objects.filter(id__in=ss[label])

    ## present sample using a template.
    template = loader.get_template('scrape/inspect.html')
    context = RequestContext(request, {'rs': rs})

    return HttpResponse(template.render(context))
예제 #3
0
파일: views.py 프로젝트: ajerneck/rand-art
def recommend(request):
 
    lbls = [i.label for i in Rating.objects.filter(rating=1)]
    ss = results.stratifiedSample(1)

    to_rm = [k for k in ss.keys() if k not in lbls]

    for k in to_rm:
        del(ss[k])

    rs = {}
    for label in ss.keys():
        rs[label] = Article.objects.filter(id__in=ss[label])

    template = loader.get_template('scrape/inspect.html')
    context = RequestContext(request, {'rs': rs})

#    return HttpResponse(str(to_rm))
    return HttpResponse(template.render(context))