def refresh_names_navdrawer(self):
     for i in self.nav_buttons:
         val = i.val
         i.text = eval(val)
     # Заодно обновим дату
     for i in range(7):
         item = ThreeLineIconListItem()
         item.text = DAYOFWEEK_DICT[i]
         item.secondary_text = ", ".join(SCHEDULE.get(i, DEFAULT_SCHED))
         self.main_widget.ids.rasp_all_list.add_widget(item)
     self.refresh_data()
    def refresh_data(self):
        print("data", self.data)
        self.now = datetime.now()
        tz = pytz.timezone("Etc/GMT+4")
        tz.localize(self.now)

        self.check_expired_alerts()

        hierarchy = []
        weekday = self.now.weekday()
        old_weekday = self.now.weekday()
        hour = self.now.hour
        today = False
        if hour < 14:
            today = True

        for i in range(6):
            if not today:
                i += 1
            i += weekday
            if i == 6:
                i = 0
            elif i > 6:
                i -= 6

            for j in SCHEDULE[i]:
                if j not in hierarchy:
                    hierarchy.append(j)

        self.algoritmus_data = {}
        self.algoritmus_header = ""
        for i in hierarchy:
            for j in self.data:
                if j.startswith(i):
                    self.algoritmus_data[j] = self.data[j]
                    self.algoritmus_header = i
            if self.algoritmus_data:
                break

        self.main_widget.ids.rasp_list.clear_widgets()

        today_list_item = ThreeLineIconListItem()
        today_list_item.text = "Сегодня ({})".format(DAYOFWEEK_DICT[weekday])
        today_list_item.secondary_text = ", ".join(
            SCHEDULE.get(weekday, DEFAULT_SCHED))

        self.main_widget.ids.rasp_list.add_widget(today_list_item)
        self.algoritmus_nextday = "На потом"
        if weekday in (5, 6):
            weekday = -1
        weekday += 1
        if self.algoritmus_header in SCHEDULE.get(weekday, []):
            self.algoritmus_nextday = "На завтра"
        if self.algoritmus_header in SCHEDULE.get(old_weekday, []) and today:
            self.algoritmus_nextday = "СДЕЛАТЬ СЕГОДНЯ!"

        today_list_item = ThreeLineIconListItem()
        today_list_item.text = "Завтра ({})".format(DAYOFWEEK_DICT[weekday])
        today_list_item.secondary_text = ", ".join(
            SCHEDULE.get(weekday, DEFAULT_SCHED))

        self.main_widget.ids.rasp_list.add_widget(today_list_item)

        if self.data:
            self.main_widget.ids.algoritmuscard.set_data(
                self.algoritmus_data, self.algoritmus_header,
                self.algoritmus_nextday)
        else:
            self.main_widget.ids.algoritmuscard.set_data(
                {
                    "Действия":
                    "Попробуй обновить данные. Если ничего не поменялось, отдыхай))"
                }, "Наверное, ты всё сделал", False, "База данных пуста :(")

        self.tasks_data = {}

        self.main_widget.ids.alerts_list.clear_widgets()
        if alerts['unreaded']:
            item = OneLineIconListItem()
            item.text = "Новые"
            item.add_widget(IconLeftWidget(icon="newspaper-plus"))
            self.main_widget.ids.alerts_list.add_widget(item)
            for i in alerts["unreaded"]:
                self.main_widget.ids.alerts_list.add_widget(
                    ThreeLineListItem(text=i[0]))

        if alerts['readed']:
            item = OneLineIconListItem()
            item.text = "Прочитанные"
            item.add_widget(IconLeftWidget(icon="newspaper"))
            self.main_widget.ids.alerts_list.add_widget(item)
            for i in alerts["readed"]:
                self.main_widget.ids.alerts_list.add_widget(
                    ThreeLineListItem(text=i[0]))

        for i in hierarchy:
            self.tasks_data[i] = {}
            for j in self.data:
                if j.startswith(i):
                    self.tasks_data[i][j] = self.data[j]
            if self.tasks_data[i] == {}:
                self.tasks_data[i] = {
                    "Не найдено записей в базе данных":
                    "Обновите базу данных. Если так и остаётся, значит, всё сделано!"
                }

        self.main_widget.ids.tasks_layout.clear_widgets()
        for i in self.tasks_data:
            item = ItemCard()
            nextday = "На потом"
            if i in SCHEDULE[weekday]:
                nextday = "На завтра"
            if today and i in SCHEDULE[old_weekday]:
                nextday = "СДЕЛАТЬ СЕГОДНЯ!!"
            item.set_data(self.tasks_data[i], i, nextday, from_tasks=True)
            self.main_widget.ids.tasks_layout.add_widget(item)
        self.update_db()
        self.refresh_alerts_navdrawer()