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))
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))
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))