directory_components/context_processors.py
from directory_constants import urls
from django.conf import settings
from django.utils import translation
from directory_components import helpers
def ga360(request):
user = helpers.get_user(request)
is_logged_in = helpers.get_is_authenticated(request)
context = {'ga360': {'site_language': translation.get_language()}}
if is_logged_in and hasattr(user, 'hashed_uuid'):
context['ga360']['user_id'] = user.hashed_uuid
else:
context['ga360']['user_id'] = None
context['ga360']['login_status'] = is_logged_in
if hasattr(settings, 'GA360_BUSINESS_UNIT'):
context['ga360']['business_unit'] = settings.GA360_BUSINESS_UNIT
return context
def sso_processor(request):
url = request.build_absolute_uri()
sso_register_url = helpers.add_next(settings.SSO_PROXY_SIGNUP_URL, url)
return {
'sso_user': helpers.get_user(request),
'sso_is_logged_in': helpers.get_is_authenticated(request),
'sso_login_url': helpers.add_next(settings.SSO_PROXY_LOGIN_URL, url),
'sso_register_url': sso_register_url,
'sso_logout_url': helpers.add_next(settings.SSO_PROXY_LOGOUT_URL, url),
'sso_profile_url': settings.SSO_PROFILE_URL,
}
def analytics(request):
return {
'directory_components_analytics': {
'GOOGLE_TAG_MANAGER_ID': settings.GOOGLE_TAG_MANAGER_ID,
'GOOGLE_TAG_MANAGER_ENV': settings.GOOGLE_TAG_MANAGER_ENV,
'UTM_COOKIE_DOMAIN': settings.UTM_COOKIE_DOMAIN,
}
}
def cookie_notice(request):
return {
'directory_components_cookie_notice': {
'PRIVACY_COOKIE_DOMAIN': settings.PRIVACY_COOKIE_DOMAIN
}
}
def header_footer_processor(request):
magna_header = settings.MAGNA_HEADER or False
magna_urls = {
'magna_home': urls.magna.HOME,
'magna_where_to_export': urls.magna.WHERE_TO_EXPORT,
'magna_learn_to_export': urls.magna.LEARN_TO_EXPORT,
'magna_exportplan_dashboard': urls.magna.EXPORT_PLAN_DASHBOARD,
'magna_search': urls.magna.SEARCH,
'magna_privacy_and_cookies': urls.magna.PRIVACY_AND_COOKIES,
'magna_terms_and_conditions': urls.magna.TERMS_AND_CONDITIONS,
'magna_accessibility': urls.magna.ACCESSIBILITY,
'magna_cookie_preference_settings': urls.magna.COOKIE_PREFERENCE_SETTINGS,
'magna_contact_us': urls.magna.CONTACT_US,
'magna_performance': urls.magna.PERFORMANCE_DASHBOARD,
'magna_account': urls.magna.ACCOUNT,
'magna_advice': urls.magna.ADVICE,
'magna_markets': urls.magna.MARKETS,
'magna_services': urls.magna.SERVICES,
'magna_international': urls.magna.INTERNATIONAL,
}
advice_urls = {
'create_an_export_plan': urls.domestic.ADVICE_CREATE_AN_EXPORT_PLAN,
'find_an_export_market': urls.domestic.ADVICE_FIND_AN_EXPORT_MARKET,
'define_route_to_market': urls.domestic.ADVICE_DEFINE_ROUTE_TO_MARKET,
'get_export_finance_and_funding': urls.domestic.ADVICE_GET_EXPORT_FINANCE_AND_FUNDING,
'manage_payment_for_export_orders': urls.domestic.ADVICE_MANAGE_PAYMENT_FOR_EXPORT_ORDERS,
'prepare_to_do_business_in_a_foreign_country': urls.domestic.ADVICE_PREPARE_TO_DO_BUSINESS_IN_A_FOREIGN_COUNTRY,
'manage_legal_and_ethical_compliance': urls.domestic.ADVICE_MANAGE_LEGAL_AND_ETHICAL_COMPLIANCE,
'prepare_for_export_procedures_and_logistics': urls.domestic.ADVICE_PREPARE_FOR_EXPORT_PROCEDURES_AND_LOGISTICS,
}
header_footer_urls = {
'about': urls.domestic.ABOUT,
'dbt': urls.domestic.DBT,
'get_finance': urls.domestic.GET_FINANCE,
'ukef': urls.domestic.GET_FINANCE,
'performance': urls.domestic.PERFORMANCE_DASHBOARD,
'privacy_and_cookies': urls.domestic.PRIVACY_AND_COOKIES,
'terms_and_conditions': urls.domestic.TERMS_AND_CONDITIONS,
'accessibility': urls.domestic.ACCESSIBILITY,
'cookie_preference_settings': urls.domestic.COOKIE_PREFERENCE_SETTINGS,
'fas': urls.international.TRADE_FAS,
'advice': urls.domestic.ADVICE,
'markets': urls.domestic.MARKETS,
'search': urls.domestic.SEARCH,
'services': urls.domestic.SERVICES,
'domestic_news': urls.domestic.GREAT_DOMESTIC_NEWS,
'international_news': urls.international.NEWS,
'how_to_do_business_with_the_uk': urls.international.EXPAND_HOW_TO_DO_BUSINESS,
'industries': urls.international.ABOUT_UK_INDUSTRIES,
'market_access': urls.domestic.HOME / 'report-trade-barrier'
}
header_footer_urls = {**header_footer_urls, **advice_urls, **magna_urls}
return {'magna_header': magna_header, 'header_footer_urls': header_footer_urls}
def invest_header_footer_processor(request):
invest_header_footer_urls = {
'industries': urls.international.ABOUT_UK_INDUSTRIES,
'uk_setup_guide': urls.international.EXPAND_HOW_TO_SETUP,
}
return {'invest_header_footer_urls': invest_header_footer_urls}
def urls_processor(request):
return {
'services_urls': {
'contact_us': urls.domestic.CONTACT_US,
'contact_us_international': urls.international.CONTACT_US,
'events': urls.domestic.EVENTS,
'exopps': urls.domestic.EXPORT_OPPORTUNITIES,
'exred': urls.domestic.HOME,
'great_domestic': urls.domestic.HOME,
'great_international': urls.international.HOME,
'fab': urls.domestic.FIND_A_BUYER,
'fas': urls.international.TRADE_FAS,
'feedback': urls.domestic.FEEDBACK,
'office_finder': urls.domestic.OFFICE_FINDER,
'invest': urls.international.EXPAND_HOME,
'soo': urls.domestic.SELLING_OVERSEAS,
'sso': urls.domestic.SINGLE_SIGN_ON,
'uk_setup_guide': urls.international.EXPAND_HOW_TO_SETUP,
'isd': urls.international.EXPAND_ISD_HOME,
}
}
def feature_flags(request):
return {'features': settings.FEATURE_FLAGS}