Melhorias
This commit is contained in:
parent
c62a8c7d16
commit
46e0ad6374
|
@ -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)
|
|
@ -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]
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue