Example #1
0
def user_main(request, username):
    target_user = Profile.find(username)

    if not target_user:
        return HttpResponse(status=404)
    logger.info("Generating profile page for %s", target_user)

    class Stats:
        pass

    stats = Stats()
    stats.join_date = target_user.join_date
    all_reviews = Review.objects.filter(user=target_user).filter(deleted=False)
    stats.num_reviewed = len(all_reviews)
    watched_list = UserList.objects.filter(user=target_user, list_name='Watched')
    watched = UserListItem.objects.filter(user_list=watched_list)
    stats.num_watched = len(watched)
    all_ratings = Rating.objects.filter(user=target_user)
    stats.num_rated = len(all_ratings)

    sorted_objs = sorted(list(all_reviews), key=lambda x: x.date_created)
    # Only reviews posted in the last month are displayed
    past_month = lambda x: date.today() - x.date_created.date() < timedelta(30)
    stats.recent_reviews = filter(past_month, sorted_objs)
    logger.info("Displayed %d of %d reviews", len(stats.recent_reviews), len(sorted_objs))

    return render(request, 'profile/main.html', {
        'current_user': target_user.user.username,
        'review_list': get_review_approvals(request, stats.recent_reviews),
        'display_title': True,  # To display titles of movie next to Review
        'user_stats': stats,
    })
Example #2
0
def main(request):
    user = Profile.get(request.user)
    if not user:
        return HttpResponseForbidden()
    user_reviews = Review.objects.filter(user=user)
    return render(request, 'profile/main.html', {
        'review_list': get_review_approvals(request, user_reviews),
        'display_title': True,  # To display titles of movie next to Review
    })
Example #3
0
def admin_page(request):
    if not request.user.is_superuser:
        logger.info('Unauthorized attempt to access admin page by user %s', request.user.username)
        return HttpResponseForbidden()
    unapproved_reviews = Review.objects.filter(Q(approved=None) | Q(approved=False)).filter(deleted=False)
    return render(request, 'profile/admin_page.html', {
        'all_users': Profile.objects.all(),
        'unapproved_reviews': get_review_approvals(request, unapproved_reviews)
    })
Example #4
0
def admin_page(request):
    if not request.user.is_superuser:
        logger.info("Unauthorized attempt to access admin page by user %s", request.user.username)
        return HttpResponseForbidden()
    unapproved_reviews = Review.objects.filter(Q(approved=None) | Q(approved=False)).filter(deleted=False)
    return render(
        request,
        "profile/admin_page.html",
        {"all_users": Profile.objects.all(), "unapproved_reviews": get_review_approvals(request, unapproved_reviews)},
    )
Example #5
0
def main(request):
    user = Profile.get(request.user)
    if not user:
        return HttpResponseForbidden()
    user_reviews = Review.objects.filter(user=user)
    return render(
        request,
        "profile/main.html",
        {
            "review_list": get_review_approvals(request, user_reviews),
            "display_title": True,  # To display titles of movie next to Review
        },
    )
Example #6
0
def user_main(request, username):
    target_user = Profile.find(username)

    if not target_user:
        return HttpResponse(status=404)
    logger.info("Generating profile page for %s", target_user)

    class Stats:
        pass

    stats = Stats()
    stats.join_date = target_user.join_date
    all_reviews = Review.objects.filter(user=target_user).filter(deleted=False)
    stats.num_reviewed = len(all_reviews)
    watched_list = UserList.objects.filter(user=target_user, list_name="Watched")
    watched = UserListItem.objects.filter(user_list=watched_list)
    stats.num_watched = len(watched)
    all_ratings = Rating.objects.filter(user=target_user)
    stats.num_rated = len(all_ratings)

    sorted_objs = sorted(list(all_reviews), key=lambda x: x.date_created)
    # Only reviews posted in the last month are displayed
    past_month = lambda x: date.today() - x.date_created.date() < timedelta(30)
    stats.recent_reviews = filter(past_month, sorted_objs)
    logger.info("Displayed %d of %d reviews", len(stats.recent_reviews), len(sorted_objs))

    return render(
        request,
        "profile/main.html",
        {
            "current_user": target_user.user.username,
            "review_list": get_review_approvals(request, stats.recent_reviews),
            "display_title": True,  # To display titles of movie next to Review
            "user_stats": stats,
        },
    )