コード例 #1
0
ファイル: views.py プロジェクト: alexdiao/3805
def connect(request):
    '''
    If use is at *register* status, render to connect template.
    '''
    if not assert_register(request):
        return redirect('main.views.index.index')
    template_name = 'main/account/sign_up2.html'
    if request.session['status'] == 'complete_profile':
        template_name = 'main/account/registration_connect.html'
    return render_to_response(template_name, context_instance=RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: alexdiao/3805
def success(request):
    '''
    Validate user's name and biograph. User's name can't contain sensitive words and some reversed words 
    and characters. If pass through validation, make the user active and login this user.
    '''
    if not assert_register(request):
        return redirect('main.views.index.index')
    
    template_name = 'main/account/sign_up4.html'
    if request.session['status'] == 'complete_profile':
        template_name = 'main/account/registration_success.html'
        
    request.session['bio'] = (request.POST['bio']).strip()
    
    if len(request.POST['bio']) > 50:
        messages.error(request, '个人简介的长度不能超过50个汉字')
        return redirect('registration_follow')
    
    new_user = User.objects.get(pk=request.session['uid'])
    new_user.backend = 'django.contrib.auth.backends.ModelBackend' 
    profile = Profile.objects.get(pk=new_user.pk)
    profile.bio = request.POST['bio']
    profile.save()
    invitation = InvitationCode.objects.get(user=profile)
    if invitation.inviter_id:
        follow_user(invitation.inviter_id, new_user.pk)
        follow_user(new_user.pk, invitation.inviter_id)
    # channel
    channels = request.POST.getlist('channel')
    for channel_id in channels:
        channel_id = int(channel_id)        
        msg_or_id = add_user_channel(new_user.pk, channel_id)

    try:
        del request.session['status']
        del request.session['bio']
    except KeyError:
        pass
    login(request, new_user)
    
    if "finished" in request.POST:
        return redirect("main.views.index.index")
        
    return render_to_response(template_name, context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: alexdiao/3805
def suggest_follow(request):
    """
    Suggest both user and topic to follow
    """
    if not assert_register(request):
        return redirect('main.views.index.index')
    template_name = 'main/account/sign_up3.html'
    if request.session['status'] == 'complete_profile':
        template_name = 'main/account/registration_follow.html'
    profile = Profile.objects.get(pk=request.session['uid'])
#    if not (profile.reader_access_token or profile.renren_account or profile.sina_account):
#        messages.error(request, '请至少连接一个账号')
#        return redirect(APP_URL + "register/connect/")
    
    if request.session.has_key('name'):
        name = request.session['name']
    else: name = profile.name
    
    if request.session.has_key('bio'):
        bio = request.session['bio']
    elif profile.bio: 
        bio = profile.bio
    else:
        bio = ''
    
    #If user has connected with RenRen, then set his RenRen image by default
    #Reference: http://stackoverflow.com/questions/1393202/django-add-image-in-an-imagefield-from-image-url
    try:
        if profile.image and profile.image != 'profile/profile100x100.jpg':
            raise Exception
        
        from PIL import Image #@UnresolvedImport
        #For handling weired bug of PIL Linux package that only identifies BMP image;
        # See http://www.chipx86.com/blog/2008/07/25/django-tips-pil-imagefield-and-unit-tests/
        Image.init()
        import urllib2
        from main.utils import generate_random_file_name
        import os

        dot_index = profile.renren_head_url.rfind('.')
        image_extension = profile.renren_head_url[dot_index:]
        image_name =  generate_random_file_name(32)+image_extension 
        
        temp_name = generate_random_file_name(32)+image_extension
        temp_file_addr = MEDIA_ROOT + 'profile/' + temp_name
        temp_file = open(temp_file_addr, 'wb')
        temp_file.write(urllib2.urlopen(profile.renren_head_url).read())
        temp_file.close()
        temp_file = open(temp_file_addr, 'rb') #open for read and assign to image field in model
        
        #Deletes old image if exists
        if profile.image and profile.image != 'profile/profile100x100.jpg':
            image_addr = MEDIA_ROOT + profile.image.name
            os.remove(image_addr) #If path is a directory, OSError is raised;So no worry about removing directory
        if profile.image_small and profile.image_small != 'profile/profile25x25.jpg':
            image_small_addr = MEDIA_ROOT + profile.image_small.name
            os.remove(image_small_addr)
        
        
        profile.image.save(image_name, temp_file)
        image_small_name =  generate_random_file_name(32)+image_extension 
        profile.image_small.save(image_small_name, temp_file)
        profile.save()
        
        temp_file.close()
        os.remove(temp_file_addr)
        
    except Exception, e:
        error = repr(e)
        pass