Source code for oioioi.globalmessage.processors

from django.template.loader import render_to_string
from django.utils import timezone

from oioioi.base.utils import request_cached
from oioioi.globalmessage.models import GlobalMessage


@request_cached
[docs]def global_message_processor(request): message = GlobalMessage.get_singleton() # Sometimes timestamp is not present in request (e.g. some cases of # 500 errors). If that's the case, fallback to current server time. time = getattr(request, 'timestamp', timezone.now()) if message.visible(time): return { 'extra_body_global_message': render_to_string( 'global-message-user.html', {'global_message': message} ), 'extra_admin_global_message': render_to_string( 'global-message-admin.html', {'global_message': message} ), } return {}