--- a/OSSEval/analysis/views.py
+++ b/OSSEval/analysis/views.py
@@ -30,18 +30,21 @@
form = AnalysisForm(request.POST)
if form.is_valid():
if reverse('analysis_new') in request.META['HTTP_REFERER']:
+ methodology_version = MethodologyVersion.objects.get(pk=request.POST['methodology_version'])
+ weight_scenarios = methodology_version.weightscenario_set.filter(active=True)
+ if len(weight_scenarios) != 1:
+ raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(methodology_version.id))
# creating a new
- model_instance = form.save()
- model_instance.visible = True
- weight_scenarios = model_instance.methodology_version.weightscenario_set.filter(active=True)
- if len(weight_scenarios) == 1:
- model_instance.weight_scenario = weight_scenarios[0]
- else:
- raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(model_instance.methodology_version.id))
- model_instance.protected = False
- model_instance.created = timezone.now()
- model_instance.save()
- return HttpResponseRedirect(reverse('analysis_detail', args=(model_instance.pk,)))
+ a = Analysis()
+ a.name = form.cleaned_data['name']
+ a.description = form.cleaned_data['description']
+ a.comment = form.cleaned_data['comment']
+ a.created = form.cleaned_data['created']
+ a.methodology_version = form.cleaned_data['methodology_version']
+ a.weight_scenario = weight_scenarios[0]
+ a.user_login = form.cleaned_data['user_login']
+ a.save()
+ return HttpResponseRedirect(reverse('analysis_detail', args=(a.id,)))
else:
# editing an existing one
id = request.META['HTTP_REFERER'].rsplit('/')[len(request.META['HTTP_REFERER'].rsplit('/'))-1]
@@ -52,8 +55,6 @@
a.created = form.cleaned_data['created']
a.methodology_version = form.cleaned_data['methodology_version']
a.user_login = form.cleaned_data['user_login']
- a.visible = form.cleaned_data['visible']
- a.protected = form.cleaned_data['protected']
a.save()
return HttpResponseRedirect(reverse('analysis_detail', args=(a.id,)))
else:
@@ -71,7 +72,6 @@
model_instance.weight_scenario = weight_scenarios[0]
else:
raise Exception("There should be exactly one active WeightScenario for MethodologyVersion " + str(model_instance.methodology_version.id))
- model_instance.protected = False
model_instance.created = timezone.now()
model_instance.save()
return HttpResponseRedirect(reverse('analysis_list'))
@@ -208,9 +208,15 @@
search_url = SearchEngine.search_url(q, sites)
search_engine_name = SearchEngine.search__engine_name()
description += "<a target='_blank' href='" + search_url + "'>'" + SearchEngine.readable_query(q, sites) + "' on " + search_engine_name + ": (" + search_count + " results)</a><br>"
- # eval_description and eval_value might use the results from the above queries so have to be run after them
- exec(question.eval_description)
- exec(question.eval_value)
+ # eval_description and eval_value might use the results from the above queries so have to be run after them
+ try:
+ exec(question.eval_description)
+ except Exception as ex:
+ print str(ex)
+ try:
+ exec(question.eval_value)
+ except:
+ pass
q = {}
q["question_id"] = question.id
print "question.id: " + str(question.id)