diff --git a/apps/usuarios/forms.py b/apps/usuarios/forms.py index 19f0173..db43cef 100644 --- a/apps/usuarios/forms.py +++ b/apps/usuarios/forms.py @@ -147,8 +147,4 @@ def clean(self): confirmar_senha = cleaned_data.get('confirmar_senha') if senha and confirmar_senha and senha != confirmar_senha: - self.add_error('confirmar_senha', 'As senhas não são iguais.') # a função add_error adiciona um erro ao campo 'confirmar_senha' - - - - \ No newline at end of file + self.add_error('confirmar_senha', 'As senhas não são iguais.') # a função add_error adiciona um erro ao campo 'confirmar_senha' \ No newline at end of file diff --git a/apps/usuarios/urls.py b/apps/usuarios/urls.py index 671f563..867655c 100644 --- a/apps/usuarios/urls.py +++ b/apps/usuarios/urls.py @@ -5,5 +5,6 @@ path('login/', login, name='login'), path('cadastro/', cadastro, name='cadastro'), path('logout/', logout, name='logout'), - path('perfil/', perfil, name='perfil') + path('perfil/', perfil, name='perfil'), + path('editar-perfil/', editar_perfil, name='editar_perfil') ] \ No newline at end of file diff --git a/apps/usuarios/views.py b/apps/usuarios/views.py index 52668ae..3278e0b 100644 --- a/apps/usuarios/views.py +++ b/apps/usuarios/views.py @@ -74,4 +74,39 @@ def logout(request): return redirect('login') # Redireciona para a rota chamada 'login' def perfil(request): - return render(request, 'usuarios/perfil.html') \ No newline at end of file + if not request.user.is_authenticated: + messages.error(request, 'Tem que estar logado para acessar está página') + return redirect('login') + + return render(request, 'usuarios/perfil.html') + +def editar_perfil(request): + usuario = request.user + + if request.method == 'POST': + formCadastro = CadastroForms(request.POST) + if formCadastro.is_valid(): + # Atualize o usuário com os dados do formulário + usuario.username = formCadastro.cleaned_data['nome_cadastro'] # cleaned_data é um dicionário que contém os dados do formulário, neste caso, ele pega o valor do campo 'nome_cadastro' + usuario.email = formCadastro.cleaned_data['Email'] + + senha = formCadastro.cleaned_data['senha'] + confirmar_senha = formCadastro.cleaned_data['confirmar_senha'] + + if senha == confirmar_senha: + usuario.set_password(senha) # set_password é um método do objeto User que criptografa a senha e salva de forma segura no banco de dados + else: + formCadastro.add_error('confirmar_senha', 'As senhas não são iguais.') # Adiciona um erro ao campo 'confirmar_senha' + return render(request, 'usuarios/editar_perfil.html', {'form': formCadastro}) # Retorna o formulário com o erro + + usuario.save() + messages.success(request, 'Perfil atualizado com sucesso!') + return redirect('login') + else: + initial_data = { + 'nome_cadastro': usuario.username, + 'Email': usuario.email, + } + formCadastro = CadastroForms(initial=initial_data) + + return render(request, 'usuarios/editar_perfil.html', {'form': formCadastro}) \ No newline at end of file diff --git a/static/styles/style.css b/static/styles/style.css index bd5dfe3..1f616a6 100644 --- a/static/styles/style.css +++ b/static/styles/style.css @@ -683,4 +683,12 @@ table { justify-content: center; align-items: center; gap: 2rem; +} + +.galeria-editar_perfil{ + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + gap: 1rem; } \ No newline at end of file diff --git a/templates/usuarios/editar_perfil.html b/templates/usuarios/editar_perfil.html new file mode 100644 index 0000000..97db503 --- /dev/null +++ b/templates/usuarios/editar_perfil.html @@ -0,0 +1,53 @@ +{% extends 'usuarios/base.html' %} +{% load static %} +{% block content %} +
+
+ Logo da Alura Space + {% include 'partials/_alertas.html' %} +
+
+
+ + +
+
+
+
+
+ +
+

Atualize seus dados e confirme para eles serem atualizados!

+
+ {% csrf_token %} +
+ {% for field in form.visible_fields %} +
+ +
+ {{ field }} +
+ {% for error in field.errors %} +
+ {{ error }} +
+ {% endfor %} + {% endfor %} +
+ +
+
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/templates/usuarios/perfil.html b/templates/usuarios/perfil.html index ee5a6bd..a4ffbec 100644 --- a/templates/usuarios/perfil.html +++ b/templates/usuarios/perfil.html @@ -41,7 +41,7 @@

Senha:

- +