Coverage for website/announcements/context_processors.py: 100.00%
8 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from .models import Announcement
4def announcements(request):
5 """Get a list of announcements.
7 Filters out announcements that have been closed already.
9 :param request: the request object
10 :return: a dict containing the list announcements
11 :rtype: dict
12 """
13 closed_announcements = request.session.get("closed_announcements", [])
14 announcements_list = [
15 a
16 for a in Announcement.objects.all()
17 if a.is_visible and (not a.closeable or a.pk not in closed_announcements)
18 ]
20 # Announcements set by AnnouncementMiddleware.
21 persistent_announcements = getattr(request, "_announcements", [])
22 for persistent_announcement in persistent_announcements:
23 persistent_announcement["closeable"] = False
25 return {
26 "announcements": announcements_list,
27 "persistent_announcements": persistent_announcements,
28 }