示例#1
0
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)})
示例#2
0
 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
示例#3
0
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)
        })
示例#4
0
 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
示例#5
0
 def is_published(self):
     return not self.awaiting_import and self.publish <= round_now()
示例#6
0
 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"]
示例#7
0
 def get_unpublished_count(self):
     return self.podcastepisode_set.filter(publish__gt=round_now()).count()
示例#8
0
 def is_published(self):
     return not self.awaiting_import and self.publish <= round_now()
示例#9
0
 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']
示例#10
0
 def get_unpublished_count(self):
     return self.podcastepisode_set.filter(publish__gt=round_now()).count()