""" admin announcements """ from django.db import models from django.db.models import Q from django.utils import timezone from .base_model import BookWyrmModel class Announcement(BookWyrmModel): """The admin has something to say""" user = models.ForeignKey("User", on_delete=models.PROTECT) preview = models.CharField(max_length=255) content = models.TextField(null=True, blank=True) event_date = models.DateTimeField(blank=True, null=True) start_date = models.DateTimeField(blank=True, null=True) end_date = models.DateTimeField(blank=True, null=True) active = models.BooleanField(default=True) @classmethod def active_announcements(cls): """announcements that should be displayed""" now = timezone.now() return cls.objects.filter( Q(start_date__isnull=True) | Q(start_date__lte=now), Q(end_date__isnull=True) | Q(end_date__gte=now), active=True, )