diff --git a/pflaenzli/pflaenzli/urls.py b/pflaenzli/pflaenzli/urls.py index 0b0d74d..31ce17b 100644 --- a/pflaenzli/pflaenzli/urls.py +++ b/pflaenzli/pflaenzli/urls.py @@ -18,6 +18,7 @@ urlpatterns = [ path("accounts//wishlist/", views.wishlist, name="wishlist"), path('accounts/login/', auth_views.LoginView.as_view(template_name='registration/login.html')), path('accounts/profile/', auth_views.LoginView.as_view(template_name='user/detail.html'), name='user_profile'), + path('accounts/profile/edit', views.user_edit, name='user_edit'), path('accounts/register/', views.register_user, name='register_user'), path('accounts/password_reset/', auth_views.PasswordResetView.as_view(template_name='registration/verify_email.html', extra_context={'form_helper': settings.CRISPY_TEMPLATE_PACK}), name='password_reset'), diff --git a/pflaenzli/pflaenzli/views.py b/pflaenzli/pflaenzli/views.py index 980f597..55efb7b 100644 --- a/pflaenzli/pflaenzli/views.py +++ b/pflaenzli/pflaenzli/views.py @@ -112,6 +112,20 @@ def wishlist(request, user_id): return render(request, "user/wish.html", {"title": title, "form": form, "wishes": wishes, "own": user_id == request.user.id}) +@login_required +def user_edit(request): + if request.method == "POST": + form = RegistrationForm(request.POST, instance=request.user) + if form.is_valid(): + form.save() + messages.success(request, "Account details updated successfully!") + return redirect("user_profile") + else: + form = RegistrationForm(instance=request.user) + + return render(request, "basic_form.html", {"form": form, "button_label": "Save", "title": "Edit Account Details"}) + + @csrf_protect @require_POST @login_required