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.transient(parent)
self.grab_set() self.grab_set()
# 1. Obter os IDs de todos os pets que já foram adotados
ids_pets_adotados = set() ids_pets_adotados = set()
for adocao in self.bd.adocoes.listar_todos(): for adocao in self.bd.adocoes.listar_todos():
for item in adocao.itens: for item in adocao.itens:
ids_pets_adotados.add(item.pet.id) 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} 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.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] 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) self.listbox_pets.selection_set(i)
if self.adocao_atual.itens: 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) 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.transient(parent)
self.grab_set() self.grab_set()
# 1. Obter os IDs de todos os pets que já foram adotados
ids_pets_adotados = set() ids_pets_adotados = set()
for adocao in self.bd.adocoes.listar_todos(): for adocao in self.bd.adocoes.listar_todos():
for item in adocao.itens: for item in adocao.itens:
ids_pets_adotados.add(item.pet.id) 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.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] 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() self.popular_treeview()
def _criar_layout(self): def _criar_layout(self):
# Título da seção
titulo_label = tk.Label( titulo_label = tk.Label(
self, self,
text="GERENCIAR ADOÇÕES", text="GERENCIAR ADOÇÕES",
@ -24,7 +23,6 @@ class FrameAdocao(tk.Frame):
) )
titulo_label.pack(pady=20) titulo_label.pack(pady=20)
# Frame de busca
busca_frame = tk.Frame(self, bg="#1e1e1e") busca_frame = tk.Frame(self, bg="#1e1e1e")
busca_frame.pack(pady=5, padx=20, fill="x") 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 = tk.Frame(self, bg="#1e1e1e")
tree_container.pack(pady=10, padx=20, fill="both", expand=True) 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") 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.heading("#0", text="Detalhes da Adoção", anchor="w")
self.tree.column("#0", anchor="w", stretch=tk.YES, minwidth=250) 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 = tk.Frame(self, bg="#1e1e1e")
botoes_frame.pack(pady=10, padx=20, fill="x") botoes_frame.pack(pady=10, padx=20, fill="x")
# Botão Nova Adoção
btn_adicionar = tk.Button( btn_adicionar = tk.Button(
botoes_frame, botoes_frame,
text="Nova Adoção", text="Nova Adoção",
@ -98,14 +93,12 @@ class FrameAdocao(tk.Frame):
btn_adicionar.pack(side="left", padx=5) btn_adicionar.pack(side="left", padx=5)
def popular_treeview(self, lista_adocoes=None): def popular_treeview(self, lista_adocoes=None):
# Limpa a árvore
for i in self.tree.get_children(): for i in self.tree.get_children():
self.tree.delete(i) self.tree.delete(i)
if lista_adocoes is None: if lista_adocoes is None:
lista_adocoes = self.bd.adocoes.listar_todos() lista_adocoes = self.bd.adocoes.listar_todos()
# Popula com os dados de adoções do banco de dados
for adocao in lista_adocoes: for adocao in lista_adocoes:
# Nó pai para a adoção # Nó pai para a adoção
adocao_node = self.tree.insert( adocao_node = self.tree.insert(
@ -115,13 +108,10 @@ class FrameAdocao(tk.Frame):
open=True open=True
) )
# Nó filho para o adotante
self.tree.insert(adocao_node, "end", text=f"Adotante: {adocao.adotante.nome}") 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) 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: for item in adocao.itens:
self.tree.insert( self.tree.insert(
pets_node, "end", pets_node, "end",

View File

@ -8,7 +8,6 @@ class FrameInicio(tk.Frame):
self._criar_layout() self._criar_layout()
def _atualizar_dados(self): 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_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_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 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() self._criar_layout()
def _criar_layout(self): def _criar_layout(self):
# Título da seção
titulo_label = tk.Label( titulo_label = tk.Label(
self, self,
text="GERENCIAR PETS", text="GERENCIAR PETS",