feat: added demo timer_constructor; docs: added db in the .gitignore

This commit is contained in:
Arduinum628
2025-06-19 10:28:26 +03:00
parent 50e76d4726
commit f4da6d9f12
9 changed files with 242 additions and 6 deletions

View File

@@ -0,0 +1,42 @@
from kivy.uix.screenmanager import Screen
from kawai_focus.custom_widgets.timer_wigets import TimeTomatoInput
from kawai_focus.schemas import TimerModel
from kawai_focus.database.cruds import new_timer
class TimerConstructorScreen(Screen):
"""Экран конструктора таймера"""
def __init__(self, **kwargs):
super(TimerConstructorScreen, self).__init__(**kwargs)
def create_timer(self, instance):
"""Метод для создания таймера"""
timer = new_timer(
data=TimerModel(
title=self.ids.title.text,
pomodoro_time=int(self.ids.time_tomato_input.text),
break_time=int(self.ids.time_break_input.text),
break_long_time=int(self.ids.time_long_break_input.text),
count_pomodoro=int(self.ids.count_tomatos_input.text)
)
)
if timer:
screen_timer = self.manager.get_screen('timers_screen')
screen_timer.timer = timer
# Todo: временное решение: нужно сделать механизм для
# автоматического рассчёта часов, минут и секунд из
# колличества минут, введённого пользователем
screen_timer.ids.time_label.text = f'00:{
"0" + str(timer.pomodoro_time) if timer.pomodoro_time <= 9 else timer.pomodoro_time
}:00'
self.manager.current = 'timers_screen'
def back(self, instance) -> None:
"""Метод для кнопки назад - возврат в меню таймеров"""
pass

View File

@@ -21,6 +21,7 @@ class TimerScreen(Screen):
self.paused = False
self.remaining_time = None
self.sound_stop_event = None
self.timer = None
def start_timer(self, instance) -> None:
"""Метод для запуска таймера"""
@@ -29,8 +30,8 @@ class TimerScreen(Screen):
self.paused = False
else:
# Инициализация генератора таймера
vaid_timer_data = TimerTimeModel(ss=12) # Установите необходимое время
self.timer_generator = custom_timer(valid_data=vaid_timer_data)
self.valid_timer_data = TimerTimeModel(mm=self.timer.pomodoro_time)
self.timer_generator = custom_timer(valid_data=self.valid_timer_data)
self.remaining_time = next(self.timer_generator, self.zero_time)
# Запуск обновления времени каждую секунду
@@ -50,9 +51,13 @@ class TimerScreen(Screen):
# Остановка обновления времени
Clock.unschedule(self.update_time)
self.paused = False
# TODO: временное решение, время будет задаваться в интерфейсе
self.remaining_time = data_json.get_text('custom_time')
self.ids.time_label.text = self.remaining_time
self.remaining_time = TimerTimeModel(mm=self.timer.pomodoro_time).mm
# Todo: временное решение: нужно сделать механизм для
# автоматического рассчёта часов, минут и секунд из
# колличества минут, введённого пользователем
self.ids.time_label.text = f'00:{
"0" + str(self.remaining_time) if self.remaining_time <= 9 else self.remaining_time
}:00'
self.sound.stop()