'Checks that the current problem definition permits rescoring.
More precisely, it checks that there are no response types in
the current problem that are not fully supported (yet) for rescoring.
This includes responsetypes for which the student\'s answer
is not properly stored in state, i.e. file submissions.  At present,
we have no way to know if an existing response was actually a real
answer or merely the filename of a file submitted as an answer.
It turns out that because rescoring is a background task, limiting
it to responsetypes that don\'t support file submissions also means
that the responsetypes are synchronous.  This is convenient as it
permits rescoring to be complete when the rescoring call returns.'

def supports_rescoring(self):

    return all((('filesubmission' not in responder.allowed_inputfields) for responder in self.responders.values()))
