Melhorias

This commit is contained in:
Emersonjsc 2025-07-06 23:54:52 -03:00
parent c62a8c7d16
commit 46e0ad6374
5 changed files with 0 additions and 18 deletions

View File

@ -15,16 +15,13 @@ class DialogoEditarAdocao(tk.Toplevel):
self.transient(parent)
self.grab_set()
# 1. Obter os IDs de todos os pets que já foram adotados
ids_pets_adotados = set()
for adocao in self.bd.adocoes.listar_todos():
for item in adocao.itens:
ids_pets_adotados.add(item.pet.id)
# 2. Obter os IDs dos pets que pertencem a ESTA adoção específica
ids_pets_desta_adocao = {item.pet.id for item in self.adocao_atual.itens}
# 3. A lista de pets para edição inclui os disponíveis E os que já estão nesta adoção
self.pessoas = self.bd.pessoas.listar_todos()
self.pets = [p for p in self.bd.pets.listar_todos() if p.id not in ids_pets_adotados or p.id in ids_pets_desta_adocao]
@ -80,5 +77,4 @@ class DialogoEditarAdocao(tk.Toplevel):
self.listbox_pets.selection_set(i)
if self.adocao_atual.itens:
# Corrigido: Pega a data do primeiro item como referência
self.entry_data.insert(0, self.adocao_atual.itens[0].data)

View File

@ -14,13 +14,11 @@ class DialogoNovaAdocao(tk.Toplevel):
self.transient(parent)
self.grab_set()
# 1. Obter os IDs de todos os pets que já foram adotados
ids_pets_adotados = set()
for adocao in self.bd.adocoes.listar_todos():
for item in adocao.itens:
ids_pets_adotados.add(item.pet.id)
# 2. Filtrar a lista de pets para mostrar apenas os disponíveis
self.pessoas = self.bd.pessoas.listar_todos()
self.pets = [p for p in self.bd.pets.listar_todos() if p.id not in ids_pets_adotados]

View File

@ -14,7 +14,6 @@ class FrameAdocao(tk.Frame):
self.popular_treeview()
def _criar_layout(self):
# Título da seção
titulo_label = tk.Label(
self,
text="GERENCIAR ADOÇÕES",
@ -24,7 +23,6 @@ class FrameAdocao(tk.Frame):
)
titulo_label.pack(pady=20)
# Frame de busca
busca_frame = tk.Frame(self, bg="#1e1e1e")
busca_frame.pack(pady=5, padx=20, fill="x")
@ -62,10 +60,8 @@ class FrameAdocao(tk.Frame):
tree_container = tk.Frame(self, bg="#1e1e1e")
tree_container.pack(pady=10, padx=20, fill="both", expand=True)
# Configuração da Treeview para um modo hierárquico
self.tree = ttk.Treeview(tree_container, columns=("data",), show="tree headings")
# Coluna #0 (a árvore)
self.tree.heading("#0", text="Detalhes da Adoção", anchor="w")
self.tree.column("#0", anchor="w", stretch=tk.YES, minwidth=250)
@ -83,7 +79,6 @@ class FrameAdocao(tk.Frame):
botoes_frame = tk.Frame(self, bg="#1e1e1e")
botoes_frame.pack(pady=10, padx=20, fill="x")
# Botão Nova Adoção
btn_adicionar = tk.Button(
botoes_frame,
text="Nova Adoção",
@ -98,14 +93,12 @@ class FrameAdocao(tk.Frame):
btn_adicionar.pack(side="left", padx=5)
def popular_treeview(self, lista_adocoes=None):
# Limpa a árvore
for i in self.tree.get_children():
self.tree.delete(i)
if lista_adocoes is None:
lista_adocoes = self.bd.adocoes.listar_todos()
# Popula com os dados de adoções do banco de dados
for adocao in lista_adocoes:
# Nó pai para a adoção
adocao_node = self.tree.insert(
@ -115,13 +108,10 @@ class FrameAdocao(tk.Frame):
open=True
)
# Nó filho para o adotante
self.tree.insert(adocao_node, "end", text=f"Adotante: {adocao.adotante.nome}")
# Nó "pasta" para os pets
pets_node = self.tree.insert(adocao_node, "end", text="Pets Adotados", open=True)
# Nós filhos para cada pet adotado
for item in adocao.itens:
self.tree.insert(
pets_node, "end",

View File

@ -8,7 +8,6 @@ class FrameInicio(tk.Frame):
self._criar_layout()
def _atualizar_dados(self):
"""Busca os totais do banco de dados e prepara os dados para exibição."""
total_pessoas = len(self.bd.pessoas.listar_todos()) if self.bd else 0
total_pets = len(self.bd.pets.listar_todos()) if self.bd else 0
total_adocoes = len(self.bd.adocoes.listar_todos()) if self.bd else 0

View File

@ -11,7 +11,6 @@ class FramePet(tk.Frame):
self._criar_layout()
def _criar_layout(self):
# Título da seção
titulo_label = tk.Label(
self,
text="GERENCIAR PETS",