Exemple #1
0
def notifications(request):
    asi_session = request.session['asi_session']

    asi_session = request.session['asi_session']
    user_id = asi_session.user_id
    notifications = EventLog.get_notifications(user_id)

    pending_friend_ids = asi_session.get_pending_friend_requests()
    pending_requests = []

    for id_ in pending_friend_ids:
        try:
            pending = api.people.get(id_)
            pending_requests.append(pending)
        except api.people.UserDoesNotExist:
            pass

    template = loader.get_template("frontpage/notifications.html")
    context = RequestContext(request, {
                'ASI_BASE_URL': ASI_BASE_URL,
                'asi_session': asi_session,
                'requests': pending_requests,
                'notifications': notifications
    })
    return HttpResponse(template.render(context))
Exemple #2
0
def profile(request, user_id=None):
    template = loader.get_template("frontpage/profile.html")
    asi_session = request.session['asi_session']
    user_id = user_id if user_id else asi_session.user_id

    try:
        user = api.people.get(user_id)
    except api.people.UserDoesNotExist:
        raise Http404

    username = user['username']
    try:
        realname = user['name']['unstructured']
    except (KeyError, TypeError):
        realname = username
    try:
        avatar_url = '{0}{1}/large_thumbnail'.format(
            ASI_BASE_URL, user['avatar']['link']['href'])
    except (KeyError, TypeError):
        avatar_url = ''
    feedurl = 'frontpage/feeds.html'
    feeds = EventLog.constructor(user_ids=user_id)

    # mutual friends
    mutual_friends = []
    mutual_friend_ids = api.people.get_mutual_friends(
                                                asi_session.user_id, user_id)
    for mutual_friend_id in mutual_friend_ids:
        mutual_friends.append(api.people.get(mutual_friend_id))

    # mutual courses
    mutual_courses = []
    mutual_course_ids = utils.mutual_courses(
                                        asi_session.user_id, user_id)

    for mutual_course_id in mutual_course_ids:
        try:
            mutual_courses.append(api.course.get_course(mutual_course_id))
        except Exception:
            # Just ignore invalid course codes
            pass

    context = RequestContext(request, {
        'asi_session': request.session['asi_session'],
        'ASI_BASE_URL': ASI_BASE_URL,
        'profile_user': user,
        'username': username,
        'realname': realname,
        'avatar_url': avatar_url,
        'template': 'profile',
        'feedurl': feedurl,
        'feeds': feeds,
        'mutual_friends': mutual_friends,
        'mutual_courses': mutual_courses
    })
    return HttpResponse(template.render(context))
Exemple #3
0
def home(request):
    asi_session = request.session['asi_session']
    user_id = asi_session.user_id
    friends = api.people.get_friends(user_id)
    template = loader.get_template("frontpage/home.html")
    feedurl = 'frontpage/feeds.html'
    feeds = EventLog.constructor(user_ids=friends)
    notification_num = RecommendedCourse.get_notification_num(user_id=user_id)
    pending_friend_ids = asi_session.get_pending_friend_requests()
    friend_requests_num = len(pending_friend_ids)

    context = RequestContext(request, {
        'asi_session': request.session['asi_session'],
        'feedurl': feedurl,
        'feeds': feeds,
        'notification_num':notification_num,
        'friend_requests_num': friend_requests_num
    })
    return HttpResponse(template.render(context))