diff options
Diffstat (limited to 'users/views.py')
| -rw-r--r-- | users/views.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/users/views.py b/users/views.py index f0d423b1..56ea9dab 100644 --- a/users/views.py +++ b/users/views.py @@ -2,6 +2,8 @@ from django.http import HttpResponseRedirect from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login, logout from django.contrib import messages +from .models import UserProfile +from django.contrib.auth.models import User # Create your views here. @@ -28,3 +30,38 @@ def login_user(request): def logout_user(request): logout(request) return redirect('/') + +def update_user(request): + username = request.user + first_name = request.POST['firstname'] + last_name = request.POST['lastname'] + location = request.POST['location'] + gravatar_email = request.POST['gravatarEmail'] + bio = request.POST['bio'] + is_public = True if request.POST['isPublic'] == '1' else False + email_public = False + if 'emailPublic' in request.POST: + email_public = True if request.POST['emailPublic'] == '1' else False + + if username is not None: + user = User.objects.get(username=username) + user.first_name = first_name + user.last_name = last_name + user.save() + try: + user_profile = UserProfile.objects.get(user=username) + user_profile.location = location + user_profile.gravatar_email = gravatar_email + user_profile.bio = bio + user_profile.is_public = is_public + user_profile.email_public = email_public + user_profile.save() + except UserProfile.DoesNotExist: + user_profile = UserProfile(user=username, location=location, gravatar_email=gravatar_email, bio=bio, is_public=is_public, email_public=email_public) + user_profile.save() + messages.success(request, 'Profile was successfully updated!') + return redirect('/account') + else: + messages.error(request, 'Unable to update profile! Please try again later.') + return redirect('/') + |
