コード例 #1
0
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})
コード例 #2
0
ファイル: me_addfriends.py プロジェクト: TayebJa3ba/socialray
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&current_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&current_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&current_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,})