Commit a76b91b5 by Alexander Kryklia

Merge pull request #42 from edx/alex/fix_is_completed

Alex/fix is completed
parents 6f95d21e 23d4a2b3
...@@ -279,7 +279,7 @@ class CapaModule(CapaFields, XModule): ...@@ -279,7 +279,7 @@ class CapaModule(CapaFields, XModule):
""" """
Return True/False to indicate whether to show the "Check" button. Return True/False to indicate whether to show the "Check" button.
""" """
submitted_without_reset = (self.is_completed() and self.rerandomize == "always") submitted_without_reset = (self.is_submitted() and self.rerandomize == "always")
# If the problem is closed (past due / too many attempts) # If the problem is closed (past due / too many attempts)
# then we do NOT show the "check" button # then we do NOT show the "check" button
...@@ -302,7 +302,7 @@ class CapaModule(CapaFields, XModule): ...@@ -302,7 +302,7 @@ class CapaModule(CapaFields, XModule):
# then do NOT show the reset button. # then do NOT show the reset button.
# If the problem hasn't been submitted yet, then do NOT show # If the problem hasn't been submitted yet, then do NOT show
# the reset button. # the reset button.
if (self.closed() and not is_survey_question) or not self.is_completed(): if (self.closed() and not is_survey_question) or not self.is_submitted():
return False return False
else: else:
return True return True
...@@ -322,7 +322,7 @@ class CapaModule(CapaFields, XModule): ...@@ -322,7 +322,7 @@ class CapaModule(CapaFields, XModule):
return not self.closed() return not self.closed()
else: else:
is_survey_question = (self.max_attempts == 0) is_survey_question = (self.max_attempts == 0)
needs_reset = self.is_completed() and self.rerandomize == "always" needs_reset = self.is_submitted() and self.rerandomize == "always"
# If the student has unlimited attempts, and their answers # If the student has unlimited attempts, and their answers
# are not randomized, then we do not need a save button # are not randomized, then we do not need a save button
...@@ -516,13 +516,18 @@ class CapaModule(CapaFields, XModule): ...@@ -516,13 +516,18 @@ class CapaModule(CapaFields, XModule):
return False return False
def is_completed(self): def is_submitted(self):
# used by conditional module """
# return self.answer_available() Used to decide to show or hide RESET or CHECK buttons.
Means that student submitted problem and nothing more.
Problem can be completely wrong.
Pressing RESET button makes this function to return False.
"""
return self.lcp.done return self.lcp.done
def is_attempted(self): def is_attempted(self):
# used by conditional module """Used by conditional module"""
return self.attempts > 0 return self.attempts > 0
def is_correct(self): def is_correct(self):
......
...@@ -35,8 +35,11 @@ class ConditionalModule(ConditionalFields, XModule): ...@@ -35,8 +35,11 @@ class ConditionalModule(ConditionalFields, XModule):
<conditional> tag attributes: <conditional> tag attributes:
sources - location id of required modules, separated by ';' sources - location id of required modules, separated by ';'
completed - map to `is_completed` module method submitted - map to `is_submitted` module method.
(pressing RESET button makes this function to return False.)
attempted - map to `is_attempted` module method attempted - map to `is_attempted` module method
correct - map to `is_correct` module method
poll_answer - map to `poll_answer` module attribute poll_answer - map to `poll_answer` module attribute
voted - map to `voted` module attribute voted - map to `voted` module attribute
...@@ -70,8 +73,18 @@ class ConditionalModule(ConditionalFields, XModule): ...@@ -70,8 +73,18 @@ class ConditionalModule(ConditionalFields, XModule):
# value: <name of module attribute> # value: <name of module attribute>
conditions_map = { conditions_map = {
'poll_answer': 'poll_answer', # poll_question attr 'poll_answer': 'poll_answer', # poll_question attr
'completed': 'is_completed', # capa_problem attr
# problem was submitted (it can be wrong)
# if student will press reset button after that,
# state will be reverted
'submitted': 'is_submitted', # capa_problem attr
# if student attempted problem
'attempted': 'is_attempted', # capa_problem attr 'attempted': 'is_attempted', # capa_problem attr
# if problem is full points
'correct': 'is_correct',
'voted': 'voted' # poll_question attr 'voted': 'voted' # poll_question attr
} }
......
...@@ -24,7 +24,10 @@ be specified for this tag:: ...@@ -24,7 +24,10 @@ be specified for this tag::
sources - location id of required modules, separated by ';' sources - location id of required modules, separated by ';'
[message | ""] - message for case, where one or more are not passed. Here you can use variable {link}, which generate link to required module. [message | ""] - message for case, where one or more are not passed. Here you can use variable {link}, which generate link to required module.
[completed] - map to `is_completed` module method [submitted] - map to `is_submitted` module method.
(pressing RESET button makes this function to return False.)
[correct] - map to `is_correct` module method
[attempted] - map to `is_attempted` module method [attempted] - map to `is_attempted` module method
[poll_answer] - map to `poll_answer` module attribute [poll_answer] - map to `poll_answer` module attribute
[voted] - map to `voted` module attribute [voted] - map to `voted` module attribute
......
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