Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions problem_builder/public/css/problem-builder.css
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,10 @@
margin-right: 10px;
}

.mentoring .assessment-checkmark.checkmark-clickable {
cursor: pointer;
}

.mentoring .grade .grade-result {
margin: 20px;
}
Expand Down
5 changes: 4 additions & 1 deletion problem_builder/public/js/mentoring_assessment_view.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ function MentoringAssessmentView(runtime, element, mentoring) {
checkmark.removeClass('checkmark-correct icon-ok fa-check');
checkmark.removeClass('checkmark-partially-correct icon-ok fa-check');
checkmark.removeClass('checkmark-incorrect icon-exclamation fa-exclamation');
checkmark.removeClass('checkmark-clickable');
checkmark.off('click');

// Clear all selections
$('input[type=radio], input[type=checkbox]', element).prop('checked', false);
Expand Down Expand Up @@ -271,7 +273,8 @@ function MentoringAssessmentView(runtime, element, mentoring) {
handleResults(response);
var options = {
max_attempts: response.max_attempts,
num_attempts: response.num_attempts
num_attempts: response.num_attempts,
checkmark: checkmark
};
var result = response.results[1];
var child = mentoring.steps[active_child];
Expand Down
12 changes: 10 additions & 2 deletions problem_builder/public/js/questionnaire.js
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,16 @@ function MRQBlock(runtime, element) {
var messageView = MessageView(element, mentoring);

if (result.message) {
messageView.showMessage('<div class="message-content">' + result.message + '</div>'+
'<div class="close icon-remove-sign fa-times-circle"></div>');
var msg = '<div class="message-content">' + result.message + '</div>' +
'<div class="close icon-remove-sign fa-times-circle"></div>';
messageView.showMessage(msg);
if (options.checkmark) {
options.checkmark.addClass('checkmark-clickable');
options.checkmark.on('click', function(ev) {
ev.stopPropagation();
messageView.showMessage(msg);
})
}
}

var questionnaireDOM = $('fieldset.questionnaire', element);
Expand Down
15 changes: 14 additions & 1 deletion problem_builder/tests/integration/test_assessment.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,11 @@ def peek_at_multiple_response_question(
):
question = self.expect_question_visible(number, mentoring)
self.assert_persistent_elements_present(mentoring)
self._selenium_bug_workaround_scroll_to(mentoring, question)
self.assertIn("What do you like in this MRQ?", mentoring.text)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workaround includes clicking on things, and every click outside the feedback area closes it. But one of the aspects of the test below is to check if the feedback is shown when user opens the question for review. Hence, the workaround was removed. It worked in my dev environment, so if it works just fine on CI it might mean the workaround was not needed here at all.


if extended_feedback:
self.assert_disabled(controls.submit)
self.check_question_feedback(mentoring, question)
if alternative_review:
self.assert_clickable(controls.review_link)
self.assert_hidden(controls.try_again)
Expand All @@ -213,6 +213,18 @@ def peek_at_multiple_response_question(

return question

def check_question_feedback(self, mentoring, question):
question_checkmark = mentoring.find_element_by_css_selector('.assessment-checkmark')
question_feedback = question.find_element_by_css_selector(".feedback")
self.assertTrue(question_feedback.is_displayed())
self.assertEqual(question_feedback.text, "Question Feedback Message")

question.click()
self.assertFalse(question_feedback.is_displayed())

question_checkmark.click()
self.assertTrue(question_feedback.is_displayed())

def multiple_response_question(self, number, mentoring, controls, choice_names, result, last=False):
question = self.peek_at_multiple_response_question(number, mentoring, controls, last=last)

Expand Down Expand Up @@ -298,6 +310,7 @@ def extended_feedback_checks(self, mentoring, controls, expected_results):
incorrect_marks = mentoring.find_elements_by_css_selector('.checkmark-incorrect')
self.assertEqual(len(correct_marks), 5)
self.assertEqual(len(incorrect_marks), 0)

item_feedbacks = [
"This is something everyone has to like about this MRQ",
"This is something everyone has to like about this MRQ",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<pb-tip values='["notwant"]'>Your loss!</pb-tip>
</pb-rating>

<pb-mrq name="mrq_1_1" question="What do you like in this MRQ?" required_choices='["gracefulness","elegance","beauty"]'>
<pb-mrq name="mrq_1_1" question="What do you like in this MRQ?" required_choices='["gracefulness","elegance","beauty"]' message="Question Feedback Message">
<pb-choice value="elegance">Its elegance</pb-choice>
<pb-choice value="beauty">Its beauty</pb-choice>
<pb-choice value="gracefulness">Its gracefulness</pb-choice>
Expand Down