def get_questionnaire(schema, questionnaire_store): router = Router( schema, questionnaire_store.answer_store, questionnaire_store.list_store, questionnaire_store.progress_store, questionnaire_store.metadata, ) if not router.can_access_hub(): redirect_location = router.get_first_incomplete_location_in_survey() return redirect(redirect_location.url()) language_code = get_session_store().session_data.language_code hub = HubContext( language=language_code, schema=schema, answer_store=questionnaire_store.answer_store, list_store=questionnaire_store.list_store, progress_store=questionnaire_store.progress_store, metadata=questionnaire_store.metadata, ) hub_context = hub.get_context( router.is_survey_complete(), router.enabled_section_ids ) return render_template("hub", content=hub_context)
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 _render_template(template, **kwargs): cookie_message = request.cookies.get('ons_cookie_message_displayed') allow_analytics = analytics_allowed(request) return template_helper.render_template(template, cookie_message=cookie_message, allow_analytics=allow_analytics, **kwargs)
def _render_error_page(status_code, template=None): handle_language() template = template or status_code using_edge = request.user_agent.browser == "edge" return ( render_template(template=f"errors/{template}", using_edge=using_edge), status_code, )
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 internal_server_error(error=None): try: log_error(error, 500) return _render_error_page(500) except Exception: # pylint:disable=broad-except logger.error( "an error has occurred when rendering 500 error", exc_info=True, url=request.url, status_code=500, ) return render_template(template="errors/500"), 500
def get_sign_out(): """ Signs the user first out of eq, then the account service by hitting the account services' logout url. """ logout_user() account_service_log_out_url = cookie_session.get( "account_service_log_out_url") if account_service_log_out_url: return redirect(account_service_log_out_url) return render_template(template="signed-out")
def _render_page(block_type, context, current_location, previous_location_url, schema, page_title): if request_wants_json(): return jsonify(context) session_timeout = get_session_timeout_in_seconds(schema) return render_template( template=block_type, content=context, current_location=current_location, previous_location_url=previous_location_url, session_timeout=session_timeout, legal_basis=schema.json.get("legal_basis"), page_title=page_title, )
def _render_template(context, current_location, template, front_end_navigation, previous_url, schema, metadata, answer_store, **kwargs): page_title = get_page_title_for_location(schema, current_location, metadata, answer_store) return render_template( template, content=context, current_location=current_location, navigation=front_end_navigation, previous_location=previous_url, page_title=page_title, metadata=kwargs.pop( 'metadata_context' ), # `metadata_context` is used as `metadata` in the jinja templates **kwargs)
def _render_template(context, current_location, template, front_end_navigation, previous_url, add_person_url, schema, metadata, answer_store, **kwargs): page_title = get_page_title_for_location(schema, current_location, metadata, answer_store) session_store = get_session_store() session_data = session_store.session_data return render_template( template, content=context, current_location=current_location, navigation=front_end_navigation, previous_location=previous_url, add_person_location=add_person_url, page_title=page_title, metadata=kwargs.pop( 'metadata_context' ), # `metadata_context` is used as `metadata` in the jinja templates language_code=session_data.language_code, **kwargs)
def _render_template(template, **kwargs): return template_helper.render_template(template, **kwargs)
def accessibility(): return render_template("static/accessibility")
def privacy(): return render_template("static/privacy")
def get_session_expired(): logout_user() return render_template("errors/session-expired")