253 lines
13 KiB
HTML
253 lines
13 KiB
HTML
{% 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 %}
|
|
|
|
<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>
|
|
<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 () {
|
|
'use strict';
|
|
|
|
var forms = document.querySelectorAll('.needs-validation');
|
|
|
|
Array.prototype.slice.call(forms)
|
|
.forEach(function (form) {
|
|
form.addEventListener('submit', function (event) {
|
|
event.preventDefault();
|
|
|
|
if (!form.checkValidity()) {
|
|
event.stopPropagation();
|
|
} else {
|
|
salvarAlteracoesMilitante({{ militante.id }});
|
|
}
|
|
|
|
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 %} |