Skip to content

Commit

Permalink
feat: nova funcionalidade de edição de dados do usuario
Browse files Browse the repository at this point in the history
  • Loading branch information
Kauanrodrigues01 committed Aug 18, 2024
1 parent 1c92ced commit 61b23a9
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 8 deletions.
6 changes: 1 addition & 5 deletions apps/usuarios/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'




self.add_error('confirmar_senha', 'As senhas não são iguais.') # a função add_error adiciona um erro ao campo 'confirmar_senha'
3 changes: 2 additions & 1 deletion apps/usuarios/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
]
37 changes: 36 additions & 1 deletion apps/usuarios/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
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})
8 changes: 8 additions & 0 deletions static/styles/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
53 changes: 53 additions & 0 deletions templates/usuarios/editar_perfil.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{% extends 'usuarios/base.html' %}
{% load static %}
{% block content %}
<div class="pagina-inicial">
<header class="cabecalho">
<img src="{% static '/assets/logo/Logo(2).png' %}" alt="Logo da Alura Space" />
{% include 'partials/_alertas.html' %}
<div class="cabecalho__busca">
<div class="busca__fundo">
<form action="{% url 'buscar' %}" class="form-buscar" style="max-width: 500px;">
<input class="busca__input" type="text" name="buscar" placeholder="O que você procura?">
<button type="submit" class="button-search">
<img class="busca__icone" src="{% static '/assets/ícones/1x/search.png' %}" alt="ícone de search">
</button>
</form>
</div>
</div>
</header>
<main class="principal">
<section class="menu-lateral">
<nav class="menu-lateral__navegacao">
<a href="{% url 'index' %}"><img src="{% static '/assets/ícones/1x/Home - ativo.png' %}"> Home</a>
<a href="{% url 'login' %}"><img src="{% static '/assets/ícones/1x/Mais vistas - inativo.png' %}"> Login</a>
<a href="{% url 'cadastro' %}"><img src="{% static '/assets/ícones/1x/Novas - inativo.png' %}"> Cadastrar</a>
<a href="{% url 'logout' %}"><img src="{% static '/assets/ícones/1x/Surpreenda-me - inativo.png' %}"> Logout</a>
</nav>
</section>
<section class="galeria-editar_perfil" style="margin-left: 5em">
<h2>Atualize seus dados e confirme para eles serem atualizados!</h2>
<form action="{% url 'editar_perfil' %}" method="POST" class="form-cadastro">
{% csrf_token %}
<div class="row">
{% for field in form.visible_fields %}
<div class="col-12 col-lg-12" style="margin-bottom: 10px;">
<label for="{{ field.id_for_label }}" style="color:#D9D9D9; margin-bottom: 5px;"><b>{{ field.label }}</b></label>
<br>
{{ field }} <!-- Aqui estamos renderizando o campo do formulário, e podemos estilizar nas próprias class de forms -->
</div>
{% for error in field.errors %}
<div class="msg-error-form">
{{ error }}
</div>
{% endfor %}
{% endfor %}
<div class="col-12 text-center">
<button type="submit" class="btn btn-success col-12" style="padding: top 5px; margin-top: 10px;">Cadastrar-se</button>
</div>
</div>
</form>
</section>
</main>
</div>
{% endblock %}
2 changes: 1 addition & 1 deletion templates/usuarios/perfil.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ <h3 class="title__info">Senha: </h3>
</div>
</div>
<div class="container__button-edit">
<button class="button-edit-user"><a href="" class="btn-primary user">Editar informações</a></button>
<button class="button-edit-user"><a href="{% url 'editar_perfil' %}" class="btn-primary user">Editar informações</a></button>
</div>
</section>
</main>
Expand Down

0 comments on commit 61b23a9

Please sign in to comment.