mirror of
https://github.com/gmbrax/Pilgrim.git
synced 2026-11-09 19:40:18 +00:00
Changed the modal size and also modified the edit_entry_screen.py to conform with the wireframe, also changed all the texts to be english
This commit is contained in:
parent
f9ab6da116
commit
a999a0a437
@@ -58,31 +58,31 @@ class DiaryListScreen(Screen):
|
||||
yield self.footer
|
||||
|
||||
def on_mount(self) -> None:
|
||||
# Usa versão síncrona para o mount inicial
|
||||
# Uses synchronous version for initial mount
|
||||
self.refresh_diaries()
|
||||
self.update_buttons_state()
|
||||
|
||||
def refresh_diaries(self):
|
||||
"""Versão síncrona do refresh"""
|
||||
"""Synchronous version of refresh"""
|
||||
try:
|
||||
service_manager = self.app.service_manager
|
||||
travel_diary_service = service_manager.get_travel_diary_service()
|
||||
|
||||
# Usa método síncrono
|
||||
# Uses synchronous method
|
||||
diaries = travel_diary_service.read_all()
|
||||
|
||||
# Salva o estado atual
|
||||
# Saves current state
|
||||
current_diary_id = None
|
||||
if (self.selected_diary_index is not None and
|
||||
self.selected_diary_index in self.diary_id_map):
|
||||
current_diary_id = self.diary_id_map[self.selected_diary_index]
|
||||
|
||||
# Limpa e reconstrói
|
||||
# Clears and rebuilds
|
||||
self.diary_list.clear_options()
|
||||
self.diary_id_map = {}
|
||||
|
||||
if not diaries:
|
||||
self.diary_list.add_option("[dim]Nenhum diário encontrado. Pressione 'N' para criar um novo![/dim]")
|
||||
self.diary_list.add_option("[dim]No diaries found. Press 'N' to create a new one![/dim]")
|
||||
self.selected_diary_index = None
|
||||
else:
|
||||
new_selected_index = 0
|
||||
@@ -91,33 +91,33 @@ class DiaryListScreen(Screen):
|
||||
self.diary_id_map[index] = diary.id
|
||||
self.diary_list.add_option(f"[b]{diary.name}[/b]\n[dim]ID: {diary.id}[/dim]")
|
||||
|
||||
# Mantém a seleção se possível
|
||||
# Maintains selection if possible
|
||||
if current_diary_id and diary.id == current_diary_id:
|
||||
new_selected_index = index
|
||||
|
||||
self.selected_diary_index = new_selected_index
|
||||
|
||||
# Atualiza o highlight
|
||||
# Updates highlight
|
||||
self.set_timer(0.05, lambda: self._update_highlight(new_selected_index))
|
||||
|
||||
# Força refresh visual
|
||||
# Forces visual refresh
|
||||
self.diary_list.refresh()
|
||||
self.update_buttons_state()
|
||||
|
||||
except Exception as e:
|
||||
self.notify(f"Erro ao carregar diários: {str(e)}")
|
||||
self.notify(f"Error loading diaries: {str(e)}")
|
||||
|
||||
def _update_highlight(self, index: int):
|
||||
"""Atualiza o highlight do OptionList"""
|
||||
"""Updates the OptionList highlight"""
|
||||
try:
|
||||
if index < len(self.diary_list.options):
|
||||
self.diary_list.highlighted = index
|
||||
self.diary_list.refresh()
|
||||
except Exception as e:
|
||||
self.notify(f"Erro ao atualizar highlight: {str(e)}")
|
||||
self.notify(f"Error updating highlight: {str(e)}")
|
||||
|
||||
async def async_refresh_diaries(self):
|
||||
"""Versão assíncrona do refresh"""
|
||||
"""Async version of refresh"""
|
||||
if self.is_refreshing:
|
||||
return
|
||||
|
||||
@@ -127,21 +127,21 @@ class DiaryListScreen(Screen):
|
||||
service_manager = self.app.service_manager
|
||||
travel_diary_service = service_manager.get_travel_diary_service()
|
||||
|
||||
# Usa método assíncrono
|
||||
# Uses async method
|
||||
diaries = await travel_diary_service.async_read_all()
|
||||
|
||||
# Salva o estado atual
|
||||
# Saves current state
|
||||
current_diary_id = None
|
||||
if (self.selected_diary_index is not None and
|
||||
self.selected_diary_index in self.diary_id_map):
|
||||
current_diary_id = self.diary_id_map[self.selected_diary_index]
|
||||
|
||||
# Limpa e reconstrói
|
||||
# Clears and rebuilds
|
||||
self.diary_list.clear_options()
|
||||
self.diary_id_map = {}
|
||||
|
||||
if not diaries:
|
||||
self.diary_list.add_option("[dim]Nenhum diário encontrado. Pressione 'N' para criar um novo![/dim]")
|
||||
self.diary_list.add_option("[dim]No diaries found. Press 'N' to create a new one![/dim]")
|
||||
self.selected_diary_index = None
|
||||
else:
|
||||
new_selected_index = 0
|
||||
@@ -160,12 +160,12 @@ class DiaryListScreen(Screen):
|
||||
self.update_buttons_state()
|
||||
|
||||
except Exception as e:
|
||||
self.notify(f"Erro ao carregar diários: {str(e)}")
|
||||
self.notify(f"Error loading diaries: {str(e)}")
|
||||
finally:
|
||||
self.is_refreshing = False
|
||||
|
||||
def on_option_list_option_highlighted(self, event: OptionList.OptionHighlighted) -> None:
|
||||
"""Handle quando uma opção é destacada"""
|
||||
"""Handle when an option is highlighted"""
|
||||
if self.diary_id_map and event.option_index in self.diary_id_map:
|
||||
self.selected_diary_index = event.option_index
|
||||
else:
|
||||
@@ -174,7 +174,7 @@ class DiaryListScreen(Screen):
|
||||
self.update_buttons_state()
|
||||
|
||||
def on_option_list_option_selected(self, event: OptionList.OptionSelected) -> None:
|
||||
"""Handle quando uma opção é selecionada"""
|
||||
"""Handle when an option is selected"""
|
||||
if self.diary_id_map and event.option_index in self.diary_id_map:
|
||||
self.selected_diary_index = event.option_index
|
||||
self.action_open_diary()
|
||||
@@ -184,7 +184,7 @@ class DiaryListScreen(Screen):
|
||||
self.update_buttons_state()
|
||||
|
||||
def update_buttons_state(self):
|
||||
"""Atualiza o estado dos botões"""
|
||||
"""Updates button states"""
|
||||
has_selection = (self.selected_diary_index is not None and
|
||||
self.selected_diary_index in self.diary_id_map)
|
||||
|
||||
@@ -192,7 +192,7 @@ class DiaryListScreen(Screen):
|
||||
self.open_diary.disabled = not has_selection
|
||||
|
||||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||
"""Handle cliques nos botões"""
|
||||
"""Handle button clicks"""
|
||||
button_id = event.button.id
|
||||
|
||||
if button_id == "new_diary":
|
||||
@@ -203,7 +203,7 @@ class DiaryListScreen(Screen):
|
||||
self.action_open_diary()
|
||||
|
||||
def action_new_diary(self):
|
||||
"""Ação para criar novo diário"""
|
||||
"""Action to create new diary"""
|
||||
self.app.push_screen(NewDiaryModal(),self._on_new_diary_submitted)
|
||||
|
||||
def _on_new_diary_submitted(self,result):
|
||||
@@ -231,7 +231,7 @@ class DiaryListScreen(Screen):
|
||||
|
||||
|
||||
def action_edit_selected_diary(self):
|
||||
"""Ação para editar diário selecionado"""
|
||||
"""Action to edit selected diary"""
|
||||
if self.selected_diary_index is not None:
|
||||
diary_id = self.diary_id_map.get(self.selected_diary_index)
|
||||
if diary_id:
|
||||
@@ -240,10 +240,10 @@ class DiaryListScreen(Screen):
|
||||
self._on_edited_diary_name_submitted
|
||||
)
|
||||
else:
|
||||
self.notify("Selecione um diário para editar")
|
||||
self.notify("Select a diary to edit")
|
||||
|
||||
def action_open_diary(self):
|
||||
"""Ação para abrir diário selecionado"""
|
||||
"""Action to open selected diary"""
|
||||
if self.selected_diary_index is not None:
|
||||
diary_id = self.diary_id_map.get(self.selected_diary_index)
|
||||
if diary_id:
|
||||
@@ -252,43 +252,43 @@ class DiaryListScreen(Screen):
|
||||
else:
|
||||
self.notify("Invalid diary ID")
|
||||
else:
|
||||
self.notify("Selecione um diário para abrir")
|
||||
self.notify("Select a diary to open")
|
||||
|
||||
def _on_edited_diary_name_submitted(self, result: Optional[Tuple[int, str]]) -> None:
|
||||
"""Callback após edição do diário"""
|
||||
"""Callback after diary editing"""
|
||||
if result:
|
||||
diary_id, name = result
|
||||
self.notify(f"Atualizando diário ID {diary_id} para '{name}'...")
|
||||
# Agenda a atualização assíncrona
|
||||
self.notify(f"Updating diary ID {diary_id} to '{name}'...")
|
||||
# Schedules async update
|
||||
self.call_later(self._async_update_diary, diary_id, name)
|
||||
else:
|
||||
self.notify("Edição cancelada")
|
||||
self.notify("Edit canceled")
|
||||
|
||||
async def _async_update_diary(self, diary_id: int, name: str):
|
||||
"""Atualiza o diário de forma assíncrona"""
|
||||
"""Updates the diary asynchronously"""
|
||||
try:
|
||||
service = self.app.service_manager.get_travel_diary_service()
|
||||
updated_diary = await service.async_update(diary_id, name)
|
||||
|
||||
if updated_diary:
|
||||
self.notify(f"Diário '{name}' atualizado!")
|
||||
# Força refresh após a atualização
|
||||
self.notify(f"Diary '{name}' updated!")
|
||||
# Forces refresh after update
|
||||
await self.async_refresh_diaries()
|
||||
else:
|
||||
self.notify("Erro: Diário não encontrado")
|
||||
self.notify("Error: Diary not found")
|
||||
|
||||
except Exception as e:
|
||||
self.notify(f"Erro ao atualizar: {str(e)}")
|
||||
self.notify(f"Error updating: {str(e)}")
|
||||
|
||||
def action_force_refresh(self):
|
||||
"""Força refresh manual"""
|
||||
self.notify("Forçando refresh...")
|
||||
# Tenta ambas as versões
|
||||
self.refresh_diaries() # Síncrona
|
||||
self.call_later(self.async_refresh_diaries) # Assíncrona
|
||||
"""Forces manual refresh"""
|
||||
self.notify("Forcing refresh...")
|
||||
# Tries both versions
|
||||
self.refresh_diaries() # Synchronous
|
||||
self.call_later(self.async_refresh_diaries) # Asynchronous
|
||||
|
||||
def action_open_selected_diary(self):
|
||||
"""Ação do binding ENTER"""
|
||||
"""Action for ENTER binding"""
|
||||
self.action_open_diary()
|
||||
|
||||
def action_about_cmd(self):
|
||||
|
||||
Reference in New Issue
Block a user