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

1from .models import Announcement 

2 

3 

4def announcements(request): 

5 """Get a list of announcements. 

6 

7 Filters out announcements that have been closed already. 

8 

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 ] 

19 

20 # Announcements set by AnnouncementMiddleware. 

21 persistent_announcements = getattr(request, "_announcements", []) 

22 for persistent_announcement in persistent_announcements: 

23 persistent_announcement["closeable"] = False 

24 

25 return { 

26 "announcements": announcements_list, 

27 "persistent_announcements": persistent_announcements, 

28 }