feat: added functional for new disign for timers_screen

This commit is contained in:
Arduinum628
2025-10-02 11:35:42 +03:00
parent c196e02314
commit 0a6814372d
5 changed files with 267 additions and 80 deletions

View File

@@ -1,31 +1,55 @@
from kivy.uix.screenmanager import Screen
from kivy.properties import StringProperty, NumericProperty
from kivymd.uix.screen import MDScreen
from kivymd.uix.expansionpanel import MDExpansionPanel
from kawai_focus.utils.utils import calculate_time, gen_types_timers
from kawai_focus.database.cruds import get_timer
from kawai_focus.database.cruds import get_timer, list_timers
from kawai_focus.main import Logger
class TimersScreen(Screen):
class ExpansionPanelItem(MDExpansionPanel):
"""Кастомный элемент панели с данными таймера"""
timer_id = NumericProperty()
title = StringProperty()
info = StringProperty()
class TimersScreen(MDScreen):
"""Экран таймеры"""
def __init__(self, **kwargs):
super(TimersScreen, self).__init__(**kwargs)
def switch_new_timer(self, instance) -> None:
"""Метод для переключения на экран Конструктор таймера"""
def on_enter(self, *args) -> None:
"""Загружает список таймеров при входе на экран"""
self.load_timers()
self.manager.current = 'timer_constructor_screen'
def load_timers(self) -> None:
"""Загружает все таймеры и добавляет их в контейнер"""
self.ids.container.clear_widgets()
all_timers = list_timers()
for timer_data in all_timers:
panel = ExpansionPanelItem(
timer_id=timer_data.get('timer_id'),
title=timer_data.get('title'),
info=timer_data.get('info'),
)
self.ids.container.add_widget(panel)
def switch_timer(self, instance) -> None:
"""Метод для кнопки переключения на выбранный таймер"""
timer = get_timer(timer_id=instance.timer_id)
if not timer:
Logger.warning(f'Таймер с ID {instance.timer_id} не найден!')
return
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
time_calc = calculate_time(mm_user=timer.pomodoro_time)
screen_timer.timer_start_time = time_calc
screen_timer.ids.time_label.text = time_calc
screen_timer.ids.title_label.text = timer.title
screen_timer.source_timer_names = gen_types_timers(count_pomodoro=timer.count_pomodoro)