Изменения: исправлена проблема с зависанием и необходимостью принудительного завершения работы программы, некоторый функционал внесён в разработку с сообщением 'функционал недоступен', исправлена ошибка бургер-меню (теперь нажатие на определённую кнопку вызывает определённую функцию), функция feature_in_development вынесена в utils.py.

This commit is contained in:
Xatiko 2024-11-25 19:40:12 +03:00
parent e01f43dc35
commit 9b9b459d8f
26 changed files with 1054 additions and 113 deletions

View file

@ -25,21 +25,4 @@ def check_user(login, password):
print(f"Ошибка при проверке пользователя: {e}")
return False
finally:
session.close()
def log_db_event(event_message, root):
# Логирование события с базы данных
try:
# Пример добавления события в лог
with open('logs/database_logs.txt', 'a') as log_file:
log_file.write(event_message + "\n")
# Уведомление для администратора
notification = Notifications(root)
notification.show_info("Событие", f"Событие успешно записано: {event_message}")
except Exception as e:
# Если ошибка при записи в лог
notification = Notifications(root)
notification.show_error("Ошибка", f"Ошибка при записи в лог: {str(e)}")
session.close()

View file

@ -9,16 +9,42 @@ engine = create_engine(DATABASE_URL, echo=True)
# Создание фабрики сессий
Session = sessionmaker(bind=engine)
session = Session()
def init_db():
"""Инициализация базы данных: создание файла и таблиц."""
if not os.path.exists("database/DogAcademy.db"):
print("База данных не найдена. Создаём новую...")
Base.metadata.create_all(bind=engine)
# Переменная для хранения текущей сессии
current_session = None
def init_db(refresh=False):
"""
Инициализация базы данных: создание файла и таблиц.
Если `refresh` равно True, удаляет и пересоздаёт таблицы.
"""
global current_session
if not os.path.exists("database/DogAcademy.db") or refresh:
if refresh:
print("Обновление базы данных: удаление старых таблиц...")
Base.metadata.drop_all(bind=engine) # Удаляем все таблицы
print("Создание базы данных и таблиц...")
Base.metadata.create_all(bind=engine) # Создаём таблицы заново
else:
print("База данных уже существует.")
print("База данных уже существует. Обновление не требуется.")
# Инициализация сессии при запуске
current_session = get_session()
def get_session():
"""Возвращает сессию для работы с базой данных."""
return Session()
return Session()
def close_sessions():
"""Закрытие всех сессий перед выходом из программы."""
global current_session
if current_session is not None:
print("Закрытие сессии...")
current_session.close() # Закрываем текущую сессию базы данных
current_session = None
else:
print("Нет активной сессии для закрытия.")

View file

@ -82,4 +82,3 @@ class Notifications(Base):
# Связь с таблицей Users
user = relationship("Users", back_populates="notifications")