def user_profile(user_id): """ display user profile, including map and recent 5 footprints """ user = db.session.query(User).filter(User.user_id == user_id).one() #get all footprints footprint = db.session.query(Visit).filter(Visit.user_id == user_id).\ order_by(Visit.visit_id.desc()) total_footprints = len(footprint.all()) recent_footprints = footprint.limit(5).all() total_friends = len(get_friends(user_id).all()) current_user_id = session["current_user"]["user_id"] # Check connection status between user_a and user_b friends, pending_request = friends_or_pending(current_user_id, user_id) return render_template("user_profile.html", user=user, total_footprints=total_footprints, recent_footprints=recent_footprints, total_friends=total_friends, friends=friends, pending_request=pending_request)
def user_profile(user_id): """Show user profile with map and list of visited restaurants.""" user = db.session.query(User).filter(User.user_id == user_id).one() # Get user's breadcrumbs in descending order breadcrumbs = db.session.query(Visit).filter( Visit.user_id == user_id).order_by(Visit.visit_id.desc()) total_breadcrumbs = len(breadcrumbs.all()) recent_breadcrumbs = breadcrumbs.limit(5).all() total_friends = len(get_friends(user.user_id).all()) user_a_id = session["current_user"]["user_id"] user_b_id = user.user_id # Check connection status between user_a and user_b friends, pending_request = is_friends_or_pending(user_a_id, user_b_id) return render_template("user_profile.html", user=user, total_breadcrumbs=total_breadcrumbs, recent_breadcrumbs=recent_breadcrumbs, total_friends=total_friends, friends=friends, pending_request=pending_request)
def profile(response, username): auth.require_user(response) user = auth.get_user(response) if user == None: return if not username: username = user else: username = User.get(username) if user is not None: firstname = username.get_first_name() lastname = username.get_last_name() email = username.get_email() school = username.get_school() interests = {"activities":None, "tv":None} about = {"birthday":None, "age":None, "website":None} education = {"school":None,"subjects":None,"state":None,"grade":None} picture = username.get_profile_pic_path() if not picture: picture = "/static/images/default_avatar.jpeg" print "PICTURE IS: " + picture fullname = firstname + " " + lastname context = {"title":fullname, 'wallorfeed':'wallupdate', "username":username.get_username(),'current_Wall':username.get_username(), "profile_pic_location":picture, "email":email, "school":school, "css": "profile", "friends":friends.get_friends(username.get_username()), "user": user, "interests": interests, "about": about, "education":education,"user":user,'can_use_wall':can_use_wall(user,username.get_username())} template.render_template("templates/profile.html", context, response)
def settings(): users.require_role(2) user_id = session["user_id"] events_with_own_level = events.get_all_events_for_user(user_id) own_weekly_entries = entries.get_weekly_entries_for_user(user_id) friends_list = friends.get_friends(user_id) friend_requests = friends.get_friends_open_requests(user_id) friend_requests_own = friends.get_own_requests(user_id) weekdays = {0: "SU", 1: "MA", 2: "TI", 3: "KE", 4: "TO", 5: "PE", 6: "LA"} user_info = users.get_user_info(user_id) if session["user_role"] == 1 or session["user_role"] == 0: all_events = events.get_all_events() return render_template("settings.html", all_events=all_events, friend_requests_own=friend_requests_own, user_info=user_info, days=weekdays, events_with_own_level=events_with_own_level, own_weekly_entries=own_weekly_entries, friends=friends_list, friend_requests=friend_requests) return render_template("settings.html", friend_requests_own=friend_requests_own, user_info=user_info, days=weekdays, events_with_own_level=events_with_own_level, own_weekly_entries=own_weekly_entries, friends=friends_list, friend_requests=friend_requests)
def user_profile(user_id): """Show user profile with map and list of visited restaurants.""" user = db.session.query(User).filter(User.user_id == user_id).one() # Get user's breadcrumbs in descending order breadcrumbs = db.session.query(Visit).filter(Visit.user_id == user_id).order_by(Visit.visit_id.desc()) total_breadcrumbs = len(breadcrumbs.all()) recent_breadcrumbs = breadcrumbs.limit(5).all() total_friends = len(get_friends(user.user_id).all()) user_a_id = session["current_user"]["user_id"] user_b_id = user.user_id # Check connection status between user_a and user_b friends, pending_request = is_friends_or_pending(user_a_id, user_b_id) return render_template("user_profile.html", user=user, total_breadcrumbs=total_breadcrumbs, recent_breadcrumbs=recent_breadcrumbs, total_friends=total_friends, friends=friends, pending_request=pending_request)
def show_friends_and_requests(): """Show friend requests and list of all friends""" # This returns User objects for current user's friend requests received_friend_requests, sent_friend_requests = get_friend_requests(session["current_user"]["user_id"]) # This returns a query for current user's friends (not User objects), but adding .all() to the end gets list of User objects friends = get_friends(session["current_user"]["user_id"]).all() return render_template("friends.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends)
def show_friends_and_requests(): """Show friend requests and list of all friends""" # This returns User objects for current user's friend requests received_friend_requests, sent_friend_requests = get_friend_requests( session["current_user"]["user_id"]) # This returns a query for current user's friends (not User objects), but adding .all() to the end gets list of User objects friends = get_friends(session["current_user"]["user_id"]).all() return render_template("friends.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends)
def show_friends_and_requests(): """ show friends and requests """ received_friend_requests, sent_friend_requests = get_friend_requests( session["current_user"]["user_id"]) friends = get_friends(session["current_user"]["user_id"]).all() return render_template("friends.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends)
def restaurant_profile(restaurant_id): """Show restaurant information.""" restaurant = db.session.query(Restaurant).filter(Restaurant.restaurant_id == restaurant_id).one() # Returns query for current user's friends, not User objects friends = get_friends(session["current_user"]["user_id"]) # Pass friends into this query to filter by restaurant, and join visits table to # see which of user's friends have visited this restaurant friends_who_visited = friends.filter(Visit.restaurant_id == restaurant_id).join(Visit, Visit.user_id == Connection.user_b_id).all() return render_template("restaurant_profile.html", restaurant=restaurant, friends_who_visited=friends_who_visited)
def test_get_friends_2(): """ Tests friends.get_friends() submodule ------------------------------------- Parameters : None ================= Checks performed -------------------------------------------------------------------- > Correct loading of details from a test input file with blank lines > Same user_ids for mulitple friends """ # expected output correct_friends = "Error: multiple users with same user_id 2" friends_ = friends.get_friends('test_friend_list_2.json') assert friends_ == correct_friends
def profile(response, username): auth.require_user(response) user = auth.get_user(response) if user == None: return if not username: username = user else: username = User.get(username) if user is not None: firstname = username.get_first_name() lastname = username.get_last_name() email = username.get_email() school = username.get_school() interests = {"activities": None, "tv": None} about = {"birthday": None, "age": None, "website": None} education = { "school": None, "subjects": None, "state": None, "grade": None } picture = username.get_profile_pic_path() if not picture: picture = "/static/images/default_avatar.jpeg" print "PICTURE IS: " + picture fullname = firstname + " " + lastname context = { "title": fullname, 'wallorfeed': 'wallupdate', "username": username.get_username(), 'current_Wall': username.get_username(), "profile_pic_location": picture, "email": email, "school": school, "css": "profile", "friends": friends.get_friends(username.get_username()), "user": user, "interests": interests, "about": about, "education": education, "user": user, 'can_use_wall': can_use_wall(user, username.get_username()) } template.render_template("templates/profile.html", context, response)
def restaurant_profile(restaurant_id): """Show restaurant information.""" restaurant = db.session.query(Restaurant).filter( Restaurant.restaurant_id == restaurant_id).one() # Returns query for current user's friends, not User objects friends = get_friends(session["current_user"]["user_id"]) # Pass friends into this query to filter by restaurant, and join visits table to # see which of user's friends have visited this restaurant friends_who_visited = friends.filter( Visit.restaurant_id == restaurant_id).join( Visit, Visit.user_id == Connection.user_b_id).all() return render_template("restaurant_profile.html", restaurant=restaurant, friends_who_visited=friends_who_visited)
def search_users(): """Search for a user by email and return results.""" # Returns users for current user's friend requests received_friend_requests, sent_friend_requests = get_friend_requests(session["current_user"]["user_id"]) # Returns query for current user's friends (not User objects) so add .all() to the end to get list of User objects friends = get_friends(session["current_user"]["user_id"]).all() user_input = request.args.get("q") # Search user's query in users table of db and return all search results search_results = search(db.session.query(User), user_input).all() return render_template("friends_search_results.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends, search_results=search_results)
def search_users(): """Search for a user by email and return results.""" received_friend_requests, sent_friend_requests = get_friend_requests( session["current_user"]["user_id"]) friends = get_friends(session["current_user"]["user_id"]).all() user_input = request.args.get("q") # query all users whose email contain user_input search_results = db.session.query(User).filter( User.email.like('%' + user_input + '%')).all() return render_template("friends_search_results.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends, search_results=search_results)
def search_users(): """Search for a user by email and return results.""" # Returns users for current user's friend requests received_friend_requests, sent_friend_requests = get_friend_requests( session["current_user"]["user_id"]) # Returns query for current user's friends (not User objects) so add .all() to the end to get list of User objects friends = get_friends(session["current_user"]["user_id"]).all() user_input = request.args.get("q") # Search user's query in users table of db and return all search results search_results = search(db.session.query(User), user_input).all() return render_template("friends_search_results.html", received_friend_requests=received_friend_requests, sent_friend_requests=sent_friend_requests, friends=friends, search_results=search_results)
def test_get_friends_1(): """ Tests friends.get_friends() submodule ------------------------------------- Parameters : None ================= Checks performed --------------------------------------------------- > Correct loading of details from a test input file """ # declare validation list correct_friends = [ {"latitude": "12.986375", "user_id": 12, "name": "Chris", "longitude": "77.043701"}, {"latitude": "11.92893", "user_id": 1, "name": "Alice", "longitude": "78.27699"}, {"latitude": "11.8856167", "user_id": 2, "name": "Ian", "longitude": "78.4240911"}, {"latitude": "12.3191841", "user_id": 3, "name": "Jack", "longitude": "78.5072391"} ] friends_ = friends.get_friends('test_friend_list_1.json') assert friends_ == correct_friends
def trail_profile(trail_id): """ show trail info """ trail = db.session.query(Trail).filter(Trail.trail_id == trail_id).one() #friends who visited friends = get_friends(session["current_user"]["user_id"]) user_visited = db.session.query(User).join( Visit, Visit.user_id == User.user_id).filter(Visit.trail_id == trail_id) has_friends_visited = False for friend in friends: if friend in user_visited: has_friends_visited = True break return render_template("trail_profile.html", trail=trail, friends=friends, user_visited=user_visited, has_friends_visited=has_friends_visited)