feat: added user info form

This commit is contained in:
Pablo Moreno
2025-01-18 13:55:33 +01:00
parent 3995fa9c5a
commit 249521aa4a
10 changed files with 186 additions and 53 deletions
+38
View File
@@ -1,5 +1,6 @@
from decimal import Decimal
from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
from django.views.generic import TemplateView
@@ -12,7 +13,9 @@ from shop.models import (
ShippingMethod,
WishlistedProduct,
)
from users.forms.info import UserInfoForm
from web.mixins import FilteredQuerysetMixin, PaginatedQuerysetMixin
from web.models import WebSettings
from web.settings import ANONYMOUS_CART_ID_COOKIE_NAME
from web.utils import get_or_create_cart
@@ -142,6 +145,41 @@ class WishlistButton(TemplateView):
}
class UserInfoComponentView(TemplateView):
template_name = "components/users/info.html"
form_class = UserInfoForm
def get_context_data(self, **kwargs):
web_settings = WebSettings.load()
user = self.request.user
form = self.form_class(
initial={
"email": user.email,
"first_name": user.first_name,
"last_name": user.last_name,
}
)
return {
"form": form,
}
def post(self, request, *args, **kwargs):
user = self.request.user
form = self.form_class(request.POST)
if form.is_valid():
user.email = form.cleaned_data.get("email")
user.first_name = form.cleaned_data.get("first_name")
user.last_name = form.cleaned_data.get("last_name")
user.save()
return HttpResponse(status=200)
return render(request, self.template_name, {"form": form})
list_products = ListProducts.as_view()
list_wishlisted_products = ListWishlistedProducts.as_view()
wishlist_button = WishlistButton.as_view()
user_info_component = UserInfoComponentView.as_view()