from django.urls import reverse from .models import Agreement from .utils import get_parsed_agreement_text, get_required_user_agreement # fixme: rename this context processor to more suitable name def legal_links(request): agreements = Agreement.objects.get_agreements() legal_context = { 'TERMS_OF_SERVICE_ID': None, 'TERMS_OF_SERVICE_URL': None, 'PRIVACY_POLICY_ID': None, 'PRIVACY_POLICY_URL': None, 'misago_agreement': None, } terms_of_service = agreements.get(Agreement.TYPE_TOS) if terms_of_service: legal_context['TERMS_OF_SERVICE_ID'] = terms_of_service['id'] if terms_of_service['link']: legal_context['TERMS_OF_SERVICE_URL'] = terms_of_service['link'] elif terms_of_service['text']: legal_context['TERMS_OF_SERVICE_URL'] = reverse('misago:terms-of-service') privacy_policy = agreements.get(Agreement.TYPE_PRIVACY) if privacy_policy: legal_context['PRIVACY_POLICY_ID'] = privacy_policy['id'] if privacy_policy['link']: legal_context['PRIVACY_POLICY_URL'] = privacy_policy['link'] elif privacy_policy['text']: legal_context['PRIVACY_POLICY_URL'] = reverse('misago:privacy-policy') if legal_context: request.frontend_context.update(legal_context) required_agreement = get_required_user_agreement(request.user, agreements) if required_agreement: request.frontend_context['REQUIRED_AGREEMENT_API'] = reverse( 'misago:api:submit-agreement', kwargs={'pk': required_agreement.pk}) legal_context['misago_agreement'] = { 'type': required_agreement.get_type_display(), 'title': required_agreement.get_final_title(), 'link': required_agreement.link, 'text': get_parsed_agreement_text(request, required_agreement) } return legal_context