def network_dashboard(req, network_id): net = get_object_or_404(Network, deactivated=False, id=network_id, members__in=[req.user]) net_podcasts = net.podcast_set.all() pod_map = {str(p.id): p for p in net_podcasts} top_episodes_data = analytics_query.get_top_episodes([str(p.id) for p in net_podcasts]) top_episodes = [] for ep_id, count in sorted(top_episodes_data.items(), key=lambda x: -1 * x[1])[:75]: try: episode = PodcastEpisode.objects.get(id=ep_id) except PodcastEpisode.DoesNotExist: continue top_episodes.append({ 'count': count, 'episode': episode, 'podcast': pod_map[str(episode.podcast_id)], }) upcoming_episodes = PodcastEpisode.objects.filter( podcast__in=net_podcasts, publish__gt=round_now()) return _pmrender(req, 'dashboard/network/page_dash.html', {'error': req.GET.get('error'), 'network': net, 'net_podcasts': net_podcasts, 'net_podcasts_map': pod_map, 'top_episodes': top_episodes, 'upcoming_episodes': list(upcoming_episodes)})
def get_episodes(self): episodes = self.get_all_episodes_raw().filter( publish__lt=round_now(), awaiting_import=False).order_by('-publish') us = UserSettings.get_from_user(self.owner) if us.plan == payment_plans.PLAN_DEMO: episodes = episodes[:10] return episodes
def network_dashboard(req, network_id): net = get_object_or_404(Network, deactivated=False, id=network_id, members__in=[req.user]) net_podcasts = net.podcast_set.all() pod_map = {str(p.id): p for p in net_podcasts} top_episodes_data = analytics_query.get_top_episodes( [str(p.id) for p in net_podcasts]) top_episodes = [] for ep_id, count in sorted(top_episodes_data.items(), key=lambda x: -1 * x[1])[:75]: try: episode = PodcastEpisode.objects.get(id=ep_id) except PodcastEpisode.DoesNotExist: continue top_episodes.append({ 'count': count, 'episode': episode, 'podcast': pod_map[str(episode.podcast_id)], }) upcoming_episodes = PodcastEpisode.objects.filter(podcast__in=net_podcasts, publish__gt=round_now()) return _pmrender( req, 'dashboard/network/page_dash.html', { 'error': req.GET.get('error'), 'network': net, 'net_podcasts': net_podcasts, 'net_podcasts_map': pod_map, 'top_episodes': top_episodes, 'upcoming_episodes': list(upcoming_episodes) })
def get_episodes(self): episodes = self.podcastepisode_set.filter(publish__lt=round_now(), awaiting_import=False).order_by("-publish") us = UserSettings.get_from_user(self.owner) if us.plan == payment_plans.PLAN_DEMO: episodes = episodes[:10] return episodes
def is_published(self): return not self.awaiting_import and self.publish <= round_now()
def average_tip_value_this_month(self): events = self.tip_events.filter(occurred_at__gt=round_now() - datetime.timedelta(days=30)) return events.aggregate(models.aggregates.Avg("amount"))["amount__avg"]
def get_unpublished_count(self): return self.podcastepisode_set.filter(publish__gt=round_now()).count()
def average_tip_value_this_month(self): events = (self.tip_events.filter(occurred_at__gt=round_now() - datetime.timedelta(days=30))) return events.aggregate(models.aggregates.Avg('amount'))['amount__avg']