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
|