Изменения: исправлена проблема с зависанием и необходимостью принудительного завершения работы программы, некоторый функционал внесён в разработку с сообщением 'функционал недоступен', исправлена ошибка бургер-меню (теперь нажатие на определённую кнопку вызывает определённую функцию), функция feature_in_development вынесена в utils.py.
This commit is contained in:
parent
e01f43dc35
commit
9b9b459d8f
26 changed files with 1054 additions and 113 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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()
|
||||
|
|
@ -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("Нет активной сессии для закрытия.")
|
||||
|
|
|
|||
|
|
@ -82,4 +82,3 @@ class Notifications(Base):
|
|||
|
||||
# Связь с таблицей Users
|
||||
user = relationship("Users", back_populates="notifications")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue