Commit c62963f9 by Bridger Maxwell

Finished the random selection of exit survey questions. Added setting…

Finished the random selection of exit survey questions. Added setting DEBUG_SURVEY to always show all survey questions.
parent 279cebd5
...@@ -92,15 +92,20 @@ def profile(request, student_id = None): ...@@ -92,15 +92,20 @@ def profile(request, student_id = None):
if settings.END_COURSE_ENABLED: if settings.END_COURSE_ENABLED:
took_survey = student_took_survey(user_info) took_survey = student_took_survey(user_info)
if settings.DEBUG_SURVEY:
took_survey = False
survey_list = [] survey_list = []
if not took_survey: if not took_survey:
common_questions = exit_survey_questions['common_questions'] common_questions = exit_survey_questions['common_questions']
randomized_questions = exit_survey_questions['random_questions'] randomized_questions = exit_survey_questions['random_questions']
#If we use random.sample on randomized_questions directly, it will re-arrange the questions #If we use random.sample on randomized_questions directly, it will re-arrange the questions
chosen_indices = random.sample( range( len(randomized_questions) ), 15 ) if not settings.DEBUG_SURVEY:
chosen_indices = random.sample( range( len(randomized_questions) ), 6 )
else:
#In debug mode, we show all surveys
chosen_indices = range( len(randomized_questions) )
chosen_questions = [ randomized_questions[i] for i in sorted(chosen_indices)] chosen_questions = [ randomized_questions[i] for i in sorted(chosen_indices)]
survey_list = common_questions + chosen_questions survey_list = common_questions + chosen_questions
......
...@@ -465,13 +465,7 @@ def record_exit_survey(request): ...@@ -465,13 +465,7 @@ def record_exit_survey(request):
if request.method != "POST" or not settings.END_COURSE_ENABLED: if request.method != "POST" or not settings.END_COURSE_ENABLED:
raise Http404 raise Http404
default_responses = { response = { key : value for key,value in request.POST.items() if key.startswith("survey_") }
'survey_future_classes' : 'false',
'survey_future_offerings' : 'false',
'survey_6002x_updates' : 'false'
}
response = { key : request.POST.get(key, default) for key,default in default_responses.items() }
up = UserProfile.objects.get(user=request.user) up = UserProfile.objects.get(user=request.user)
......
...@@ -8,6 +8,9 @@ import djcelery ...@@ -8,6 +8,9 @@ import djcelery
# Enables certificate requests and the exit survey # Enables certificate requests and the exit survey
END_COURSE_ENABLED = False END_COURSE_ENABLED = False
# If enabled, always shows all survey questions. Has no effect without END_COURSE_ENABLED
DEBUG_SURVEY = False
# from settings2.askbotsettings import LIVESETTINGS_OPTIONS # from settings2.askbotsettings import LIVESETTINGS_OPTIONS
DEFAULT_GROUPS = [] DEFAULT_GROUPS = []
......
...@@ -169,11 +169,21 @@ $(function() { ...@@ -169,11 +169,21 @@ $(function() {
}); });
$("#survey_form").submit(function(){ $("#survey_form").submit(function(){
var values = {'survey_future_classes' : $("#survey_future_classes").is(':checked'), var values = {};
'survey_future_offerings' : $("#survey_future_offerings").is(':checked'),
'survey_6002x_updates' : $("#survey_6002x_updates").is(':checked'), //First we set the value of every input to null. This assures that even
'survey_teach_ee' : $('input:radio[name=survey_teach_ee]:checked').val(), //if a checkbox isn't checked or a question isn't answered, its name is
}; //still in the dictionary so we know the question was on the form.
var inputs = $("#survey_fieldset :input");
inputs.each( function(index, element) {
values[ element.getAttribute("name") ] = null;
});
//Grab the values from the survey_fieldset
var serializedArray = inputs.serializeArray();
for (var i = 0; i < serializedArray.length; i++) {
values[ serializedArray[i]['name'] ] = serializedArray[i]['value'];
}
postJSON('/record_exit_survey', values, function(data) { postJSON('/record_exit_survey', values, function(data) {
if (true || data.success) { if (true || data.success) {
......
<%page args="survey_list, **kwargs"/> <%page args="survey_list, **kwargs"/>
<%def name="survey_radio(question_name, label, choices)"> <%def name="survey_radio(question_name, label, choices)">
<li class="survey_radio"> <li class="survey_radio">
<label>${label}</label><br/> <label>${label}</label><br/>
...@@ -11,7 +12,7 @@ ...@@ -11,7 +12,7 @@
<%def name="survey_checkbox(question_name, label)"> <%def name="survey_checkbox(question_name, label)">
<li class="survey_checkbox"> <li class="survey_checkbox">
<input type="checkbox" id="${question_name}"/> <input type="checkbox" name="${question_name}" value="true"/>
<label>${label}</label> <label>${label}</label>
</li> </li>
</%def> </%def>
...@@ -24,8 +25,9 @@ ...@@ -24,8 +25,9 @@
</%def> </%def>
<ul>
<ul>
%for survey_question in survey_list: %for survey_question in survey_list:
%if survey_question['type'] == 'survey_radio': %if survey_question['type'] == 'survey_radio':
${survey_radio(survey_question['question_name'], survey_question['label'], survey_question['choices']) } ${survey_radio(survey_question['question_name'], survey_question['label'], survey_question['choices']) }
...@@ -35,11 +37,6 @@ ...@@ -35,11 +37,6 @@
%elif survey_question['type'] == 'survey_short_field': %elif survey_question['type'] == 'survey_short_field':
${survey_short_field(survey_question['question_name'], survey_question['label']) } ${survey_short_field(survey_question['question_name'], survey_question['label']) }
%endif %endif
%endfor %endfor
</ul> </ul>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment