forked from brosner/django-announcements
-
Notifications
You must be signed in to change notification settings - Fork 40
Open
Labels
Description
Screenshots
Desktop
- OS: MacOSX, Windows, Linux
- Browser Chrome
- Version 92.0.4515
Solution:
I think we can just check whether
request
is filled.
def render(self, context):
request = context.get('request', None)
if request:
qs = Announcement.objects.filter(
publish_start__lte=timezone.now()
).filter(
Q(publish_end__isnull=True) | Q(publish_end__gt=timezone.now())
).filter(
site_wide=True
)
exclusions = request.session.get("excluded_announcements", [])
exclusions = set(exclusions)
if request.user.is_authenticated:
for dismissal in request.user.announcement_dismissals.all():
exclusions.add(dismissal.announcement.pk)
else:
qs = qs.exclude(members_only=True)
context[self.as_var] = qs.exclude(pk__in=exclusions)
return ""