def get_thank_you(schema): session_store = get_session_store() session_data = session_store.session_data if not session_data.submitted_time: return redirect(url_for("questionnaire.get_questionnaire")) metadata_context = build_metadata_context_for_survey_completed(session_data) view_submission_url = None view_submission_duration = 0 if _is_submission_viewable(schema.json, session_data.submitted_time): view_submission_url = url_for(".get_view_submission") view_submission_duration = humanize.naturaldelta( timedelta(seconds=schema.json["view_submitted_response"]["duration"]) ) cookie_session.pop("account_service_log_out_url", None) cookie_session.pop("account_service_url", None) return render_template( template="thank-you", metadata=metadata_context, survey_id=schema.json["survey_id"], is_view_submitted_response_enabled=is_view_submitted_response_enabled( schema.json ), view_submission_url=view_submission_url, view_submission_duration=view_submission_duration, )
def get_view_submission(schema): session_data = get_session_store().session_data if _is_submission_viewable(schema.json, session_data.submitted_time): submitted_data = current_app.eq["storage"].get_by_key( SubmittedResponse, session_data.tx_id ) if submitted_data: metadata_context = build_metadata_context_for_survey_completed(session_data) pepper = current_app.eq["secret_store"].get_secret_by_name( "EQ_SERVER_SIDE_STORAGE_ENCRYPTION_USER_PEPPER" ) encrypter = StorageEncryption( current_user.user_id, current_user.user_ik, pepper ) submitted_data = encrypter.decrypt_data(submitted_data.data) # for backwards compatibility # submitted data used to be base64 encoded before encryption try: submitted_data = base64url_decode(submitted_data.decode()).decode() except ValueError: pass submitted_data = json.loads(submitted_data) answer_store = AnswerStore(submitted_data.get("answers")) list_store = ListStore(submitted_data.get("lists")) progress_store = ProgressStore(submitted_data.get("progress")) metadata = submitted_data.get("metadata") language_code = get_session_store().session_data.language_code questionnaire_summary_context = QuestionnaireSummaryContext( language_code, schema, answer_store, list_store, progress_store, metadata, ) context = questionnaire_summary_context(answers_are_editable=False) return render_template( template="view-submission", metadata=metadata_context, content=context, survey_id=schema.json["survey_id"], ) return redirect(url_for("post_submission.get_thank_you"))
def test_context_includes_ru_name_if_available(fake_session_data): fake_session_data.ru_name = "some name" context = build_metadata_context_for_survey_completed(fake_session_data) assert context["ru_name"] == "some name"
def test_context_does_not_include_period_str_and_ru_name_by_default( fake_session_data): context = build_metadata_context_for_survey_completed(fake_session_data) assert "ru_name" not in context assert "period_str" not in context
def test_context_includes_period_str_if_available(fake_session_data): fake_session_data.period_str = "some name" context = build_metadata_context_for_survey_completed(fake_session_data) assert context["period_str"] == "some name"