Files
controles/templates/editar_militante.html

253 lines
13 KiB
HTML
Raw Normal View History

{% extends 'base.html' %}
{% block title %}Editar Militante{% endblock %}
{% block content %}
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="mb-4">Editar Militante</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 %}
2025-04-09 09:59:12 -03:00
<form id="formEditarMilitante" method="POST" class="needs-validation" novalidate>
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<input type="hidden" name="militante_id" value="{{ militante.id }}">
<div class="row">
<div class="col-md-6 mb-3">
<label for="nome" class="form-label">Nome</label>
<input type="text" class="form-control" id="nome" name="nome" value="{{ militante.nome }}" required>
<div class="invalid-feedback">
Por favor, insira o nome do militante.
</div>
</div>
<div class="col-md-6 mb-3">
<label for="email" class="form-label">Email</label>
2025-04-09 09:59:12 -03:00
<input type="email" class="form-control" id="email" name="email" value="{{ militante.emails[0].endereco_email if militante.emails else '' }}" required>
<div class="invalid-feedback">
Por favor, insira um email válido.
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="cpf" class="form-label">CPF</label>
<input type="text" class="form-control" id="cpf" name="cpf" value="{{ militante.cpf }}" required>
<div class="invalid-feedback">
Por favor, insira o CPF do militante.
</div>
</div>
<div class="col-md-6 mb-3">
<label for="titulo_eleitoral" class="form-label">Título Eleitoral</label>
<input type="text" class="form-control" id="titulo_eleitoral" name="titulo_eleitoral" value="{{ militante.titulo_eleitoral }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="data_nascimento" class="form-label">Data de Nascimento</label>
<input type="date" class="form-control" id="data_nascimento" name="data_nascimento" value="{{ militante.data_nascimento.strftime('%Y-%m-%d') }}">
</div>
<div class="col-md-6 mb-3">
<label for="data_entrada_oci" class="form-label">Data de Entrada na OCI</label>
<input type="date" class="form-control" id="data_entrada_oci" name="data_entrada_oci" value="{{ militante.data_entrada_oci.strftime('%Y-%m-%d') }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="data_efetivacao_oci" class="form-label">Data de Efetivação na OCI</label>
<input type="date" class="form-control" id="data_efetivacao_oci" name="data_efetivacao_oci" value="{{ militante.data_efetivacao_oci.strftime('%Y-%m-%d') }}">
</div>
<div class="col-md-6 mb-3">
<label for="telefone1" class="form-label">Telefone 1</label>
<input type="text" class="form-control" id="telefone1" name="telefone1" value="{{ militante.telefone1 }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="telefone2" class="form-label">Telefone 2</label>
<input type="text" class="form-control" id="telefone2" name="telefone2" value="{{ militante.telefone2 }}">
</div>
<div class="col-md-6 mb-3">
<label for="profissao" class="form-label">Profissão</label>
<input type="text" class="form-control" id="profissao" name="profissao" value="{{ militante.profissao }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="regime_trabalho" class="form-label">Regime de Trabalho</label>
<input type="text" class="form-control" id="regime_trabalho" name="regime_trabalho" value="{{ militante.regime_trabalho }}">
</div>
<div class="col-md-6 mb-3">
<label for="empresa" class="form-label">Empresa</label>
<input type="text" class="form-control" id="empresa" name="empresa" value="{{ militante.empresa }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="contratante" class="form-label">Contratante</label>
<input type="text" class="form-control" id="contratante" name="contratante" value="{{ militante.contratante }}">
</div>
<div class="col-md-6 mb-3">
<label for="instituicao_ensino" class="form-label">Instituição de Ensino</label>
<input type="text" class="form-control" id="instituicao_ensino" name="instituicao_ensino" value="{{ militante.instituicao_ensino }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="tipo_instituicao" class="form-label">Tipo de Instituição</label>
<input type="text" class="form-control" id="tipo_instituicao" name="tipo_instituicao" value="{{ militante.tipo_instituicao }}">
</div>
<div class="col-md-6 mb-3">
<label for="sindicato" class="form-label">Sindicato</label>
<input type="text" class="form-control" id="sindicato" name="sindicato" value="{{ militante.sindicato }}">
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="cargo_sindical" class="form-label">Cargo Sindical</label>
<input type="text" class="form-control" id="cargo_sindical" name="cargo_sindical" value="{{ militante.cargo_sindical }}">
</div>
<div class="col-md-6 mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="dirigente_sindical" name="dirigente_sindical" {% if militante.dirigente_sindical %}checked{% endif %}>
<label class="form-check-label" for="dirigente_sindical">
Dirigente Sindical
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="central_sindical" class="form-label">Central Sindical</label>
<input type="text" class="form-control" id="central_sindical" name="central_sindical" value="{{ militante.central_sindical }}">
</div>
<div class="col-md-6 mb-3">
<label for="setor_id" class="form-label">Setor</label>
<select class="form-select" id="setor_id" name="setor_id" required>
<option value="">Selecione um setor</option>
{% for setor in setores %}
<option value="{{ setor.id }}" {% if setor.id == militante.setor_id %}selected{% endif %}>{{ setor.nome }}</option>
{% endfor %}
</select>
<div class="invalid-feedback">
Por favor, selecione um setor.
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label for="celula_id" class="form-label">Célula</label>
<select class="form-select" id="celula_id" name="celula_id" required>
<option value="">Selecione uma célula</option>
{% for celula in celulas %}
<option value="{{ celula.id }}" {% if celula.id == militante.celula_id %}selected{% endif %}>{{ celula.nome }}</option>
{% endfor %}
</select>
<div class="invalid-feedback">
Por favor, selecione uma célula.
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 mb-3">
<label class="form-label">Responsabilidades</label>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="responsavel_financas" name="responsabilidades" value="{{ Militante.RESPONSAVEL_FINANCAS }}" {% if militante.responsabilidades & Militante.RESPONSAVEL_FINANCAS %}checked{% endif %}>
<label class="form-check-label" for="responsavel_financas">
Responsável de Finanças
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="responsavel_imprensa" name="responsabilidades" value="{{ Militante.RESPONSAVEL_IMPRENSA }}" {% if militante.responsabilidades & Militante.RESPONSAVEL_IMPRENSA %}checked{% endif %}>
<label class="form-check-label" for="responsavel_imprensa">
Responsável de Imprensa
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="quadro_orientador" name="responsabilidades" value="{{ Militante.QUADRO_ORIENTADOR }}" {% if militante.responsabilidades & Militante.QUADRO_ORIENTADOR %}checked{% endif %}>
<label class="form-check-label" for="quadro_orientador">
Quadro-Orientador
</label>
</div>
</div>
</div>
<div class="d-flex justify-content-between mt-4">
<button type="submit" class="btn btn-primary">Salvar</button>
<a href="{{ url_for('listar_militantes') }}" class="btn btn-secondary">Cancelar</a>
</div>
</form>
</div>
</div>
</div>
<script>
// Validação do formulário
(function () {
2025-04-09 09:59:12 -03:00
'use strict';
2025-04-09 09:59:12 -03:00
var forms = document.querySelectorAll('.needs-validation');
Array.prototype.slice.call(forms)
.forEach(function (form) {
form.addEventListener('submit', function (event) {
2025-04-09 09:59:12 -03:00
event.preventDefault();
if (!form.checkValidity()) {
2025-04-09 09:59:12 -03:00
event.stopPropagation();
} else {
salvarAlteracoesMilitante({{ militante.id }});
}
2025-04-09 09:59:12 -03:00
form.classList.add('was-validated');
}, false);
});
})();
// Função para mostrar alertas
function mostrarAlerta(mensagem, tipo) {
const alertDiv = document.createElement('div');
alertDiv.className = `alert alert-${tipo} alert-dismissible fade show`;
alertDiv.role = 'alert';
alertDiv.innerHTML = `
${mensagem}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
`;
const container = document.querySelector('.container');
container.insertBefore(alertDiv, container.firstChild);
// Remover o alerta após 5 segundos
setTimeout(() => {
alertDiv.remove();
}, 5000);
}
</script>
{% endblock %}