def show_saved_documents(request): context = RequestContext(request) # Timed out? if time_search_experiment_out(request): return HttpResponseRedirect('/treconomics/timeout/') ec = get_experiment_context(request) taskid = ec['taskid'] condition = ec['condition'] uname = ec['username'] current_search = request.session['queryurl'] user_judgement = -2 if request.method == 'GET': getdict = request.GET if 'judge' not in getdict and 'docid' not in getdict: # Log only if user is entering the page, not after clicking a relevant button print "LOG_VIEW_SAVED_DOCS" log_event(event="VIEW_SAVED_DOCS", request=request) if 'judge' in getdict: user_judgement = int(getdict['judge']) if 'docid' in getdict: docid = int(getdict['docid']) if (user_judgement > -2) and (docid > -1): #updates the judgement for this document doc_length = ixr.doc_field_length(docid, 'content') trecid = ixr.stored_fields(docid)['docid'] user_judgement = mark_document(request=request, whooshid=docid, trecid=trecid, judgement=user_judgement, doc_length=doc_length) # Get documents that are for this task, and for this user u = User.objects.get(username=uname) docs = DocumentsExamined.objects.filter(user=u).filter(task=taskid) return render_to_response( 'trecdo/saved_documents.html', { 'participant': uname, 'task': taskid, 'condition': condition, 'current_search': current_search, 'docs': docs }, context)
def show_saved_documents(request): context = RequestContext(request) # Timed out? if time_search_experiment_out(request): return HttpResponseRedirect('/treconomics/timeout/') ec = get_experiment_context(request) taskid = ec['taskid'] condition = ec['condition'] uname = ec['username'] current_search = request.session['queryurl'] user_judgement = -2 if request.method == 'GET': getdict = request.GET if 'judge' not in getdict and 'docid' not in getdict: # Log only if user is entering the page, not after clicking a relevant button print "LOG_VIEW_SAVED_DOCS" log_event(event="VIEW_SAVED_DOCS", request=request) if 'judge' in getdict: user_judgement = int(getdict['judge']) if 'docid' in getdict: docid = int(getdict['docid']) if (user_judgement > -2) and (docid > -1): #updates the judgement for this document doc_length = ixr.doc_field_length(docid, 'content') trecid = ixr.stored_fields(docid)['docid'] user_judgement = mark_document(request=request, whooshid=docid, trecid=trecid, judgement=user_judgement, doc_length=doc_length) # Get documents that are for this task, and for this user u = User.objects.get(username=uname) docs = DocumentsExamined.objects.filter(user=u).filter(task=taskid) return render_to_response('trecdo/saved_documents.html', {'participant': uname, 'task': taskid, 'condition': condition, 'current_search': current_search, 'docs': docs}, context)
def show_document(request, whoosh_docid): #check for timeout if time_search_experiment_out(request): return HttpResponseRedirect('/treconomics/timeout/') context = RequestContext(request) ec = get_experiment_context(request) uname = ec["username"] taskid = ec["taskid"] condition = ec["condition"] current_search = request.session['queryurl'] # get document from index fields = ixr.stored_fields(int(whoosh_docid)) title = fields["title"] content = fields["content"] docnum = fields["docid"] doc_date = fields["timedate"] doc_source = fields["source"] docid = whoosh_docid topicnum = ec["topicnum"] def get_document_rank(): """ Returns the rank (integer) for the given document ID. -1 is returned if the document is not found in the session ranked list. """ the_docid = int(whoosh_docid) ranked_results = request.session.get('results_ranked', []) # Some list comprehension - returns a list of one integer with the rank of a given document # if it exists in ranked_results; returns a blank list if the document is not present. at_rank = [item[1] for item in ranked_results if item[0] == the_docid] if len(at_rank) > 0: return at_rank[0] else: return -1 # check if there are any get parameters. user_judgement = -2 rank = 0 if request.is_ajax(): getdict = request.GET if 'judge' in getdict: user_judgement = int(getdict['judge']) rank = get_document_rank() #marks that the document has been marked rel or nonrel doc_length = ixr.doc_field_length(long(request.GET.get('docid', 0)), 'content') user_judgement = mark_document(request, docid, user_judgement, title, docnum, rank, doc_length) #mark_document handles logging of this event return HttpResponse(simplejson.dumps(user_judgement), mimetype='application/javascript') else: if time_search_experiment_out( request ): return HttpResponseRedirect('/treconomics/next/') else: #marks that the document has been viewed rank = get_document_rank() doc_length = ixr.doc_field_length(long(docid), 'content') user_judgement = mark_document(request, docid, user_judgement, title, docnum, rank, doc_length) context_dict = {'participant': uname, 'task': taskid, 'condition': condition, 'current_search': current_search, 'docid': docid, 'docnum': docnum, 'title': title, 'doc_date': doc_date, 'doc_source': doc_source, 'content': content, 'user_judgement': user_judgement, 'rank': rank} if request.GET.get('backtoassessment', False): context_dict['backtoassessment'] = True return render_to_response('trecdo/document.html', context_dict, context)
def show_document(request, whoosh_docid): #check for timeout if time_search_experiment_out(request): return HttpResponseRedirect('/treconomics/timeout/') context = RequestContext(request) ec = get_experiment_context(request) uname = ec["username"] taskid = ec["taskid"] condition = ec["condition"] current_search = request.session['queryurl'] # get document from index fields = ixr.stored_fields(int(whoosh_docid)) title = fields["title"] content = fields["content"] docnum = fields["docid"] doc_date = fields["timedate"] doc_source = fields["source"] docid = whoosh_docid topicnum = ec["topicnum"] def get_document_rank(): """ Returns the rank (integer) for the given document ID. -1 is returned if the document is not found in the session ranked list. """ the_docid = int(whoosh_docid) ranked_results = request.session.get('results_ranked', []) # Some list comprehension - returns a list of one integer with the rank of a given document # if it exists in ranked_results; returns a blank list if the document is not present. at_rank = [item[1] for item in ranked_results if item[0] == the_docid] if len(at_rank) > 0: return at_rank[0] else: return -1 # check if there are any get parameters. user_judgement = -2 rank = 0 if request.is_ajax(): getdict = request.GET if 'judge' in getdict: user_judgement = int(getdict['judge']) rank = get_document_rank() #marks that the document has been marked rel or nonrel doc_length = ixr.doc_field_length( long(request.GET.get('docid', 0)), 'content') user_judgement = mark_document(request, docid, user_judgement, title, docnum, rank, doc_length) #mark_document handles logging of this event return HttpResponse(simplejson.dumps(user_judgement), mimetype='application/javascript') else: if time_search_experiment_out(request): return HttpResponseRedirect('/treconomics/next/') else: #marks that the document has been viewed rank = get_document_rank() doc_length = ixr.doc_field_length(long(docid), 'content') user_judgement = mark_document(request, docid, user_judgement, title, docnum, rank, doc_length) context_dict = { 'participant': uname, 'task': taskid, 'condition': condition, 'current_search': current_search, 'docid': docid, 'docnum': docnum, 'title': title, 'doc_date': doc_date, 'doc_source': doc_source, 'content': content, 'user_judgement': user_judgement, 'rank': rank } if request.GET.get('backtoassessment', False): context_dict['backtoassessment'] = True return render_to_response('trecdo/document.html', context_dict, context)