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