forked from rc/aircox
fix and optimize
This commit is contained in:
@ -64,7 +64,7 @@ class Command (BaseCommand):
|
||||
initial__isnull = True
|
||||
).exclude(type = Diffusion.Type.unconfirmed)
|
||||
for diffusion in qs:
|
||||
if not diffusion.program.page.count():
|
||||
if not diffusion.program.page:
|
||||
if not hasattr(diffusion.program, '__logged_diff_error'):
|
||||
logger.warning(
|
||||
'the program {} has no page; skip the creation of '
|
||||
@ -80,7 +80,7 @@ class Command (BaseCommand):
|
||||
page = DiffusionPage.from_diffusion(
|
||||
diffusion, live = False
|
||||
)
|
||||
diffusion.program.page.first().add_child(instance = page)
|
||||
diffusion.program.page.add_child(instance = page)
|
||||
except:
|
||||
import sys
|
||||
e = sys.exc_info()[0]
|
||||
|
@ -452,10 +452,8 @@ class ProgramPage(Publication):
|
||||
|
||||
def diffs_to_page(self, diffs):
|
||||
for diff in diffs:
|
||||
if diff.page.count():
|
||||
diff.page_ = diff.page.first()
|
||||
else:
|
||||
diff.page_ = ListItem(
|
||||
if not diff.page:
|
||||
diff.page = ListItem(
|
||||
title = '{}, {}'.format(
|
||||
self.program.name, diff.date.strftime('%d %B %Y')
|
||||
),
|
||||
@ -464,7 +462,7 @@ class ProgramPage(Publication):
|
||||
date = diff.start,
|
||||
)
|
||||
return [
|
||||
diff.page_ for diff in diffs if diff.page_.live
|
||||
diff.page for diff in diffs if diff.page.live
|
||||
]
|
||||
|
||||
@property
|
||||
@ -560,8 +558,8 @@ class DiffusionPage(Publication):
|
||||
'title': '{}, {}'.format(
|
||||
diff.program.name, tz.localtime(diff.date).strftime('%d %B %Y')
|
||||
),
|
||||
'cover': (diff.program.page.count() and \
|
||||
diff.program.page.first().cover) or None,
|
||||
'cover': (diff.program.page and \
|
||||
diff.program.page.cover) or None,
|
||||
'date': diff.start,
|
||||
}
|
||||
model_kwargs.update(kwargs)
|
||||
@ -637,7 +635,7 @@ class DiffusionPage(Publication):
|
||||
if self.diffusion:
|
||||
# set publish_as
|
||||
if not self.pk:
|
||||
self.publish_as = self.diffusion.program.page.first()
|
||||
self.publish_as = self.diffusion.program.page
|
||||
|
||||
# sync date
|
||||
self.date = self.diffusion.start
|
||||
@ -777,8 +775,9 @@ class LogsPage(DatedListPage):
|
||||
|
||||
logs = []
|
||||
for date in context['nav_dates']['dates']:
|
||||
items = [ SectionLogsList.as_item(item)
|
||||
for item in self.station.on_air(date = date) ]
|
||||
items = self.station.on_air(date = date) \
|
||||
.select_related('track','diffusion')
|
||||
items = [ SectionLogsList.as_item(item) for item in items ]
|
||||
logs.append(
|
||||
(date, reversed(items) if self.reverse else items)
|
||||
)
|
||||
|
@ -957,16 +957,16 @@ class SectionLogsList(SectionItem):
|
||||
Supports: Log/Track, Diffusion
|
||||
"""
|
||||
from aircox_cms.models import DiffusionPage
|
||||
if type(log) == aircox.models.Diffusion:
|
||||
return DiffusionPage.as_item(log)
|
||||
if log.diffusion:
|
||||
return DiffusionPage.as_item(log.diffusion)
|
||||
|
||||
related = log.related
|
||||
track = log.track
|
||||
return ListItem(
|
||||
title = '{artist} -- {title}'.format(
|
||||
artist = related.artist,
|
||||
title = related.title,
|
||||
artist = track.artist,
|
||||
title = track.title,
|
||||
),
|
||||
headline = related.info,
|
||||
headline = track.info,
|
||||
date = log.date,
|
||||
info = '♫',
|
||||
css_class = 'track'
|
||||
|
@ -118,7 +118,7 @@ def station_post_saved(sender, instance, created, *args, **kwargs):
|
||||
|
||||
@receiver(post_save, sender=aircox.Program)
|
||||
def program_post_saved(sender, instance, created, *args, **kwargs):
|
||||
if not created or instance.page.count():
|
||||
if not created or instance.page:
|
||||
return
|
||||
|
||||
settings = utils.get_station_settings(instance.station)
|
||||
@ -191,7 +191,7 @@ def diffusion_post_saved(sender, instance, created, *args, **kwargs):
|
||||
page = models.DiffusionPage.from_diffusion(
|
||||
instance, live = False
|
||||
)
|
||||
instance.program.page.first().add_child(
|
||||
instance.program.page.add_child(
|
||||
instance = page
|
||||
)
|
||||
|
||||
|
@ -327,7 +327,7 @@ class TodayMenu(GenericMenu):
|
||||
return MenuItem(label, self.page_url(item), attrs = attrs)
|
||||
|
||||
def get_parent(self, item):
|
||||
return item.program.page.first()
|
||||
return item.program.page
|
||||
|
||||
|
||||
@hooks.register('register_admin_menu_item')
|
||||
|
Reference in New Issue
Block a user