def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if request.method == 'GET': return siteaction.render_to_response('me/searchpeople.htm', {'showing_search_results': False, 'myself': myself, 'interesting': searchpeople.getInterestingUsers(myself)}) elif request.method == 'POST': keywords = dataplus.dictGetVal(request.REQUEST,'keywords') if dataplus.dictGetVal(request.REQUEST,'action') == 'display': page = dataplus.dictGetVal(request.REQUEST,'page',0,string.atoi) pickled_match_list = dataplus.dictGetVal(request.REQUEST,'matches') match_list = cPickle.loads(str(pickled_match_list)) start_num = page * config.user_matches_per_page end_num = ((page + 1) * config.user_matches_per_page) display_list = match_list[start_num:end_num] users_bulk_dict = models.User.objects.in_bulk(display_list) matching_users = dataplus.getOrderedList(users_bulk_dict, display_list) for user in matching_users: user.image_url = dataplus.getStaticUrl(user.image_size2_file_path) message = 'Showing ' + str(start_num + 1) + ' - ' + str(start_num + len(matching_users)) + ' of ' + str(len(match_list)) + ' matches.' num_pages = ((len(match_list)-1)/config.user_matches_per_page) + 1 return siteaction.render_to_response('me/searchpeople.htm', {'showing_search_results': True, 'myself': myself, 'message': message, 'matching_users': matching_users, 'matches': cgi.escape(pickled_match_list), 'keywords': cgi.escape(keywords, True), 'page_links_html': getPageLinksHtml(num_pages, page), }) else: keywords = keywords.strip() if not keywords: return siteaction.render_to_response('me/searchpeople.htm', {'showing_search_results': True, 'myself': myself, 'message': 'Please enter a valid search query.'}) matching_userids = searchpeople.getMatches(keywords) if matching_userids: display_list = matching_userids[:config.user_matches_per_page] users_bulk_dict = models.User.objects.in_bulk(display_list) matching_users = dataplus.getOrderedList(users_bulk_dict, display_list) for user in matching_users: user.image_url = dataplus.getStaticUrl(user.image_size2_file_path) message = 'Showing 1 - ' + str(len(matching_users)) + ' of ' + str(len(matching_userids)) + ' matches.' num_pages = ((len(matching_userids)-1)/config.user_matches_per_page) + 1 return siteaction.render_to_response('me/searchpeople.htm', {'matching_users': matching_users, 'keywords': cgi.escape(keywords, True), 'myself': myself, 'message':message, 'matches': cgi.escape(cPickle.dumps(matching_userids)), 'page_links_html': getPageLinksHtml(num_pages, 0), 'showing_search_results': True}) else: return siteaction.render_to_response('me/searchpeople.htm', {'matching_users': None, 'keywords': cgi.escape(keywords, True), 'message': 'Your search did not return any results.', 'myself': myself, 'showing_search_results': True})
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') action = dataplus.dictGetVal(request.REQUEST, 'action') email_ids = [] if request.method == 'GET': current_pane = dataplus.dictGetVal(request.REQUEST, 'current_pane') return siteaction.render_to_response('me/addfriends.htm', {'invite_more': (action == 'invite_more'), 'action_result': ('','Do you want to invite more people? <a href="' + config.server_base_url + '/me">Nope</a>')[action == 'invite_more'], 'invite_by_search_box': ((not current_pane) or current_pane == 'invite_by_search'), 'invite_by_email_box': (current_pane == 'email_invite'), 'bulk_invite_box': (current_pane == 'bulk_invite'), 'myself':myself }) elif request.method == 'POST': has_valid_emails = False if action == 'email_invite': message = dataplus.dictGetSafeVal(request.REQUEST, 'msgToMembers', '') email_ids = dataplus.dictGetSafeVal(request.REQUEST, 'emailIds', '') add_to_friend_list = True if email_ids: email_ids = email_ids.split() if(len(email_ids) < 2): email_ids = email_ids[0].split(',') if(len(email_ids) < 2): email_ids = email_ids[0].splitlines() has_valid_emails = processEmails(email_ids, message, myself) return HttpResponseRedirect('/me/addfriends.htm?action=invite_more¤t_pane=email_invite') if not has_valid_emails: return siteaction.render_to_response('me/addfriends.htm', {'myself':myself , 'invite_by_email_invalid': 'Please enter valid emails'}) return HttpResponseRedirect('/me/addfriends.htm?action=invite_more¤t_pane=email_invite') elif action == 'bulk_invite': message = dataplus.dictGetSafeVal(request.REQUEST, 'msgToFriends', '') file = request.FILES.getlist('csvEmailIds')[0] lines = file['content'].splitlines() if lines: for line in lines: for email_id in line.split(','): email_ids.append(email_id.strip('"')) has_valid_emails = processEmails(email_ids, message, myself) return HttpResponseRedirect('/me/addfriends.htm?action=invite_more¤t_pane=bulk_invite') elif action == 'invite_by_search': keywords = dataplus.dictGetVal(request.REQUEST,'keywords') if dataplus.dictGetVal(request.REQUEST,'actionplus') == 'display': page = dataplus.dictGetVal(request.REQUEST,'page',0,string.atoi) pickled_match_list = dataplus.dictGetVal(request.REQUEST,'matches') match_list = cPickle.loads(str(pickled_match_list)) start_num = page * config.user_matches_per_page end_num = ((page + 1) * config.user_matches_per_page) display_list = match_list[start_num:end_num] users_bulk_dict = models.User.objects.in_bulk(display_list) matching_users = dataplus.getOrderedList(users_bulk_dict, display_list) for user in matching_users: user.image_url = dataplus.getStaticUrl(user.image_size2_file_path) message = 'Showing ' + str(start_num + 1) + ' - ' + str(start_num + len(matching_users)) + ' of ' + str(len(match_list)) + ' matches.' num_pages = ((len(match_list)-1)/config.user_matches_per_page) + 1 return siteaction.render_to_response('me/addfriends.htm', {'showing_search_results': True, 'myself': myself, 'message': message, 'matching_users': matching_users, 'matches': cgi.escape(pickled_match_list), 'keywords': cgi.escape(keywords, True), 'page_links_html': getPageLinksHtml(num_pages, page), 'invite_by_search_box': True, }) else: keywords = keywords.strip() if not keywords: return siteaction.render_to_response('me/addfriends.htm', {'showing_search_results': True, 'myself': myself, 'message': 'Please enter a valid search query.', 'invite_by_search_box': True,}) matching_userids = searchpeople.getMatches(keywords) if matching_userids: display_list = matching_userids[:config.user_matches_per_page] users_bulk_dict = models.User.objects.in_bulk(display_list) matching_users = dataplus.getOrderedList(users_bulk_dict, display_list) for user in matching_users: user.image_url = dataplus.getStaticUrl(user.image_size2_file_path) message = 'Showing 1 - ' + str(len(matching_users)) + ' of ' + str(len(matching_userids)) + ' matches.' num_pages = ((len(matching_userids)-1)/config.user_matches_per_page) + 1 return siteaction.render_to_response('me/addfriends.htm', {'matching_users': matching_users, 'keywords': cgi.escape(keywords, True), 'myself': myself, 'message':message, 'matches': cgi.escape(cPickle.dumps(matching_userids)), 'page_links_html': getPageLinksHtml(num_pages, 0), 'showing_search_results': True, 'invite_by_search_box': True,}) else: return siteaction.render_to_response('me/addfriends.htm', {'matching_users': None, 'keywords': cgi.escape(keywords, True), 'message': 'Your search did not return any results.', 'myself': myself, 'showing_search_results': True, 'invite_by_search_box': True,})