Esempio n. 1
0
def settings_profile(request):
    """Set current user's profile settings.

    Returns:
        HttpResponse

    """

    # Extra information about the current user
    profile = Profile.objects.get(user=request.user)

    if request.method == 'POST':

        form = ProfileForm(request.user, request.POST)

        if form.is_valid():
            profile.biography = form.data['biography']
            profile.site = form.data['site']
            profile.show_email = 'show_email' in form.data
            profile.avatar_url = form.data['avatar_url']
            profile.mail_on_private_message = \
                'mail_on_private_message' in form.data
            profile.save()

            messages.success(request,
                             u'Le profil a correctement été mis à jour.')

            return redirect('/membres/parametres/profil')

        else:
            return render_template('member/settings_profile.html',
                                   {'form': form})
    else:
        form = ProfileForm(request.user,
                           initial={
                               'biography':
                               profile.biography,
                               'site':
                               profile.site,
                               'avatar_url':
                               profile.avatar_url,
                               'show_email':
                               profile.show_email,
                               'mail_on_private_message':
                               profile.mail_on_private_message
                           })

        return render_template('member/settings_profile.html', {'form': form})
Esempio n. 2
0
def edit_profile(request):
    """Edit an user's profile.

    Returns:
        HttpResponse

    """
    try:
        profile_pk = int(request.GET['profil'])
        profile = get_object_or_404(Profile, pk=profile_pk)
    except KeyError:
        profile = get_object_or_404(Profile, user=request.user)

    # Making sure the user is allowed to do that
    if not request.user == profile.user:
        raise PermissionDenied

    if request.method == 'POST':
        form = ProfileForm(request.POST)
        if form.is_valid():
            data = form.data
            profile.biography = data['biography']
            profile.site = data['site']
            profile.user.email = data['email']
            profile.show_email = 'show_email' in data

            # Save the user and it's associated profile
            profile.user.save()
            profile.save()
            return redirect(profile.get_absolute_url())
        else:
            raise Http404
    else:
        return render_template('member/edit_profile.html',
                               {'profile': profile})