Example #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,
    })
Example #2
0
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
    })
Example #3
0
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
    })
Example #4
0
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()
            if request.is_ajax():
                return HttpResponse(status=204)
            return redirect('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})