mirror of https://github.com/gmbrax/Pilgrim.git
				
				
				
			Add the modals to delete the diary and the diary contents
This commit is contained in:
		
							parent
							
								
									08a5030846
								
							
						
					
					
						commit
						40a2e727f8
					
				|  | @ -0,0 +1,20 @@ | ||||||
|  | 
 | ||||||
|  | from textual.widgets import Button | ||||||
|  | 
 | ||||||
|  | from textual import on | ||||||
|  | 
 | ||||||
|  | from pilgrim.ui.screens.modals.delete_yes_confirmation_modal import DeleteYesConfirmationModal | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 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?") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @on(Button.Pressed, "#DeleteDiaryModal-DeleteButton") | ||||||
|  |     def on_delete_button_pressed(self, event): | ||||||
|  |         self.result = True | ||||||
|  |         self.dismiss() | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | 
 | ||||||
|  | from textual.widgets import Button | ||||||
|  | 
 | ||||||
|  | from textual import on | ||||||
|  | 
 | ||||||
|  | from pilgrim.ui.screens.modals.delete_yes_confirmation_modal import DeleteYesConfirmationModal | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class DeleteAllPhotosModal(DeleteYesConfirmationModal): | ||||||
|  |     def __init__(self,diary_id:int): | ||||||
|  |         super().__init__(diary_id) | ||||||
|  |         self.head_text.update("Are you sure you want to delete all photos from this diary?") | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @on(Button.Pressed, "#DeleteDiaryModal-DeleteButton") | ||||||
|  |     def on_delete_button_pressed(self, event): | ||||||
|  |         self.result = True | ||||||
|  |         self.dismiss() | ||||||
|  |          | ||||||
|  | @ -0,0 +1,59 @@ | ||||||
|  | from textual.containers import Container | ||||||
|  | from textual.widgets import Header, Footer, Label, Button,Input | ||||||
|  | from textual.screen import Screen | ||||||
|  | from textual.binding import Binding | ||||||
|  | from textual import on | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class DeleteDiaryModal(Screen): | ||||||
|  | 
 | ||||||
|  |     BINDINGS = [ | ||||||
|  |         Binding("escape","cancel","Cancel"), | ||||||
|  |     ] | ||||||
|  |     def __init__(self, diary_id: int,diary_name:str): | ||||||
|  |         super().__init__() | ||||||
|  |         self.diary_id = diary_id | ||||||
|  |         self.diary_name = diary_name | ||||||
|  |         self.user_input = Input(placeholder=f"Type diary name to confirm: ({self.diary_name})",id="DeleteDiaryModal-UserInput") | ||||||
|  |         self.delete_button = Button("Delete Diary",id="DeleteDiaryModal-DeleteButton",disabled=True) | ||||||
|  |         self.cancel_button = Button("Cancel",id="DeleteDiaryModal-CancelButton") | ||||||
|  |         self.result = None | ||||||
|  | 
 | ||||||
|  |     def compose(self): | ||||||
|  |         yield Header() | ||||||
|  |         yield Container( | ||||||
|  |             Label("Are you sure you want to delete this diary?"), | ||||||
|  |             self.user_input, | ||||||
|  |             Container( | ||||||
|  |                 self.delete_button, | ||||||
|  |                 self.cancel_button, | ||||||
|  |                 id="DeleteDiaryModal-ButtonContainer", | ||||||
|  |                 classes="DeleteDiaryModal-ButtonContainer" | ||||||
|  |             ), | ||||||
|  |             id="DeleteDiaryModal-MainContainer", | ||||||
|  |             classes="DeleteDiaryModal-MainContainer" | ||||||
|  |         ) | ||||||
|  |         yield Footer() | ||||||
|  | 
 | ||||||
|  |     @on(Input.Changed,"#DeleteDiaryModal-UserInput") | ||||||
|  |     def on_user_input_changed(self, event): | ||||||
|  |         input_text = event.value.strip() | ||||||
|  | 
 | ||||||
