code: def is_done(self, submissionid_or_submission, user_check=True):
          
          # TODO: not a very nice way to avoid too many database call. Should be refactored.
          if isinstance(submissionid_or_submission, dict):
              submission = submissionid_or_submission
          else:
              submission = self.get_submission(submissionid_or_submission, False)
          if user_check and not self.user_is_submission_owner(submission):
              return None
          return submission["status"] == "done" or submission["status"] == "error"
docs: Tells if a submission is done and its result is available