Beispiel #1
0
def edit_profile(request):
    ''' les get fancy with images '''
    if not request.method == 'POST':
        return redirect('/user/%s' % request.user.localname)

    form = forms.EditUserForm(request.POST, request.FILES)
    if not form.is_valid():
        return redirect('/')

    request.user.name = form.data['name']
    if 'avatar' in form.files:
        # crop and resize avatar upload
        image = Image.open(form.files['avatar'])
        target_size = 120
        width, height = image.size
        thumbnail_scale = height / (width / target_size) if height > width \
            else width / (height / target_size)
        image.thumbnail([thumbnail_scale, thumbnail_scale])
        width, height = image.size

        width_diff = width - target_size
        height_diff = height - target_size
        cropped = image.crop(
            (int(width_diff / 2), int(height_diff / 2),
             int(width - (width_diff / 2)), int(height - (height_diff / 2))))
        output = BytesIO()
        cropped.save(output, format=image.format)
        ContentFile(output.getvalue())
        request.user.avatar.save(form.files['avatar'].name,
                                 ContentFile(output.getvalue()))

    request.user.summary = form.data['summary']
    request.user.manually_approves_followers = \
        form.cleaned_data['manually_approves_followers']
    request.user.save()

    outgoing.handle_update_user(request.user)
    return redirect('/user/%s' % request.user.localname)
Beispiel #2
0
def edit_profile(request):
    ''' les get fancy with images '''
    if not request.method == 'POST':
        return redirect('/user/%s' % request.user.localname)

    form = forms.EditUserForm(request.POST, request.FILES)
    if not form.is_valid():
        return redirect('/')

    request.user.name = form.data['name']
    if 'avatar' in form.files:
        # crop and resize avatar upload
        original = Image.open(form.files['avatar'])
        target_size = 120
        height, width = original.size
        scale = height / target_size if height < width else width / target_size
        resized = original.resize((int(height / scale), int(width / scale)))
        height, width = resized.size

        cropped = resized.crop((int(
            (width - target_size) / 2), int((height - target_size) / 2),
                                int(width - (width - target_size) / 2),
                                int(height - (height - target_size) / 2)))
        output = BytesIO()
        cropped.save(output, format='JPEG')
        ContentFile(output.getvalue())
        request.user.avatar.save(form.files['avatar'].name,
                                 ContentFile(output.getvalue()))

    request.user.summary = form.data['summary']
    request.user.manually_approves_followers = \
        form.cleaned_data['manually_approves_followers']
    request.user.save()

    outgoing.handle_update_user(request.user)
    return redirect('/user/%s' % request.user.localname)