parameters: (self, survey_token, answer_token, **post)
return_statement: return self._prepare_question_html(survey_sudo, answer_sudo, **post)
docstring: Route used to start the survey user input and display the first survey page.
docstring_summary: Route used to start the survey user input and display the first survey page.
docstring_tokens: Route used to start the survey user input and display the first survey page .
function: def survey_begin(self, survey_token, answer_token, **post):
          """ Route used to start the survey user input and display the first survey page. """
          access_data = self._get_access_data(survey_token, answer_token, ensure_token=True)
          if access_data['validity_code'] is not True:
              return {'error': access_data['validity_code']}
          survey_sudo, answer_sudo = access_data['survey_sudo'], access_data['answer_sudo']
  
          if answer_sudo.state != "new":
              return {'error': _("The survey has already started.")}
  
          answer_sudo._mark_in_progress()
          return self._prepare_question_html(survey_sudo, answer_sudo, **post)
function_tokens: def survey_begin ( self , survey_token , answer_token , * * post ) : access_data = self . _get_access_data ( survey_token , answer_token , ensure_token = True ) if access_data [ 'validity_code' ] is not True : return { 'error' : access_data [ 'validity_code' ] } survey_sudo , answer_sudo = access_data [ 'survey_sudo' ] , access_data [ 'answer_sudo' ] if answer_sudo . state != "new" : return { 'error' : _ ( "The survey has already started." ) } answer_sudo . _mark_in_progress ( ) return self . _prepare_question_html ( survey_sudo , answer_sudo , * * post )