Skip to content

Commit 1e79952

Browse files
committed
- Changed the organization of files
1 parent 2b83cc1 commit 1e79952

File tree

6 files changed

+141
-43
lines changed

6 files changed

+141
-43
lines changed

app.py

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,68 @@
1-
from flask import Flask, render_template, request, send_file
1+
from flask import Flask, render_template, request, send_file, jsonify
22
from docx import Document
33
from datetime import datetime
44
import os
55

66
app = Flask(__name__)
77

8+
# Configura o caminho para os templates
9+
#template_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'app', 'templates')
10+
#app.template_folder = template_path
11+
812
@app.route('/')
913
def index():
1014
return render_template('index.html')
1115

1216
@app.route('/processar_formulario', methods=['POST'])
1317
def processar_formulario():
14-
nome = request.form['nome']
15-
equipamento = request.form['equipamento']
16-
inicio = request.form['inicio']
17-
final = request.form['final']
18-
estoque_utilizado = request.form['estoqueUtilizado']
19-
removido_voltou = request.form['removidoVoltou']
20-
motivo_remocao = request.form.get('motivoRemocao', '')
2118

22-
# Create a Word document and write the data
23-
document = Document('./template.docx')
19+
try:
20+
21+
nome = request.form['nome']
22+
equipamento = request.form['equipamento']
23+
inicio = request.form['inicio']
24+
final = request.form['final']
25+
estoque_utilizado = request.form['estoqueUtilizado']
26+
removido_voltou = request.form['removidoVoltou']
27+
motivo_remocao = request.form.get('motivoRemocao', '')
28+
29+
# Create a Word document and write the data
30+
document = Document('./template.docx')
2431

25-
document.add_paragraph(f'Nome: {nome}')
26-
document.add_paragraph(f'Equipamento: {equipamento}')
27-
document.add_paragraph(f'Período: {inicio} - {final}')
28-
document.add_paragraph(f'Estoque Utilizado: {estoque_utilizado}')
32+
document.add_paragraph(f'Nome: {nome}')
33+
document.add_paragraph(f'Equipamento: {equipamento}')
34+
document.add_paragraph(f'Período: {inicio} - {final}')
35+
document.add_paragraph(f'Estoque Utilizado: {estoque_utilizado}')
2936

30-
document.add_paragraph('Algo foi removido e voltou ao estoque? ' + ('Sim' if removido_voltou == 'sim' else 'Não'))
37+
document.add_paragraph('Algo foi removido e voltou ao estoque? ' + ('Sim' if removido_voltou == 'sim' else 'Não'))
3138

32-
if removido_voltou == 'sim':
33-
document.add_paragraph(f'Motivo da Remoção: {motivo_remocao}')
39+
if removido_voltou == 'sim':
40+
document.add_paragraph(f'Motivo da Remoção: {motivo_remocao}')
3441

35-
# Get current date
36-
data_atual = datetime.now()
42+
# Get current date
43+
data_atual = datetime.now()
3744

38-
# Format the date as a string
39-
formato_data = "%d-%m-%Y"
40-
data_formatada = data_atual.strftime(formato_data)
45+
# Format the date as a string
46+
formato_data = "%d-%m-%Y"
47+
data_formatada = data_atual.strftime(formato_data)
4148

42-
caminho = './relatorios/'
49+
caminho = './relatorios/'
4350

44-
# Check that the directory does not exist before creating
45-
if not os.path.exists(caminho):
46-
os.makedirs(caminho)
47-
print(f'The folder at {caminho} was created successfully.')
51+
# Check that the directory does not exist before creating
52+
if not os.path.exists(caminho):
53+
os.makedirs(caminho)
54+
print(f'The folder at {caminho} was created successfully.')
4855

49-
documento = "{}{}.docx".format(caminho, data_formatada)
56+
documento = "{}{}.docx".format(caminho, data_formatada)
5057

51-
document.save(documento)
58+
document.save(documento)
5259

53-
return send_file(documento, as_attachment=True)
60+
#send_file(documento, as_attachment=True)
61+
return jsonify(success=True)
62+
63+
except Exception as e:
64+
print(f'Erro: {str(e)}')
65+
return jsonify(success=False)
5466

5567
if __name__ == '__main__':
5668
app.run(debug=True)
File renamed without changes.
File renamed without changes.

