Skip to content

Commit

Permalink
Finaliza CRUD implementando edit de receita
Browse files Browse the repository at this point in the history
  • Loading branch information
brnocesar committed Jan 26, 2021
1 parent 8f3e7e1 commit a50b8e7
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 0 deletions.
1 change: 1 addition & 0 deletions apps/receitas/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
path('', views.index, name='index'),
path('receitas/<int:receita_id>', views.receita, name='receita'), # mudar o nome dessa rota para receita.show
path('receitas/criar', views.create, name='receita.create'),
path('receitas/editar/<int:receita_id>', views.edit, name='receita.edit'),
path('receitas/deletar/<int:receita_id>', views.destroy, name='receita.destroy'),
]
16 changes: 16 additions & 0 deletions apps/receitas/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,22 @@ def create(request):

return render(request, 'receitas/create.html')

def edit(request, receita_id):
if request.method == 'POST':
receita = Receita.objects.get(pk=receita_id)
receita.nome = request.POST['nome']
receita.ingredientes = request.POST['ingredientes']
receita.modo_preparo = request.POST['modo_preparo']
receita.tempo_preparo = request.POST['tempo_preparo']
receita.rendimento = request.POST['rendimento']
receita.categoria = request.POST['categoria']
receita.foto = request.FILES['foto'] if 'foto' in request.FILES else receita.foto
receita.save()

return redirect('dashboard') # redirecionar para show

return render(request, 'receitas/edit.html', {'receita': get_object_or_404(Receita, pk=receita_id)})

def destroy(request, receita_id):
# abstrair isso para um metodo que da um retorno mais adequado no caso de nao existir
# ou usar algo que de pra verificar se nao existe
Expand Down
75 changes: 75 additions & 0 deletions apps/templates/receitas/edit.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{% extends '_base.html' %}
{% load static %}
{% block content %}

<!-- ##### Contact Form Area Start ##### -->
<div class="contact-area section-padding-0-80">
<div class="container">
<div class="row">
<div class="col-12">
<div class="section-heading">
<h3>Edite sua receita, {{ user.username }} :)</h3>
</div>
</div>
</div>

<div class="row">
<div class="col-12">
<p>Todos os campos são obrigatórios</p>
<div class="contact-form-area">
<form action="{% url 'receita.edit' receita.id %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<!-- <input type="text" id="receita_id" class="form-control" name="receita_id" value="{{receita.id}}" hidden> -->
<div class="row">
<div class="col-12 col-lg-12">
<label for="nome"><b>Título da receita</b></label>
<input type="text" id="nome" class="form-control" name="nome" placeholder="Ex. Suco de limão"
required value="{{receita.nome}}" />
</div>
<div class="col-12">
<label for="ingredientes"><b>Ingredientes</b></label>
<textarea class="form-control" name="ingredientes" cols="30" rows="10" placeholder="Ex. 2 Limões &#10;200ml de água"
required
>{{receita.ingredientes}}</textarea>
</div>
<div class="col-12">
<label for="modo_preparo"><b>Modo de preparo</b></label>
<textarea class="form-control" name="modo_preparo" cols="30" rows="10" placeholder="Ex. Corte o limão com cuidado e exprema no copo &#10;Misture com a água e sirva."
required
>{{receita.modo_preparo}}</textarea>
</div>
<div class="col-12 col-lg-4">
<label for="tempo_preparo"><b>Tempo de preparo (minutos)</b></label>
<input type="number" class="form-control" name="tempo_preparo" placeholder="Ex. 2"
required value="{{receita.tempo_preparo}}" />
</div>
<div class="col-12 col-lg-4">
<label for="rendimento"><b>Rendimento</b></label>
<input type="text" class="form-control" name="rendimento" placeholder="Ex. serve 1 pessoa"
required value="{{receita.rendimento}}" />
</div>
<div class="col-12 col-lg-4">
<label for="categoria"><b>Categoria da receita</b></label>
<input type="text" class="form-control" name="categoria" placeholder="Ex. Sucos e bebidas"
required value="{{receita.categoria}}" />
</div>
<div class="col-12 col-lg-6">
<label for="foto"><b>Foto utilizada</b></label>
<img src="{{ receita.foto.url }}" alt="Foto ilustrativa da receita">
</div>
<div class="col-12 col-lg-6">
<label for="foto"><b>Adicionar nova foto</b></label>
<input type="file" class="form-control" name="foto" />
</div>
<div class="col-12 text-center">
<button class="btn delicious-btn mt-30" type="submit">Atualizar</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>

{% endblock %}
1 change: 1 addition & 0 deletions apps/templates/usuarios/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ <h3>Olá {{ user.username }}</h3>
<a href="{% url 'receita' receita.id %}">
<h5>{{ receita }}</h5>
</a>
<a href="{% url 'receita.edit' receita.id %}" type="button" class="btn btn-info mr-2">Editar</a>
<a href="{% url 'receita.destroy' receita.id %}" type="button" class="btn btn-danger">Deletar</a>
</div>
</div>
Expand Down

0 comments on commit a50b8e7

Please sign in to comment.