diff --git a/essenza/essenza/urls.py b/essenza/essenza/urls.py
index e08e7df..8ee6270 100644
--- a/essenza/essenza/urls.py
+++ b/essenza/essenza/urls.py
@@ -1,106 +1,11 @@
from django.contrib import admin
from django.urls import path, include
-from django.http import HttpResponse
from info.views import info_view
-from product.views import EscaparateView
-import user
-
-def home(request):
- html = """
-
-
- Tu espacio online de cosmética natural, belleza y cuidado personal.
- Explora nuestros productos, descubre nuevas fragancias y disfruta de la experiencia Essenza 🌸
-
-
Información Legal y Condiciones de Venta de Essenza
diff --git a/essenza/templates/product/dashboard.html b/essenza/templates/product/dashboard.html
new file mode 100644
index 0000000..9022f47
--- /dev/null
+++ b/essenza/templates/product/dashboard.html
@@ -0,0 +1,250 @@
+{% load static %}
+
+
+
+
+ Escaparate · Essenza
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/essenza/templates/product/escaparate.html b/essenza/templates/product/escaparate.html
deleted file mode 100644
index 5fbbd77..0000000
--- a/essenza/templates/product/escaparate.html
+++ /dev/null
@@ -1,130 +0,0 @@
-{% load static %}
-
-
-
-
- Escaparate · Essenza
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/essenza/templates/user/register.html b/essenza/templates/user/register.html
index 1ff83b2..0c9d5a5 100644
--- a/essenza/templates/user/register.html
+++ b/essenza/templates/user/register.html
@@ -135,10 +135,7 @@ ESSENZA
{{ form.last_name }}
-
-
- {{ form.username }}
-
+
{{ form.email }}
@@ -148,8 +145,8 @@ ESSENZA
{{ form.password2 }}
-
- {{ form.foto }}
+
+ {{ form.photo }}
{% if form.errors %}
diff --git a/essenza/user/forms.py b/essenza/user/forms.py
index 70b77fa..66c8d85 100644
--- a/essenza/user/forms.py
+++ b/essenza/user/forms.py
@@ -26,7 +26,7 @@ class RegisterForm(UserCreationForm):
label="Correo electrónico",
required=True
)
- foto = forms.ImageField(
+ photo = forms.ImageField(
label="Foto (Opcional)",
required=False
)
@@ -35,4 +35,11 @@ class Meta(UserCreationForm.Meta):
model = Usuario
- fields = UserCreationForm.Meta.fields + ('first_name', 'last_name', 'email', 'foto')
+ fields = ('first_name', 'last_name', 'email', 'photo')
+
+ def save(self, commit=True):
+ user = super().save(commit=False)
+ user.username = self.cleaned_data["email"]
+ if commit:
+ user.save()
+ return user
diff --git a/essenza/user/tests.py b/essenza/user/tests.py
index a65bb48..7948294 100644
--- a/essenza/user/tests.py
+++ b/essenza/user/tests.py
@@ -22,8 +22,7 @@ def setUp(self):
password=self.password
)
self.login_url = reverse("login")
- self.home_url = reverse("home")
- self.escaparate_url = reverse("escaparate")
+ self.dashboard_url = reverse("dashboard")
#1. comprueba que la pagina de login carga correctamente
def test_get_login_page_returns_200(self):
@@ -32,12 +31,12 @@ def test_get_login_page_returns_200(self):
self.assertContains(resp, "Iniciar sesión")
self.assertContains(resp, "ESSENZA")
- #2. si email y contraseña validas redirige al escaparate
- def test_login_with_valid_email_redirects_escaparate(self):
+ #2. si email y contraseña validas redirige al dashboard
+ def test_login_with_valid_email_redirects_dashboard(self):
data = {"email": self.email, "password": self.password}
resp = self.client.post(self.login_url, data, follow=False)
self.assertEqual(resp.status_code, 302, resp.content)
- self.assertEqual(resp["Location"], self.escaparate_url)
+ self.assertEqual(resp["Location"], self.dashboard_url)
#3. si email y contraseña no validas muestra error
def test_login_with_invalid_passwordAndEmail_shows_error(self):
@@ -64,7 +63,7 @@ def test_login_with_invalid_password_shows_error(self):
class RegisterViewTests(TestCase):
def setUp(self):
self.register_url = reverse("register")
- self.escaparate_url = reverse("escaparate")
+ self.dashboard_url = reverse("dashboard")
self.initial_user_count = User.objects.count()
# Datos para un nuevo usuario de prueba
@@ -84,13 +83,13 @@ def test_get_register_page_returns_200(self):
self.assertContains(resp, "Crear cuenta")
self.assertContains(resp, "ESSENZA")
- #2. Registro con datos válidos y redirige al escaparate (302)
+ #2. Registro con datos válidos y redirige al dashboard (302)
def test_successful_registration_redirects_and_creates_user(self):
data = self.valid_data.copy()
resp = self.client.post(self.register_url, data, follow=False)
self.assertEqual(resp.status_code, 302)
- self.assertEqual(resp["Location"], self.escaparate_url)
+ self.assertEqual(resp["Location"], self.dashboard_url)
self.assertEqual(User.objects.count(), self.initial_user_count + 1)
new_user = User.objects.get(email=data['email'])
@@ -146,30 +145,30 @@ def test_registration_with_valid_photo(self):
)
data = self.valid_data.copy()
- data['foto'] = photo
+ data['photo'] = photo
resp = self.client.post(self.register_url, data, follow=False)
self.assertEqual(resp.status_code, 302)
new_user = User.objects.get(email=data['email'])
- self.assertTrue(new_user.foto.name.startswith('images/test_photo'))
+ self.assertTrue(new_user.photo.name.startswith('images/test_photo'))
# Elimina la foto creada
- if new_user.foto:
- if os.path.exists(new_user.foto.path):
- os.remove(new_user.foto.path)
+ if new_user.photo:
+ if os.path.exists(new_user.photo.path):
+ os.remove(new_user.photo.path)
#7. Registro sin campo 'foto' (opcional) es exitoso
def test_registration_without_photo_is_successful(self):
data = self.valid_data.copy()
- if 'foto' in data:
- del data['foto']
+ if 'photo' in data:
+ del data['photo']
resp = self.client.post(self.register_url, data, follow=False)
self.assertEqual(resp.status_code, 302)
new_user = User.objects.get(email=data['email'])
- self.assertFalse(new_user.foto)
+ self.assertFalse(new_user.photo)
class LogoutViewTests(TestCase):
def setUp(self):
@@ -181,10 +180,10 @@ def setUp(self):
)
self.login_url = reverse('login')
self.logout_url = reverse('logout')
- self.home_url = reverse('home')
+ self.dashboard_url = reverse('dashboard')
# 1. Comprobar que un usuario logueado se desloguea y redirige correctamente
- def test_logout_redirects_to_home_and_clears_session(self):
+ def test_logout_redirects_to_dashboard_and_clears_session(self):
# Iniciar sesión
self.client.login(username='logout@example.com', password='testlogout123')
@@ -194,8 +193,8 @@ def test_logout_redirects_to_home_and_clears_session(self):
# Hacer logout
response = self.client.get(self.logout_url)
- # Verificar redirección al home
- self.assertRedirects(response, self.home_url)
+ # Verificar redirección al dashboard
+ self.assertRedirects(response, self.dashboard_url)
# Verificar que se ha cerrado la sesión
self.assertNotIn('_auth_user_id', self.client.session)
@@ -210,9 +209,9 @@ def test_logout_deletes_session_cookie(self):
self.assertIn('sessionid', response.cookies)
cookie = response.cookies['sessionid']
self.assertTrue(cookie.value == '' or cookie['max-age'] == 0 or cookie['expires'])
- self.assertRedirects(response, self.home_url)
+ self.assertRedirects(response, self.dashboard_url)
# 3. Comprobar que un usuario no autenticado también redirige correctamente
def test_logout_redirects_even_if_not_authenticated(self):
response = self.client.get(self.logout_url)
- self.assertRedirects(response, self.home_url)
+ self.assertRedirects(response, self.dashboard_url)
diff --git a/essenza/user/urls.py b/essenza/user/urls.py
index 26825a4..6c353e8 100644
--- a/essenza/user/urls.py
+++ b/essenza/user/urls.py
@@ -1,6 +1,4 @@
-from django.contrib import admin
-from django.urls import include, path
-from django.http import HttpResponse
+from django.urls import path
import user.views as views
diff --git a/essenza/user/views.py b/essenza/user/views.py
index 25774b6..9e4765e 100644
--- a/essenza/user/views.py
+++ b/essenza/user/views.py
@@ -2,17 +2,16 @@
from django.views import View
from django.contrib.auth import authenticate, login, logout
from .forms import LoginForm, RegisterForm
-from .models import Usuario
class LoginView(View):
form_class = LoginForm
template_name = 'user/login.html'
def get(self, request, *args, **kwargs):
- # Si el usuario ya está autenticado, lo mandamos a escaparate
+ # Si el usuario ya está autenticado, lo mandamos a dashboard
logout(request)
if request.user.is_authenticated:
- return redirect('escaparate')
+ return redirect('dashboard')
# Si no está autenticado, renderiza el formulario de login
return render(request, self.template_name, {'form': self.form_class()})
@@ -27,8 +26,7 @@ def post(self, request, *args, **kwargs):
if user is not None:
login(request, user)
- # Redirige al escaparate después del login
- return redirect('escaparate')
+ return redirect('dashboard')
else:
# Si falla el login, muestra error en el formulario
form.add_error(None, "Usuario o contraseña incorrectos")
@@ -38,13 +36,13 @@ def post(self, request, *args, **kwargs):
class LogoutView(View):
def get(self, request):
logout(request)
- response = redirect('home')
+ response = redirect('dashboard')
response.delete_cookie('sessionid')
return response
def post(self, request):
logout(request)
- response = redirect('home')
+ response = redirect('dashboard')
response.delete_cookie('sessionid')
return response
@@ -61,6 +59,7 @@ def post(self, request, *args, **kwargs):
if form.is_valid():
user = form.save()
- return redirect('escaparate')
+ login(request, user)
+ return redirect('dashboard')
return render(request, self.template_name, {'form': form})
\ No newline at end of file