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