static/js/script.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
$('input[type=radio][name=removidoVoltou]').change(function () {
2+
if (this.value === 'sim') {
3+
$('#motivoRemocaoGroup').show();
4+
} else {
5+
$('#motivoRemocaoGroup').hide();
6+
}
7+
});
8+
9+
10+
$(document).ready(function () {
11+
$("#botaoEnviar").on("click", function () {
12+
// Adicionar animação de carregamento ao botão
13+
$(this).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Enviando...').prop('disabled', true);
14+
15+
// Recuperar o nome do formulário
16+
var nome = $("#nome").val(),
17+
equipamento = $("#equipamento").val(),
18+
inicio = $("#inicio").val(),
19+
final = $("#final").val(),
20+
estoqueUtilizado = $("#estoqueUtilizado").val(),
21+
removidoVoltou = $("[name=removidoVoltou]").val(),
22+
motivoRemocao = $("[name=motivoRemocao]").val();
23+
24+
// Simular uma chamada AJAX para o backend
25+
$.ajax({
26+
type: "POST",
27+
url: "/processar_formulario",
28+
data: {
29+
nome: nome,
30+
equipamento: equipamento,
31+
inicio: inicio,
32+
final: final,
33+
estoqueUtilizado: estoqueUtilizado,
34+
removidoVoltou: removidoVoltou,
35+
motivoRemocao: motivoRemocao
36+
},
37+
success: function (data) {
38+
console.log(data);
39+
// Remover animação de carregamento
40+
$("#botaoEnviar").html('Enviar').prop('disabled', false);
41+
42+
// Exibir modal de sucesso
43+
$("#modalSucesso").modal('show');
44+
45+
// Ocultar modal de sucesso após 3 segundos
46+
setTimeout(function () {
47+
$("#modalSucesso").modal('hide');
48+
}, 3000);
49+
},
50+
error: function () {
51+
// Remover animação de carregamento
52+
$("#botaoEnviar").html('Enviar').prop('disabled', false);
53+
54+
// Exibir modal de erro
55+
$("#modalErro").modal('show');
56+
}
57+
});
58+
});
59+
});

template_almex.docx

36.5 KB
Binary file not shown.

templates/index.html

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -60,22 +60,49 @@
6060
<textarea class="form-control" id="motivoRemocao" name="motivoRemocao" rows="3" placeholder="Digite o motivo da remoção"></textarea>
6161
</div>
6262

63-
<button type="submit" class="btn btn-primary">Enviar</button>
63+
<button type="button" class="btn btn-primary" id="botaoEnviar">Enviar</button>
6464
</form>
6565
</div>
6666

67-
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
68-
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
69-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
70-
<script>
71-
$('input[type=radio][name=removidoVoltou]').change(function () {
72-
if (this.value === 'sim') {
73-
$('#motivoRemocaoGroup').show();
74-
} else {
75-
$('#motivoRemocaoGroup').hide();
76-
}
77-
});
78-
</script>
67+
68+
<!-- Modal de Sucesso -->
69+
<div class="modal fade" id="modalSucesso" tabindex="-1" role="dialog" aria-labelledby="modalSucessoLabel" aria-hidden="true">
70+
<div class="modal-dialog" role="document">
71+
<div class="modal-content">
72+
<div class="modal-header">
73+
<h5 class="modal-title" id="modalSucessoLabel">Sucesso!</h5>
74+
<button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
75+
<span aria-hidden="true">&times;</span>
76+
</button>
77+
</div>
78+
<div class="modal-body">
79+
Nome escrito com sucesso no Word.
80+
</div>
81+
</div>
82+
</div>
83+
</div>
84+
85+
<!-- Modal de Erro -->
86+
<div class="modal fade" id="modalErro" tabindex="-1" role="dialog" aria-labelledby="modalErroLabel" aria-hidden="true">
87+
<div class="modal-dialog" role="document">
88+
<div class="modal-content">
89+
<div class="modal-header">
90+
<h5 class="modal-title" id="modalErroLabel">Erro!</h5>
91+
<button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
92+
<span aria-hidden="true">&times;</span>
93+
</button>
94+
</div>
95+
<div class="modal-body">
96+
Houve um erro ao escrever no Word.
97+
</div>
98+
</div>
99+
</div>
100+
</div>
101+
102+
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
103+
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></script>
104+
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
105+
<script src="{{ url_for('static', filename='js/script.js') }}"></script>
79106

80107
</body>
81108
</html>

0 commit comments

Comments
 (0)