Example #1
0
 def published(self, select_related=None):
     """ Returns all published items."""
     qs = self._get_expanded_queryset(select_related=select_related)
     filter_kwargs = {'status': PUBLISHED_STATE}
     postdate_kwarg = self.get_postdate_publish_filter_kwarg()
     if postdate_kwarg:
         now = get_current_datetime()
         filter_kwargs[postdate_kwarg] = now
     return qs.filter(**filter_kwargs)
Example #2
0
 def unpublished(self, select_related=None):
     """ Returns all unpublished objects."""
     qs = self._get_expanded_queryset(select_related=select_related)
     postdate_kw = self.get_postdate_unpublish_filter_kwarg()
     if postdate_kw:
         now = get_current_datetime()
         return qs.filter(
             ~models.Q(status=PUBLISHED_STATE) | models.Q(**{postdate_kw: now})
         )
     return qs.exclude(status=PUBLISHED_STATE)        
Example #3
0
 def is_published(self):
     """ Boolean property indicating if item is published."""
     has_published_status = self.status == PUBLISHED_STATE
     if not has_published_status:
         return False
     if ENABLE_POSTDATED_PUBLISHING:
         date_field = self._meta.get_latest_by
         if date_field:
             date_val = getattr(self, date_field)
             if isinstance(date_val, datetime):
                 now = get_current_datetime()
                 return date_val <= now
             if isinstance(date_val, date):
                 return date_val <= date.today()
     return True