forked from rc/aircox
add manager for Related class; rename get_on_air as on_air + can retrieve by last logs instead of date
This commit is contained in:
@ -648,7 +648,7 @@ class LogsPage(DatedListPage):
|
||||
|
||||
logs = []
|
||||
for date in context['nav_dates']['dates']:
|
||||
items = self.station.get_on_air(date)
|
||||
items = self.station.on_air(date = date)
|
||||
items = [ self.as_item(item) for item in items ]
|
||||
logs.append((date, items))
|
||||
return logs
|
||||
|
@ -32,6 +32,10 @@ from modelcluster.fields import ParentalKey
|
||||
from modelcluster.tags import ClusterTaggableManager
|
||||
from taggit.models import TaggedItemBase
|
||||
|
||||
# aircox
|
||||
import aircox.programs.models as programs
|
||||
|
||||
|
||||
|
||||
def related_pages_filter(reset_cache=False):
|
||||
"""
|
||||
@ -398,12 +402,12 @@ class DatedListBase(models.Model):
|
||||
return [ first + tz.timedelta(days=i)
|
||||
for i in range(0, self.nav_days) ]
|
||||
|
||||
def get_date_context(self, date):
|
||||
def get_date_context(self, date = None):
|
||||
"""
|
||||
Return a dict that can be added to the context to be used by
|
||||
a date_list.
|
||||
"""
|
||||
today = tz.now().today()
|
||||
today = tz.now().date()
|
||||
if not date:
|
||||
date = today
|
||||
|
||||
@ -809,3 +813,41 @@ class SectionList(ListBase, SectionItem):
|
||||
)
|
||||
return context
|
||||
|
||||
|
||||
@register_snippet
|
||||
class SectionTimetable(SectionItem,DatedListBase):
|
||||
panels = SectionItem.panels + DatedListBase.panels
|
||||
|
||||
def get_queryset(self, context):
|
||||
from aircox.cms.models import DiffusionPage
|
||||
diffs = []
|
||||
for date in context['nav_dates']['dates']:
|
||||
items = programs.Diffusion.objects.get_at(date).order_by('start')
|
||||
items = [ DiffusionPage.as_item(item) for item in items ]
|
||||
diffs.append((date, items))
|
||||
return diffs
|
||||
|
||||
def get_context(self, request, page, *args, **kwargs):
|
||||
context = super().get_context(request, page, *args, **kwargs)
|
||||
context.update(self.get_date_context())
|
||||
context['object_list'] = self.get_queryset(context)
|
||||
return context
|
||||
|
||||
|
||||
@register_snippet
|
||||
class SectionLogs(SectionItem):
|
||||
count = models.SmallIntegerField(
|
||||
_('count'),
|
||||
default = 5,
|
||||
help_text = _('number of items to display in the list'),
|
||||
)
|
||||
|
||||
panels = SectionItem.panels + [
|
||||
FieldPanel('count'),
|
||||
]
|
||||
|
||||
def get_context(self, request, page, *args, **kwargs):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ class DiffusionsMenu(GenericMenu):
|
||||
def get_queryset(self):
|
||||
return programs.Diffusion.objects.filter(
|
||||
type = programs.Diffusion.Type.normal,
|
||||
start__contains = tz.now().date() + tz.timedelta(days=2),
|
||||
start__contains = tz.now().date(),
|
||||
).order_by('start')
|
||||
|
||||
def get_title(self, item):
|
||||
|
Reference in New Issue
Block a user