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):
if settings.END_COURSE_ENABLED:
took_survey = student_took_survey(user_info)
if settings.DEBUG_SURVEY:
took_survey = False
survey_list = []
if not took_survey:
common_questions = exit_survey_questions['common_questions']
randomized_questions = exit_survey_questions['random_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)]
survey_list = common_questions + chosen_questions
......
......@@ -465,14 +465,8 @@ def record_exit_survey(request):
if request.method != "POST" or not settings.END_COURSE_ENABLED:
raise Http404
default_responses = {
'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() }
response = { key : value for key,value in request.POST.items() if key.startswith("survey_") }
up = UserProfile.objects.get(user=request.user)
meta = up.get_meta()
......
......@@ -8,6 +8,9 @@ import djcelery
# Enables certificate requests and the exit survey
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
DEFAULT_GROUPS = []
......
......@@ -169,11 +169,21 @@ $(function() {
});
$("#survey_form").submit(function(){
var values = {'survey_future_classes' : $("#survey_future_classes").is(':checked'),
'survey_future_offerings' : $("#survey_future_offerings").is(':checked'),
'survey_6002x_updates' : $("#survey_6002x_updates").is(':checked'),
'survey_teach_ee' : $('input:radio[name=survey_teach_ee]:checked').val(),
};
var values = {};
//First we set the value of every input to null. This assures that even
//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) {
if (true || data.success) {
......
<%page args="survey_list, **kwargs"/>
<%def name="survey_radio(question_name, label, choices)">
<li class="survey_radio">
<label>${label}</label><br/>
......@@ -11,7 +12,7 @@
<%def name="survey_checkbox(question_name, label)">
<li class="survey_checkbox">
<input type="checkbox" id="${question_name}"/>
<input type="checkbox" name="${question_name}" value="true"/>
<label>${label}</label>
</li>
</%def>
......@@ -24,8 +25,9 @@
</%def>
<ul>
%for survey_question in survey_list:
%if survey_question['type'] == 'survey_radio':
${survey_radio(survey_question['question_name'], survey_question['label'], survey_question['choices']) }
......@@ -35,11 +37,6 @@
%elif survey_question['type'] == 'survey_short_field':
${survey_short_field(survey_question['question_name'], survey_question['label']) }
%endif
%endfor
</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