50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
|
|
from flask import Blueprint, render_template, redirect, url_for, request, jsonify
|
||
|
|
from flask_login import login_required
|
||
|
|
|
||
|
|
from controllers.militante_controller import MilitanteController
|
||
|
|
from services.celula_service import CelulaService
|
||
|
|
from functions.decorators import require_permission, require_role
|
||
|
|
|
||
|
|
militante_bp = Blueprint('militante', __name__, url_prefix='/militantes')
|
||
|
|
|
||
|
|
@militante_bp.route("/")
|
||
|
|
@login_required
|
||
|
|
@require_permission('gerenciar_militantes')
|
||
|
|
def listar():
|
||
|
|
"""Lista todos os militantes"""
|
||
|
|
militantes = MilitanteController.listar_militantes()
|
||
|
|
celulas = CelulaService.listar_celulas()
|
||
|
|
return render_template('listar_militantes.html',
|
||
|
|
militantes=militantes,
|
||
|
|
celulas=celulas,
|
||
|
|
Militante=None) # Militante class for constants
|
||
|
|
|
||
|
|
@militante_bp.route("/criar", methods=["POST"])
|
||
|
|
@login_required
|
||
|
|
@require_permission('gerenciar_militantes')
|
||
|
|
def criar():
|
||
|
|
"""Cria um novo militante"""
|
||
|
|
return MilitanteController.criar_militante(request.form)
|
||
|
|
|
||
|
|
@militante_bp.route("/editar/<int:militante_id>", methods=["POST"])
|
||
|
|
@login_required
|
||
|
|
@require_permission('gerenciar_militantes')
|
||
|
|
def editar(militante_id):
|
||
|
|
"""Edita um militante existente"""
|
||
|
|
return MilitanteController.atualizar_militante(militante_id, request.form)
|
||
|
|
|
||
|
|
@militante_bp.route("/excluir/<int:militante_id>", methods=["POST"])
|
||
|
|
@login_required
|
||
|
|
@require_permission('gerenciar_militantes')
|
||
|
|
def excluir(militante_id):
|
||
|
|
"""Exclui um militante"""
|
||
|
|
if MilitanteController.excluir_militante(militante_id):
|
||
|
|
return redirect(url_for('militante.listar'))
|
||
|
|
return redirect(url_for('militante.listar'))
|
||
|
|
|
||
|
|
@militante_bp.route("/dados/<int:militante_id>")
|
||
|
|
@login_required
|
||
|
|
@require_permission('gerenciar_militantes')
|
||
|
|
def dados(militante_id):
|
||
|
|
"""Busca os dados de um militante específico"""
|
||
|
|
return MilitanteController.buscar_dados_militante(militante_id)
|