Ejemplo n.º 1
0
def discover_exclude(request):
    """Discover new reads page."""
    ids = followed_ids(request)
    ids.append(request.user.pk)
    readings = Reading.objects.all().exclude(user__pk__in=ids).order_by("-created")
    d = {"objects": page(request, readings, 10), "title": "Discover"}
    return render_to_response("readings/feed.html", d, context_instance=RequestContext(request))
Ejemplo n.º 2
0
def feed(request):
    """Home page, show all readings from users."""
    # delete any friendly forwarding saved urls
    if request.session.get("next"):
        del request.session["next"]
    # if user is logged out
    if request.user.is_anonymous():
        # show all readings in random order
        #        day = datetime.date.today() - timedelta(days=28)
        #        readings = Reading.objects.all().filter(
        #            created__gte=day).order_by('?')
        # show first 10 readings
        readings = Reading.objects.all().order_by("-created")[:10]
    # if user is logged in
    else:
        # show readings from the users feed
        readings = request.user.profile.read_feed()
        # if no readings exist for feed, redirect to discover page
        if not readings:
            return HttpResponseRedirect(reverse("readings.views.discover"))
    d = {"title": "Skimreads"}
    if request.user.is_anonymous():
        d["form"] = SignUpForm()
        d["objects"] = readings[0:10]
    else:
        d["objects"] = page(request, readings, 10)
    return render_to_response("readings/feed.html", d, context_instance=RequestContext(request))
Ejemplo n.º 3
0
def list_user(request, slug):
    """Readings for a single user."""
    profile = get_object_or_404(Profile, slug=slug)
    user = User.objects.get(pk=profile.user_id)
    readings = Reading.objects.filter(user=user).order_by("-created")
    d = {
        "current_pk": user.pk,
        "objects": page(request, readings, 10),
        "profile_user": user,
        "title": "%s Reads" % user.first_name,
    }
    return render_to_response("readings/feed.html", add_csrf(request, d), context_instance=RequestContext(request))
Ejemplo n.º 4
0
def category(request, slug, category):
    """
    Show all readings that user has commented, 
    faved, added a note, tagged, or voted on.
    """
    profile = get_object_or_404(Profile, slug=slug)
    user = profile.user
    if category == 'comments':
        if profile.comment_reply_count() == 0:
            return HttpResponseRedirect(reverse('readings.views.list_user', 
                args=[profile.slug]))
        li = [comment.note.reading for comment in user.comment_set.all()]
        li += [reply.comment.note.reading for reply in user.reply_set.all()]
        li = set(li)
        title = 'Commented'
    if category == 'favorites':
        if profile.favorite_count() == 0:
            return HttpResponseRedirect(reverse('readings.views.list_user', 
                args=[profile.slug]))
        li = set([fave.reading for fave in user.favorite_set.all()])
        title = 'Favorite'
    if category == 'notes':
        if profile.note_count() == 0:
            return HttpResponseRedirect(reverse('readings.views.list_user', 
                args=[profile.slug]))
        li = set([note.reading for note in user.note_set.all()])
        title = 'Noted'
    if category == 'tags':
        if profile.tie_count() == 0:
            return HttpResponseRedirect(reverse('readings.views.list_user', 
                args=[profile.slug]))
        li = set([tie.reading for tie in user.tie_set.all()])
        title = 'Tagged'
    if category == 'votes':
        if profile.vote_count() == 0:
            return HttpResponseRedirect(reverse('readings.views.list_user', 
                args=[profile.slug]))
        li = set([vote.note.reading for vote in user.vote_set.all()])
        title = 'Voted'
    readings = reading_sorted(li)
    d = {
            'current_pk': user.pk,
            'objects': page(request, readings, 10),
            'profile_user': user,
            'title': "%s's %s Readings" % (user.first_name, title),
    }
    return render_to_response('readings/feed.html', add_csrf(request, d), 
        context_instance=RequestContext(request))
Ejemplo n.º 5
0
def detail(request, slug):
    """Show all readings for a single tag."""
    tag = get_object_or_404(Tag, slug=slug)
    readings = tag.readings()
    d = {"objects": page(request, readings, 10), "tag": tag, "title": "%s Reads" % tag.name.capitalize()}
    return render_to_response("readings/feed.html", add_csrf(request, d), context_instance=RequestContext(request))
Ejemplo n.º 6
0
def discover(request):
    """Show all reads."""
    readings = Reading.objects.all().order_by("-created")
    d = {"discover": True, "objects": page(request, readings, 10), "title": "Discover"}
    return render_to_response("readings/feed.html", d, context_instance=RequestContext(request))