-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
97d82e8
commit 8f71e77
Showing
15 changed files
with
357 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
"""Controller da Home e da Evento.""" | ||
|
||
from src.controller.evento.listagem import Listagem | ||
from src.controller.evento.cadastro import Cadastro | ||
|
||
|
||
class Evento(Listagem, Cadastro): | ||
"""Classe responsavel por gerenciar Home de View e Evento de Model.""" | ||
|
||
def __init__(self) -> None: | ||
"""Construtor padrao, define os atributos view e model.""" | ||
Listagem.__init__(self) | ||
Cadastro.__init__(self) | ||
|
||
def iniciar(self, controller: object): | ||
self.view = controller.view | ||
self.model = controller.model | ||
|
||
Listagem.configurar(self) | ||
|
||
def cadastrar(self, evt) -> None: | ||
"""Evento click do botao cadastrar na actions.""" | ||
self.view.home.cadastro_evento.iniciar() | ||
Cadastro.configurar(self) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
class Cadastro(object): | ||
|
||
def __init__(self): | ||
pass | ||
|
||
def confirmar(self, evt=None) -> None: | ||
"""Evento click do botao confirmar no formulario de cadastro.""" | ||
formulario = self.view.home.cadastro_evento.obter_campos() | ||
|
||
erro = self.model.evento.validar(formulario) | ||
if erro: | ||
return self.view.janela_erro.iniciar(erro) | ||
|
||
evento = self.model.evento.cadastrar(formulario) | ||
|
||
elemento = self.view.home.listagem.adicionar(evento=evento) | ||
self.configurar_(elemento) | ||
|
||
self.view.home.cadastro_evento.fechar() | ||
|
||
def cancelar(self, evt=None) -> None: | ||
"""Evento click do botao cancelar no formulario de cadastro.""" | ||
self.view.home.cadastro_evento.fechar() | ||
|
||
def configurar(self) -> None: | ||
cadastro = self.view.home.cadastro_evento.subelemento | ||
|
||
cadastro.data.input.evento['<Return>'] = self.confirmar | ||
cadastro.titulo.input.evento['<Return>'] = self.confirmar | ||
cadastro.duracao.input.evento['<Return>'] = self.confirmar | ||
|
||
cadastro.cancelar.defs.mcnf['command'] = self.cancelar | ||
cadastro.confirmar.defs.mcnf['command'] = self.confirmar | ||
|
||
self.view.home.cadastro_evento.carregar_eventos() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
class Listagem(object): | ||
|
||
def __init__(self): | ||
pass | ||
|
||
def remover(self, evt, id_apresentacao: str) -> None: | ||
"""Evento click do botao remover na lista de eventos.""" | ||
self.model.evento.remover(id_apresentacao) | ||
self.view.home.listagem.remover(id_apresentacao, filtro='titulo') | ||
|
||
def expandir_recolher(self, evt, elemento): | ||
if elemento.subelemento.secundario.defs.visivel: | ||
elemento.subelemento.secundario.ocultar() | ||
else: | ||
elemento.subelemento.secundario.mostrar() | ||
|
||
def configurar_(self, elemento): | ||
primario = elemento.subelemento.primario | ||
secundario = elemento.subelemento.secundario | ||
|
||
primario.subelemento.label.evento['<Button-1>'] =\ | ||
lambda evt: self.expandir_recolher(evt, elemento) | ||
|
||
primario.subelemento.remover.evento['<Button-1>'] =\ | ||
lambda evt: self.remover(evt, elemento.dados['_id']) | ||
|
||
secundario.subelemento.cadastro.evento['<Button-1>'] =\ | ||
lambda evt: self.expandir_recolher(evt, elemento) | ||
|
||
secundario.subelemento.apresentacao.evento['<Button-1>'] =\ | ||
lambda evt: self.expandir_recolher(evt, elemento) | ||
|
||
elemento.carregar_eventos() | ||
|
||
def configurar(self) -> None: | ||
"""Carrega as eventos na lista de eventos da Home na View.""" | ||
for evento in self.model.evento.eventos: | ||
elemento = self.view.home.listagem.adicionar(evento=evento) | ||
self.configurar_(elemento) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
from src.utils import Utils | ||
from src.model.modelo import Modelo | ||
|
||
|
||
class Evento(Modelo): | ||
|
||
def __init__(self): | ||
super().__init__() | ||
|
||
self.tabela = 'evento' | ||
self.eventos = [] | ||
|
||
def iniciar(self, model): | ||
super().iniciar(model) | ||
|
||
self.carregar() | ||
self.ordenar() | ||
|
||
def obter(self, _id): | ||
return super().obter(_id) | ||
|
||
def carregar(self): | ||
self.eventos = super().carregar() | ||
|
||
def cadastrar(self, evento): | ||
vals = [] | ||
vals.append(evento['titulo']) | ||
vals.append(evento['duracao']) | ||
vals.append(evento['data']) | ||
vals.append(Utils.data_e_hora_atual()) | ||
|
||
super().cadastrar(vals) | ||
self.carregar() | ||
|
||
evento = self.eventos[-1] | ||
self.ordenar() | ||
|
||
return evento | ||
|
||
def remover(self, _id): | ||
super().remover(_id) | ||
|
||
def ordenar(self): | ||
dp = 'data' | ||
self.eventos.sort(key=lambda a: a[dp].split('/')[::-1]) | ||
|
||
def validar(self, formulario): | ||
data, duracao = formulario['data'], formulario['duracao'] | ||
|
||
if not self.model.atividade.atividades: | ||
return 'Lista de Atividades vazia' | ||
|
||
if not self.model.grupo.grupos: | ||
return 'Lista de Grupos vazia' | ||
|
||
if not data: | ||
return 'O campo "Apresentação" não pode estar vazio!' | ||
if not duracao: | ||
return 'O campo "Duração" não pode estar vazio!' | ||
|
||
if data[2] != '/' or data[5] != '/': | ||
return 'Formato invalido! Entre com o formato dd/mm/aaaa' | ||
|
||
dia, mes, ano = data.split('/') | ||
data_atual = Utils.data_e_hora_atual().split(' ')[0].split('/') | ||
|
||
try: | ||
dia, mes, ano = int(dia), int(mes), int(ano) | ||
except Exception as e: | ||
return 'Os valores em dd, mm e aaaa precisam ser numeros!' | ||
|
||
data_valida = False | ||
|
||
if data_atual[::-1] > data.split('/')[::-1]: | ||
return 'Data INVALIDA' | ||
|
||
meses_com_ate_31_dias = [1, 3, 5, 7, 8, 10, 12] | ||
if mes in meses_com_ate_31_dias: | ||
if dia <= 31: | ||
data_valida = True | ||
|
||
meses_com_ate_30_dias = [4, 6, 9, 11] | ||
if mes in meses_com_ate_30_dias: | ||
if dia <= 30: | ||
data_valida = True | ||
|
||
if mes == 2: | ||
if ano % 4 == 0 and ano % 100 != 0 or ano % 400 == 0: | ||
# Ano Bisexto! Fevereiro com possíveis 29 dias | ||
if dia <= 29: | ||
data_valida = True | ||
|
||
if dia <= 28: | ||
data_valida = True | ||
|
||
if not data_valida: | ||
return 'Data INVALIDA!' | ||
|
||
try: | ||
duracao = int(duracao) | ||
except Exception as e: | ||
return 'O campo "Duração" só aceita valor inteiro!' |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.