frat: added screen timers_screen, added new buttons: back, delete_timer, new_timer and the functionality is connected to them, udated fuc list_timers() for work with timers_screens for data;

This commit is contained in:
Arduinum628
2025-08-21 00:01:34 +03:00
parent ca6de5351a
commit 92765001be
10 changed files with 386 additions and 40 deletions

View File

@@ -33,7 +33,7 @@ class TimerConstructorScreen(Screen):
)
if timer:
screen_timer = self.manager.get_screen('timers_screen')
screen_timer = self.manager.get_screen('timer_screen')
screen_timer.timer = timer
time_culc = calculate_time(mm_user=timer.pomodoro_time)
screen_timer.timer_start_time = time_culc
@@ -42,10 +42,10 @@ class TimerConstructorScreen(Screen):
screen_timer.source_timer_names = gen_types_timers(count_pomodoro=timer.count_pomodoro)
self.manager.state_machine = screen_timer.source_timer_names.copy()
self.manager.current = 'timers_screen'
self.manager.current = 'timer_screen'
def back(self, instance) -> None:
"""Метод для кнопки назад - возврат в меню таймеров"""
pass
self.manager.current = 'timers_screen'

View File

@@ -3,6 +3,7 @@ from kivy.clock import Clock
from kivy.core.audio import SoundLoader
from kawai_focus.utils.utils import data_json, custom_timer, calculate_time
from kawai_focus.database.cruds import del_timer, list_timers
class TimerScreen(Screen):
@@ -88,7 +89,30 @@ class TimerScreen(Screen):
if not len(self.manager.state_machine):
self.manager.state_machine = self.source_timer_names.copy()
self.choice_timer()
self.choice_timer()
def back(self, instance) -> None:
"""Метод для кнопки назад - возврат в меню таймеров"""
if self.ids.title_warning.text:
self.ids.title_warning.text = ''
self.ids.del_timer.color = (1, 1, 1, 1)
self.manager.current = 'timers_screen'
def delete_timer(self, instance) -> None:
"""Метод для удаления таймера"""
if not self.ids.title_warning.text:
self.ids.title_warning.text = ('Вы действительно хотите удалить таймер?\n'
'Если да, то нажмите кнопку "удалить" ещё раз.')
self.ids.del_timer.color = (1, 0.3, 0.3, 1)
else:
del_timer(timer_id=self.timer.id)
timers = list_timers()
timers_screen = self.manager.get_screen('timers_screen')
timers_screen.ids.timers_view.data = timers
self.manager.current = 'timers_screen'
def play_sound(self, dt) -> None:
"""Метод для воспроизведения звука"""

View File

@@ -0,0 +1,33 @@
from kivy.uix.screenmanager import Screen
from kawai_focus.utils.utils import calculate_time, gen_types_timers
from kawai_focus.database.cruds import get_timer
class TimersScreen(Screen):
"""Экран таймеры"""
def __init__(self, **kwargs):
super(TimersScreen, self).__init__(**kwargs)
def switch_new_timer(self, instance) -> None:
"""Метод для переключения на экран Конструктор таймера"""
self.manager.current = 'timer_constructor_screen'
def switch_timer(self, instance) -> None:
"""Метод для кнопки переключения на выбранный таймер"""
timer = get_timer(timer_id=instance.timer_id)
screen_timer = self.manager.get_screen('timer_screen')
screen_timer.timer = timer
time_culc = calculate_time(mm_user=timer.pomodoro_time)
screen_timer.timer_start_time = time_culc
screen_timer.ids.time_label.text = time_culc
screen_timer.ids.title_label.text = timer.title
screen_timer.source_timer_names = gen_types_timers(count_pomodoro=timer.count_pomodoro)
self.manager.state_machine = screen_timer.source_timer_names.copy()
self.manager.current = 'timer_screen'