summaryrefslogtreecommitdiffstats
path: root/hyperkitty/views/accounts.py
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2013-02-14 16:28:50 +0100
committerAurélien Bompard <aurelien@bompard.org>2013-02-14 16:28:50 +0100
commit3ae10864b6289edbc4d756bad5d6a4276f0ab368 (patch)
treed45c71fa3daf5c8451aaf64723afb29f2480b887 /hyperkitty/views/accounts.py
parenta5a7c229d1cd45d51a09133f2355f4d26618c4fa (diff)
downloadhyperkitty-3ae10864b6289edbc4d756bad5d6a4276f0ab368.tar.gz
hyperkitty-3ae10864b6289edbc4d756bad5d6a4276f0ab368.tar.xz
hyperkitty-3ae10864b6289edbc4d756bad5d6a4276f0ab368.zip
The user profile page is now editable (#32)
Diffstat (limited to 'hyperkitty/views/accounts.py')
-rw-r--r--hyperkitty/views/accounts.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/hyperkitty/views/accounts.py b/hyperkitty/views/accounts.py
index d35641b..8e5dc03 100644
--- a/hyperkitty/views/accounts.py
+++ b/hyperkitty/views/accounts.py
@@ -32,18 +32,23 @@ from django.utils.http import is_safe_url
from django.utils.translation import gettext as _
from hyperkitty.models import UserProfile, Rating, Favorite
-from hyperkitty.views.forms import RegistrationForm
+from hyperkitty.views.forms import RegistrationForm, UserProfileForm
from hyperkitty.lib import get_store
logger = logging.getLogger(__name__)
+FLASH_MESSAGES = {
+ "updated-ok": "The profile was successfully updated.",
+}
+
@login_required
def user_profile(request, user_email=None):
if not request.user.is_authenticated():
return redirect('user_login')
+
store = get_store(request)
# try to render the user profile.
@@ -53,6 +58,21 @@ def user_profile(request, user_email=None):
except:
user_profile = UserProfile.objects.create(user=request.user)
+ if request.method == 'POST':
+ form = UserProfileForm(request.POST)
+ if form.is_valid():
+ request.user.first_name = form.cleaned_data["first_name"]
+ request.user.last_name = form.cleaned_data["last_name"]
+ request.user.save()
+ redirect_url = reverse('user_profile')
+ redirect_url += "?msg=updated-ok"
+ return redirect(redirect_url)
+ else:
+ form = UserProfileForm(initial={
+ "first_name": request.user.first_name,
+ "last_name": request.user.last_name,
+ })
+
# Votes
try:
votes = Rating.objects.filter(user=request.user)
@@ -81,11 +101,19 @@ def user_profile(request, user_email=None):
thread = store.get_thread(fav.list_address, fav.threadid)
fav.thread = thread
+ flash_messages = []
+ flash_msg = request.GET.get("msg")
+ if flash_msg:
+ flash_msg = { "type": "success", "msg": FLASH_MESSAGES[flash_msg] }
+ flash_messages.append(flash_msg)
+
context = {
'user_profile' : user_profile,
+ 'form': form,
'votes_up': votes_up,
'votes_down': votes_down,
'favorites': favorites,
+ 'flash_messages': flash_messages,
}
return render(request, "user_profile.html", context)