|  |         if input_text == self.diary_name: | ||||||
|  |             self.delete_button.disabled = False | ||||||
|  |         else: | ||||||
|  |             self.delete_button.disabled = True | ||||||
|  | 
 | ||||||
|  |     @on(Button.Pressed,"#DeleteDiaryModal-DeleteButton") | ||||||
|  |     def on_delete_button_pressed(self, event): | ||||||
|  |         self.result = True | ||||||
|  |         self.dismiss() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @on(Button.Pressed,"#DeleteDiaryModal-CancelButton") | ||||||
|  |     def on_cancel_button_pressed(self, event): | ||||||
|  |         self.action_cancel() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     def action_cancel(self): | ||||||
|  |         self.dismiss() | ||||||
|  | @ -0,0 +1,54 @@ | ||||||
|  | from textual.containers import Container | ||||||
|  | from textual.widgets import Header, Footer, Label, Button,Input | ||||||
|  | from textual.screen import Screen | ||||||
|  | from textual.binding import Binding | ||||||
|  | from textual import on | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class DeleteYesConfirmationModal(Screen): | ||||||
|  |     BINDINGS = [ | ||||||
|  |         Binding("escape", "cancel", "Cancel"), | ||||||
|  |     ] | ||||||
|  |     def __init__(self,diary_id:int): | ||||||
|  |         super().__init__() | ||||||
|  |         self.diary_id = diary_id | ||||||
|  |         self.user_input = Input(placeholder="Type 'Yes, I do ' to confirm",id="DeleteYesConfirmationModal-UserInput") | ||||||
|  |         self.delete_button = Button("Delete",id="DeleteYesConfirmationModal-DeleteButton",disabled=True) | ||||||
|  |         self.cancel_button = Button("Cancel",id="DeleteYesConfirmationModal-CancelButton") | ||||||
|  |         self.head_text = Label("Are you sure you want to delete this diary?",id="DeleteYesConfirmationModal-HeadText") | ||||||
|  |         self.second_head_text = Label("This action cannot be undone.",id="DeleteYesConfirmationModal-SecondHeadText") | ||||||
|  |         self.delete_modal_container = Container( | ||||||
|  |             self.head_text, | ||||||
|  |             self.second_head_text, | ||||||
|  |             self.user_input, | ||||||
|  |             Container( | ||||||
|  |                 self.delete_button, | ||||||
|  |                 self.cancel_button, | ||||||
|  |                 id="DeleteYesConfirmationModal-DeleteButtonContainer", | ||||||
|  |                 classes="DeleteYesConfirmationModal-DeleteButtonContainer" | ||||||
|  |             ), | ||||||
|  |             id="DeleteYesConfirmationModal-DeleteModalContainer", | ||||||
|  |             classes="DeleteYesConfirmationModal-DeleteModalContainer" | ||||||
|  |         ) | ||||||
|  |         self.result = None | ||||||
|  | 
 | ||||||
|  |     @on(Input.Changed,"#DeleteYesConfirmationModal-UserInput") | ||||||
|  |     def on_user_input_changed(self, event): | ||||||
|  |         input_text = event.value.strip() | ||||||
|  |         if input_text == "Yes, I do": | ||||||
|  |             self.delete_button.disabled = False | ||||||
|  |         else: | ||||||
|  |             self.delete_button.disabled = True | ||||||
|  | 
 | ||||||
|  |     @on(Button.Pressed,"#DeleteYesConfirmationModal-CancelButton") | ||||||
|  |     def on_cancel_button_pressed(self, event): | ||||||
|  |         self.action_cancel() | ||||||
|  | 
 | ||||||
|  |     def action_cancel(self): | ||||||
|  |         self.dismiss() | ||||||
|  |         self.app.push_screen(SettingsScreen(diary=travel_diary[0])) | ||||||
|  | 
 | ||||||
|  |     def compose(self): | ||||||
|  |         yield Header() | ||||||
|  |         yield Footer() | ||||||
|  |         yield self.delete_modal_container | ||||||
		Loading…
	
		Reference in New Issue