from flask import abort, render_template, request, send_file, url_for from flask_login import current_user, login_required from app import current_service from app.main import main from app.main.views.sub_navigation_dictionaries import features_nav from app.s3_client.s3_mou_client import get_mou @main.route('/agreement') @login_required def agreement(): return render_template( 'views/agreement/{}.html'.format(current_user.default_organisation.as_jinja_template), owner=current_user.default_organisation.name, navigation_links=features_nav(), ) @main.route('/services//agreement') @login_required def service_agreement(service_id): return render_template( 'views/agreement/service-{}.html'.format(current_service.organisation.as_jinja_template), owner=current_service.organisation.name, ) @main.route('/agreement.pdf') @login_required def download_agreement(): return send_file(**get_mou( current_user.default_organisation.crown_status_or_404 )) @main.route('/agreement/', endpoint='public_agreement') @main.route('/agreement/.pdf', endpoint='public_download_agreement') def public_agreement(variant): if variant not in {'crown', 'non-crown'}: abort(404) if request.endpoint == 'main.public_download_agreement': return send_file(**get_mou( organisation_is_crown=(variant == 'crown') )) return render_template( 'views/agreement/agreement-public.html', owner=current_user.default_organisation.name, download_link=url_for('.public_download_agreement', variant=variant), )