Ejemplo n.º 1
0
def subscribe(request, podcast):

    if request.method == 'POST':

        # multiple UIDs from the /podcast/<slug>/subscribe
        device_uids = [k for (k,v) in request.POST.items() if k==v]

        # single UID from /podcast/<slug>
        if 'targets' in request.POST:
            devices = request.POST.get('targets')
            devices = devices.split(',')
            device_uids.extend(devices)

        for uid in device_uids:
            try:
                device = request.user.client_set.get(uid=uid)
                subscribe_podcast(podcast, request.user, device)

            except Client.DoesNotExist as e:
                messages.error(request, str(e))

        return HttpResponseRedirect(get_podcast_link_target(podcast))

    targets = get_subscribe_targets(podcast, request.user)

    return render(request, 'subscribe.html', {
        'targets': targets,
        'podcast': podcast,
    })
Ejemplo n.º 2
0
def subscribe(request, podcast):

    if request.method == 'POST':

        # multiple UIDs from the /podcast/<slug>/subscribe
        device_uids = [k for (k, v) in request.POST.items() if k == v]

        # single UID from /podcast/<slug>
        if 'targets' in request.POST:
            devices = request.POST.get('targets')
            devices = devices.split(',')
            device_uids.extend(devices)

        for uid in device_uids:
            try:
                device = request.user.client_set.get(uid=uid)
                subscribe_podcast.delay(podcast.pk, request.user.pk,
                                        device.uid)

            except Client.DoesNotExist as e:
                messages.error(request, str(e))

        return HttpResponseRedirect(get_podcast_link_target(podcast))

    targets = get_subscribe_targets(podcast, request.user)

    return render(request, 'subscribe.html', {
        'targets': targets,
        'podcast': podcast
    })
Ejemplo n.º 3
0
def show(request, podcast):
    """ Shows a podcast detail page """

    podcast = check_restrictions(podcast)

    current_site = RequestSite(request)
    num_episodes = 20
    episodes = episode_list(podcast, request.user, limit=num_episodes)
    user = request.user

    # TODO: move into EpisodeList (?) class
    listeners = [e.listeners for e in episodes if e.listeners is not None]
    max_listeners = max(listeners, default=0)

    episode = None

    if episodes:
        episode = episodes[0]
        episodes = episodes[1:]

    if podcast.group:
        group = podcast.group
        rel_podcasts = group.podcast_set.exclude(pk=podcast.pk)
    else:
        rel_podcasts = []

    tags = get_tags(podcast, user)
    has_tagged = any(t['is_own'] for t in tags)

    if user.is_authenticated():
        subscribed_devices = Client.objects.filter(
            subscription__user=user,
            subscription__podcast=podcast,
        )

        subscribe_targets = get_subscribe_targets(podcast, user)

        has_history = HistoryEntry.objects.filter(user=user, podcast=podcast)\
                                          .exists()
        can_flattr = (user.profile.settings.get_wksetting(FLATTR_TOKEN) and
                      podcast.flattr_url)

    else:
        has_history = False
        subscribed_devices = []
        subscribe_targets = []
        can_flattr = False

    is_publisher = check_publisher_permission(user, podcast)

    episodes_total = podcast.episode_count or 0
    num_pages = episodes_total / num_episodes
    page_list = get_page_list(1, num_pages, 1, 15)

    return render(request, 'podcast.html', {
        'tags': tags,
        'has_tagged': has_tagged,
        'url': current_site,
        'has_history': has_history,
        'podcast': podcast,
        'devices': subscribed_devices,
        'related_podcasts': rel_podcasts,
        'can_subscribe': len(subscribe_targets) > 0,
        'subscribe_targets': subscribe_targets,
        'episode': episode,
        'episodes': episodes,
        'max_listeners': max_listeners,
        'can_flattr': can_flattr,
        'is_publisher': is_publisher,
        'page_list': page_list,
        'current_page': 1,
    })
Ejemplo n.º 4
0
def show(request, podcast):
    """ Shows a podcast detail page """

    podcast = check_restrictions(podcast)

    current_site = RequestSite(request)
    num_episodes = 20
    episodes = episode_list(podcast, request.user, limit=num_episodes)
    user = request.user

    # TODO: move into EpisodeList (?) class
    listeners = [e.listeners for e in episodes if e.listeners is not None]
    max_listeners = max(listeners, default=0)

    episode = None

    if episodes:
        episode = episodes[0]
        episodes = episodes[1:]

    if podcast.group:
        group = podcast.group
        rel_podcasts = group.podcast_set.all()
    else:
        rel_podcasts = []

    tags = get_tags(podcast, user)
    has_tagged = any(t['is_own'] for t in tags)

    if user.is_authenticated:
        subscribed_devices = Client.objects.filter(
            subscription__user=user, subscription__podcast=podcast)

        subscribe_targets = get_subscribe_targets(podcast, user)

        has_history = HistoryEntry.objects.filter(user=user,
                                                  podcast=podcast).exists()

    else:
        has_history = False
        subscribed_devices = []
        subscribe_targets = []

    is_publisher = check_publisher_permission(user, podcast)

    episodes_total = podcast.episode_count or 0
    num_pages = episodes_total / num_episodes
    page_list = get_page_list(1, num_pages, 1, 15)

    return render(
        request,
        'podcast.html',
        {
            'tags': tags,
            'has_tagged': has_tagged,
            'url': current_site,
            'has_history': has_history,
            'podcast': podcast,
            'devices': subscribed_devices,
            'related_podcasts': rel_podcasts,
            'can_subscribe': len(subscribe_targets) > 0,
            'subscribe_targets': subscribe_targets,
            'episode': episode,
            'episodes': episodes,
            'max_listeners': max_listeners,
            'is_publisher': is_publisher,
            'page_list': page_list,
            'current_page': 1,
        },
    )