Fix Show Answer button display for the value "Answered" in studio
In docs it is explained that we should show "Show Answer" button for "Answered" value when the user has correctly submitted the answer. The current behavior is such, even if the learner has answered the question wrong, the "Show Answer" button would be available. EDUCATOR-1563
This commit is contained in:
@@ -906,7 +906,7 @@ class CapaMixin(ScorableXBlockMixin, CapaFields):
|
||||
elif self.showanswer == SHOWANSWER.ANSWERED:
|
||||
# NOTE: this is slightly different from 'attempted' -- resetting the problems
|
||||
# makes lcp.done False, but leaves attempts unchanged.
|
||||
return self.lcp.done
|
||||
return self.is_correct()
|
||||
elif self.showanswer == SHOWANSWER.CLOSED:
|
||||
return self.closed()
|
||||
elif self.showanswer == SHOWANSWER.FINISHED:
|
||||
|
||||
@@ -35,7 +35,7 @@ from xblock.scorable import Score
|
||||
from . import get_test_system
|
||||
from pytz import UTC
|
||||
from capa.correctmap import CorrectMap
|
||||
from ..capa_base_constants import RANDOMIZATION
|
||||
from ..capa_base_constants import RANDOMIZATION, SHOWANSWER
|
||||
|
||||
|
||||
class CapaFactory(object):
|
||||
@@ -458,6 +458,27 @@ class CapaModuleTest(unittest.TestCase):
|
||||
graceperiod=self.two_day_delta_str)
|
||||
self.assertTrue(still_in_grace.answer_available())
|
||||
|
||||
def test_showanswer_answered(self):
|
||||
answer_wrong = CapaFactory.create(
|
||||
showanswer=SHOWANSWER.ANSWERED,
|
||||
max_attempts="1",
|
||||
attempts="0",
|
||||
due=self.tomorrow_str,
|
||||
correct=False
|
||||
)
|
||||
self.assertFalse(answer_wrong.answer_available())
|
||||
|
||||
|
||||
answer_correct = CapaFactory.create(
|
||||
showanswer=SHOWANSWER.ANSWERED,
|
||||
max_attempts="1",
|
||||
attempts="0",
|
||||
due=self.tomorrow_str,
|
||||
correct=True
|
||||
)
|
||||
self.assertTrue(answer_correct.answer_available())
|
||||
|
||||
|
||||
@ddt.data('', 'other-value')
|
||||
def test_show_correctness_other(self, show_correctness):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user