1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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
|