2025-02-19 14:27:14 -03:00
|
|
|
{% extends 'base.html' %}
|
|
|
|
|
|
2025-04-03 10:30:48 -03:00
|
|
|
{% block title %}Novo Material{% endblock %}
|
2025-02-19 14:27:14 -03:00
|
|
|
|
|
|
|
|
{% block content %}
|
2025-04-03 10:30:48 -03:00
|
|
|
<div class="container">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<h1 class="mb-4">Novo Material</h1>
|
|
|
|
|
|
|
|
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
|
|
|
{% if messages %}
|
|
|
|
|
{% for category, message in messages %}
|
|
|
|
|
<div class="alert alert-{{ category }}">{{ message }}</div>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endwith %}
|
|
|
|
|
|
|
|
|
|
<form method="POST" class="needs-validation" novalidate>
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<label for="nome" class="form-label">Nome</label>
|
|
|
|
|
<input type="text" class="form-control" id="nome" name="nome" required>
|
|
|
|
|
<div class="invalid-feedback">
|
|
|
|
|
Por favor, insira o nome do material.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<label for="descricao" class="form-label">Descrição</label>
|
|
|
|
|
<textarea class="form-control" id="descricao" name="descricao" rows="3" required></textarea>
|
|
|
|
|
<div class="invalid-feedback">
|
|
|
|
|
Por favor, insira a descrição do material.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<label for="preco" class="form-label">Preço</label>
|
|
|
|
|
<input type="number" class="form-control" id="preco" name="preco" step="0.01" required>
|
|
|
|
|
<div class="invalid-feedback">
|
|
|
|
|
Por favor, insira o preço do material.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<label for="quantidade" class="form-label">Quantidade</label>
|
|
|
|
|
<input type="number" class="form-control" id="quantidade" name="quantidade" required>
|
|
|
|
|
<div class="invalid-feedback">
|
|
|
|
|
Por favor, insira a quantidade do material.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|
<label for="tipo_id" class="form-label">Tipo de Material</label>
|
|
|
|
|
<select class="form-select" id="tipo_id" name="tipo_id" required>
|
|
|
|
|
<option value="">Selecione um tipo</option>
|
|
|
|
|
{% for tipo in tipos %}
|
|
|
|
|
<option value="{{ tipo.id }}">{{ tipo.nome }}</option>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</select>
|
|
|
|
|
<div class="invalid-feedback">
|
|
|
|
|
Por favor, selecione o tipo do material.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="d-flex justify-content-between">
|
|
|
|
|
<button type="submit" class="btn btn-success">Registrar</button>
|
2025-07-01 13:42:56 -03:00
|
|
|
<a href="{{ url_for('material.listar') }}" class="btn btn-outline-secondary">Voltar</a>
|
2025-04-03 10:30:48 -03:00
|
|
|
</div>
|
|
|
|
|
</form>
|
2024-11-26 10:57:25 -03:00
|
|
|
</div>
|
2025-04-03 10:30:48 -03:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-02-19 14:27:14 -03:00
|
|
|
|
2025-04-03 10:30:48 -03:00
|
|
|
<script>
|
|
|
|
|
// Validação do formulário
|
|
|
|
|
(function () {
|
|
|
|
|
'use strict'
|
|
|
|
|
|
|
|
|
|
var forms = document.querySelectorAll('.needs-validation')
|
|
|
|
|
|
|
|
|
|
Array.prototype.slice.call(forms)
|
|
|
|
|
.forEach(function (form) {
|
|
|
|
|
form.addEventListener('submit', function (event) {
|
|
|
|
|
if (!form.checkValidity()) {
|
|
|
|
|
event.preventDefault()
|
|
|
|
|
event.stopPropagation()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
form.classList.add('was-validated')
|
|
|
|
|
}, false)
|
|
|
|
|
})
|
|
|
|
|
})()
|
|
|
|
|
</script>
|
2025-02-19 14:27:14 -03:00
|
|
|
{% endblock %}
|