feat: added functional for new disign for timers_screen
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user