def guidedSearch(request): ## distinguish forms that take 2 arguments from forms that take 1 argument if request.session['currentForm_name'] in form_2arguments: form = getattr(sys.modules[__name__], request.session['currentForm_name'])(request, request.GET or None) #handle GET and POST in the same view else: form = getattr(sys.modules[__name__], request.session['currentForm_name'])(request.GET or None) if form.is_valid(): ## get current question and user's answer current_question = request.session['currentForm_name'][:-4] formField_name = 'svd_'+current_question value = form.cleaned_data[formField_name] choices = form.fields[formField_name].choices request.session['svd_guided_answered'].update(question_and_answer(form, value, choices)) ## if user chooses to stop the search, start over; otherwise, perform the search if value == 'stop': return index(request) else: ## do search based on user's response lookup = "%s__contains" % current_question query = {lookup : value} request.session['Routines'] = request.session['Routines'].filter(**query) ## generate a session for current question/answer -->request.session[svd_currentQuestion] = answer request.session[formField_name] = value ## call function find_nextForm to set up next form for next question if request.session['currentForm_name'] == 'singleDoubleForm': nextForm_name = '' nextForm = '' else: dict_nextQuestion = find_nextForm(request.session['currentForm_name'], request) nextForm_name = dict_nextQuestion['nextForm_name'] nextForm = dict_nextQuestion['nextForm'] ## make next form current for request.session['currentForm_name'] request.session['currentForm_name'] = nextForm_name ## decide whether or not to use form HTML files (if help buttons are needed, use HTML file instead of form) if nextForm_name in form_HTML: formHTML = nextForm_name else: formHTML = "invalid" ## get ready for the template context = { 'formHTML': formHTML, 'form': nextForm, 'svd_guided_answered' : request.session['svd_guided_answered'], 'results' : request.session['Routines'], 'advancedSearchMenuForm': advancedSearchMenuForm(), } return render_to_response('lighthouse/lapack_svd/index.html', context_instance=RequestContext(request, context)) else: return index(request)
def guidedSearch(request): form = getattr(sys.modules[__name__], request.session['currentForm_name'])(request.GET or None) if form.is_valid(): ## get current question and user's answer current_question = request.session['currentForm_name'][:-4] formField_name = 'sylvester_'+current_question value = form.cleaned_data[formField_name] choices = form.fields[formField_name].choices request.session['sylvester_guided_answered'].update(question_and_answer(form, value, choices)) ## generate a session for current question/answer -->request.session[sylvester_currentQuestion] = answer request.session[formField_name] = value ## decide which form order to use if request.session['currentForm_name'] == 'standardGeneralizedForm' and request.session['sylvester_standardGeneralized'] == 'standard': request.session['form_order'] = form_order_standard elif request.session['currentForm_name'] == 'standardGeneralizedForm' and request.session['sylvester_standardGeneralized'] == 'generalized': request.session['form_order'] = form_order_generalized if request.session['sylvester_standardCondition'] == 'no' or request.session['sylvester_generalizedCondition'] == 'no': ## stop search return index(request) else: ## do search based on user's response (no search needed for 'standardConditionForm', 'generalizedConditionForm') if request.session['currentForm_name'] not in ['standardConditionForm', 'generalizedConditionForm']: lookup = "%s__contains" % current_question query = {lookup : value} request.session['Results'] = request.session['Results'].filter(**query) ## call function find_nextForm to set up next form for next question dict_nextQuestion = find_nextForm(request.session['currentForm_name'], request) nextForm_name = dict_nextQuestion['nextForm_name'] nextForm = dict_nextQuestion['nextForm'] ## make next form current for request.session['currentForm_name'] request.session['currentForm_name'] = nextForm_name ## decide whether or not to use form HTML files (if help buttons are needed, use HTML file instead of form) if nextForm_name in form_HTML: formHTML = nextForm_name else: formHTML = "invalid" ## get ready for the template context = { 'formHTML': formHTML, 'form': nextForm, 'sylvester_guided_answered' : request.session['sylvester_guided_answered'], 'results' : request.session['Results'] } return render_to_response('lighthouse/lapack_sylvester/index.html', context_instance=RequestContext(request, context)) else: return index(request)
def guidedSearch(request): ## distinguish forms that take 2 arguments from forms that take 1 argument if request.session['currentForm_name'] in form_2arguments: form = getattr(sys.modules[__name__], request.session['currentForm_name'])( request, request.GET or None) #handle GET and POST in the same view else: form = getattr(sys.modules[__name__], request.session['currentForm_name'])(request.GET or None) if form.is_valid(): ## get current question and user's answer current_question = request.session['currentForm_name'][:-4] formField_name = 'svd_' + current_question value = form.cleaned_data[formField_name] choices = form.fields[formField_name].choices request.session['svd_guided_answered'].update( question_and_answer(form, value, choices)) ## if user chooses to stop the search, start over; otherwise, perform the search if value == 'stop': return index(request) else: ## do search based on user's response lookup = "%s__contains" % current_question query = {lookup: value} request.session['Routines'] = request.session['Routines'].filter( **query) ## generate a session for current question/answer -->request.session[svd_currentQuestion] = answer request.session[formField_name] = value ## call function find_nextForm to set up next form for next question if request.session['currentForm_name'] == 'singleDoubleForm': nextForm_name = '' nextForm = '' else: dict_nextQuestion = find_nextForm( request.session['currentForm_name'], request) nextForm_name = dict_nextQuestion['nextForm_name'] nextForm = dict_nextQuestion['nextForm'] ## make next form current for request.session['currentForm_name'] request.session['currentForm_name'] = nextForm_name ## decide whether or not to use form HTML files (if help buttons are needed, use HTML file instead of form) if nextForm_name in form_HTML: formHTML = nextForm_name else: formHTML = "invalid" ## get ready for the template context = { 'formHTML': formHTML, 'form': nextForm, 'svd_guided_answered': request.session['svd_guided_answered'], 'results': request.session['Routines'], 'advancedSearchMenuForm': advancedSearchMenuForm(), } return render_to_response('lighthouse/lapack_svd/index.html', context_instance=RequestContext( request, context)) else: return index(request)