Ejemplo n.º 1
0
def edit(request):
    """Edit the currently logged in users profile."""
    profile = request.user.get_profile()
    form_class = ProfileForm
    mode = 'edit'
    if not profile.has_chosen_identifier:
        mode = 'create'
        form_class = ProfileCreateForm
    if request.method == 'POST':
        form = form_class(data=request.POST,
                          files=request.FILES,
                          instance=profile)
        if form.is_valid():
            profile = form.save(commit=False)
            profile.user = request.user
            profile.save()
            # adding in a link non-JS
            links_form = ProfileLinksForm(data={
                'url': request.POST['link_url'],
                'name': request.POST['link_name']
            })
            if links_form.is_valid():
                link = links_form.save(commit=False)
                link.profile = profile
                link.save()
            return redirect(profile)
    else:
        form = form_class(instance=profile)
    links = profile.link_set.all()
    return jingo.render(request, 'users/edit.html', {
        'form': form,
        'links': links,
        'profile': profile,
        'page_mode': mode,
    })
def add_link(request):
    profile = request.user.get_profile()
    if request.method == 'POST':
        form = ProfileLinksForm(data=request.POST)
        if form.is_valid():
            link = form.save(commit=False)
            link.profile = profile
            link.save()
            return HttpResponseRedirect(reverse('users_edit'))
        else:
            if request.is_ajax():
                return HttpResponse(json.dumps(form.errors), status=400)
            return jingo.render(request, 'users/profile_link_add.html',
                                {'form': form})
    form = ProfileLinksForm()
    return jingo.render(request, 'users/profile_link_add.html', {'form': form})
def edit(request):
    """Edit the currently logged in users profile."""
    profile = request.user.get_profile()
    if request.method == 'POST':
        form = ProfileForm(data=request.POST,
                           files=request.FILES,
                           instance=profile)
        if form.is_valid():

            success_message = ugettext(u"Thank you \u2013 your profile has "
                                       u"been updated.")

            profile = form.save(commit=False)
            profile.user = request.user
            profile.save()
            # if the link form is present we have a few more checks to do
            if 'link_url' in request.POST:
                # adding in a link non-JS
                links_form = ProfileLinksForm(
                    data={
                        'url': request.POST['link_url'],
                        'name': request.POST['link_name']
                    })
                if links_form.is_valid():
                    link = links_form.save(commit=False)
                    link.profile = profile
                    link.save()
                messages.success(request, success_message)
                # links only valid on betafarm so feels safe to do this...
                return HttpResponseRedirect(
                    reverse('users_profile',
                            kwargs={'username': request.user.username}))
            else:
                messages.success(request, success_message)
                return HttpResponseRedirect('/')
    form = ProfileForm(instance=profile)
    links = profile.link_set.all()
    return jingo.render(request, 'users/edit.html', {
        'form': form,
        'links': links
    })