mirror of https://github.com/gmbrax/Pilgrim.git
				
				
				
			Compare commits
	
		
			5 Commits
		
	
	
		
			5c03823df6
			...
			799707e798
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 799707e798 | |
|  | c5edb835b6 | |
|  | ed89669431 | |
|  | 8efda52d15 | |
|  | 4d6c92b4d0 | 
|  | @ -3,6 +3,7 @@ import re | |||
| import shutil | ||||
| from pathlib import Path | ||||
| 
 | ||||
| from pilgrim.models.entry import Entry | ||||
| from pilgrim.utils import DirectoryManager | ||||
| from sqlalchemy.exc import IntegrityError | ||||
| 
 | ||||
|  | @ -147,3 +148,14 @@ class TravelDiaryService: | |||
|                 self.session.rollback() | ||||
|                 raise ValueError(f"Could not delete diary: {str(e)}") | ||||
|         return None | ||||
| 
 | ||||
|     def delete_all_entries(self,travel_diary: TravelDiary): | ||||
|         diary = self.read_by_id(travel_diary.id) | ||||
|         if diary is not None: | ||||
|            diary.entries = [] | ||||
|            self.session.commit() | ||||
| 
 | ||||
| 
 | ||||
|            return True | ||||
| 
 | ||||
|         return False | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ from textual.widgets import Button | |||
| 
 | ||||
| from textual import on | ||||
| 
 | ||||
| 
 | ||||
| from pilgrim.ui.screens.modals.delete_yes_confirmation_modal import DeleteYesConfirmationModal | ||||
| 
 | ||||
| 
 | ||||
|  | @ -10,11 +11,23 @@ class DeleteAllEntriesModal(DeleteYesConfirmationModal): | |||
|     def __init__(self,diary_id:int): | ||||
|         super().__init__(diary_id) | ||||
|         self.head_text.update("Are you sure you want to delete all entries from this diary?") | ||||
|         self.delete_button.add_class("DeleteDiaryModal-DeleteButton") | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     @on(Button.Pressed, "#DeleteDiaryModal-DeleteButton") | ||||
|     @on(Button.Pressed, ".DeleteDiaryModal-DeleteButton") | ||||
|     def on_delete_button_pressed(self, event): | ||||
|         self.result = True | ||||
|         self.dismiss() | ||||
| 
 | ||||
|         from pilgrim.ui.screens.diary_list_screen import DiaryListScreen | ||||
| 
 | ||||
|         self.result = True | ||||
|         self._delete_entries() | ||||
|         self.dismiss() | ||||
|         self.app.push_screen(DiaryListScreen()) | ||||
| 
 | ||||
|     def _delete_entries(self): | ||||
|         diary = self.app.service_manager.get_travel_diary_service().read_by_id(self.diary_id) | ||||
|         if self.app.service_manager.get_travel_diary_service().delete_all_entries(diary): | ||||
|             self.notify("All entries deleted successfully") | ||||
|         else: | ||||
|             self.notify("Failed to delete all entries") | ||||
|  |  | |||
|  | @ -5,6 +5,8 @@ from textual.binding import Binding | |||
| from textual import on | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| class DeleteDiaryModal(Screen): | ||||
| 
 | ||||
|     BINDINGS = [ | ||||
|  | @ -44,11 +46,19 @@ class DeleteDiaryModal(Screen): | |||
|         else: | ||||
|             self.delete_button.disabled = True | ||||
| 
 | ||||
| 
 | ||||
|     @on(Button.Pressed,"#DeleteDiaryModal-DeleteButton") | ||||
|     def on_delete_button_pressed(self, event): | ||||
| 
 | ||||
|         self.result = True | ||||
|         self._delete_diary() | ||||
|         self.dismiss() | ||||
| 
 | ||||
|         from pilgrim.ui.screens.diary_list_screen import DiaryListScreen | ||||
| 
 | ||||
|         self.app.push_screen(DiaryListScreen()) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     @on(Button.Pressed,"#DeleteDiaryModal-CancelButton") | ||||
|     def on_cancel_button_pressed(self, event): | ||||
|  | @ -57,3 +67,11 @@ class DeleteDiaryModal(Screen): | |||
| 
 | ||||
|     def action_cancel(self): | ||||
|         self.dismiss() | ||||
| 
 | ||||
|     def _delete_diary(self): | ||||
|         diary = self.app.service_manager.get_travel_diary_service().read_by_id(self.diary_id) | ||||
|         self.app.service_manager.get_travel_diary_service().delete(diary) | ||||
|         if self.app.config_manager.get_auto_open_diary() == self.diary_name: | ||||
|             self.app.config_manager.set_auto_open_diary(None) | ||||
|             self.app.config_manager.save_config() | ||||
| 
 | ||||
|  |  | |||
|  | @ -5,6 +5,8 @@ from textual.binding import Binding | |||
| from textual import on | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| class DeleteYesConfirmationModal(Screen): | ||||
|     BINDINGS = [ | ||||
|         Binding("escape", "cancel", "Cancel"), | ||||
|  | @ -45,8 +47,9 @@ class DeleteYesConfirmationModal(Screen): | |||
|         self.action_cancel() | ||||
| 
 | ||||
|     def action_cancel(self): | ||||
|         from pilgrim.ui.screens.diary_settings_screen import SettingsScreen | ||||
|         self.dismiss() | ||||
|         self.app.push_screen(SettingsScreen(diary=travel_diary[0])) | ||||
|         self.app.push_screen(SettingsScreen(self.diary_id)) | ||||
| 
 | ||||
|     def compose(self): | ||||
|         yield Header() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue