Started integrating the database to the UI so it can save the data into the database

This commit is contained in:
Gustavo Henrique Santos Souza de Miranda 2025-06-25 14:58:54 -03:00
parent 4a5da4d44c
commit f1195391db
5 changed files with 15 additions and 10 deletions

View File

@ -7,7 +7,10 @@ from pilgrim.ui.ui import UIApp
class Application: class Application:
def __init__(self): def __init__(self):
self.database = Database() self.database = Database()
self.ui = UIApp(ServiceManagerMock()) session = self.database.session()
session_manager = ServiceManager()
session_manager.set_session(session)
self.ui = UIApp(session_manager)
def run(self): def run(self):
self.database.create() self.database.create()

View File

@ -1,5 +1,4 @@
from typing import List from typing import List
from ..models.entry import Entry from ..models.entry import Entry
from ..models.travel_diary import TravelDiary from ..models.travel_diary import TravelDiary

View File

@ -1,10 +1,10 @@
from ..models.travel_diary import TravelDiary from ..models.travel_diary import TravelDiary
import asyncio
class TravelDiaryService: class TravelDiaryService:
def __init__(self,session): def __init__(self,session):
self.session = session self.session = session
def create(self, name:str): async def async_create(self, name:str):
new_travel_diary = TravelDiary(name) new_travel_diary = TravelDiary(name)
self.session.add(new_travel_diary) self.session.add(new_travel_diary)
self.session.commit() self.session.commit()
@ -18,14 +18,17 @@ class TravelDiaryService:
def read_all(self): def read_all(self):
return self.session.query(TravelDiary).all() return self.session.query(TravelDiary).all()
def update(self, travel_diary_id: TravelDiary, travel_diary_dst: TravelDiary): def update(self, travel_diary_id: int, name: str):
original = self.read_by_id(travel_diary_id.id) original = self.read_by_id(travel_diary_id)
if original is not None: if original is not None:
original.name = travel_diary_dst.name original.name = name
self.session.commit() self.session.commit()
self.session.refresh(original) self.session.refresh(original)
return original return original
async def async_update(self, travel_diary_id: int, name: str):
return self.update(travel_diary_id, name)
def delete(self, travel_diary_id: TravelDiary): def delete(self, travel_diary_id: TravelDiary):
excluded = self.read_by_id(travel_diary_id.id) excluded = self.read_by_id(travel_diary_id.id)
if excluded is not None: if excluded is not None:

View File

@ -127,8 +127,8 @@ class DiaryListScreen(Screen):
service_manager = self.app.service_manager service_manager = self.app.service_manager
travel_diary_service = service_manager.get_travel_diary_service() travel_diary_service = service_manager.get_travel_diary_service()
# Uses async method # Usa método síncrono agora
diaries = await travel_diary_service.async_read_all() diaries = travel_diary_service.read_all()
# Saves current state # Saves current state
current_diary_id = None current_diary_id = None

View File

@ -387,4 +387,4 @@ Screen.-modal {
.RenameEntryModal-cancel-button { .RenameEntryModal-cancel-button {
margin: 0 1; margin: 0 1;
width: 1fr; width: 1fr;
} }