aboutsummaryrefslogtreecommitdiff
path: root/users/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'users/views.py')
-rw-r--r--users/views.py37
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('/')
+