From 26ecf20aaddc02beadcaf0f78dfd520929ba9fee Mon Sep 17 00:00:00 2001 From: WorldTeacher <41587052+WorldTeacher@users.noreply.github.com> Date: Mon, 7 Oct 2024 08:43:56 +0200 Subject: [PATCH] documentation, settings change --- src/ui/settings.py | 30 +++++++++++++++++++----------- src/utils/documentation.py | 3 ++- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/ui/settings.py b/src/ui/settings.py index 8f74940..8acce08 100644 --- a/src/ui/settings.py +++ b/src/ui/settings.py @@ -2,6 +2,7 @@ from .sources.Ui_dialog_settings import Ui_Dialog from PyQt6 import QtWidgets, QtCore from src.utils import Icon from src import config +from src.utils import debugMessage as dbg from omegaconf import OmegaConf import os @@ -15,6 +16,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): self.originalSettings = config.to_Omegaconf() self.changedSettings = config.to_Omegaconf() self.shortcuts = config.shortcuts + self.shortcuts = self.sortShortcuts(self.shortcuts) self.settingschanged = False self.restart_required = False @@ -92,8 +94,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): ) self.settingschanged = True - - def selectDatabasePath(self): databasePath = QtWidgets.QFileDialog.getExistingDirectory( self, "Select Database Path", self.originalSettings.database.path @@ -108,7 +108,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): self.settingschanged = True self.restart_required = True - def selectDatabaseName(self): # filepicker with filter to select only .db files if a file is selected, set name to the lineedit and set database_path databaseName = QtWidgets.QFileDialog.getOpenFileName( @@ -141,6 +140,13 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): } ) return shortcuts + + def sortShortcuts(self, shortcuts): + short = [] + for shortcut in shortcuts: + short.append(shortcut) + short.sort(key=lambda x: x["name"]) + return short def saveSettings(self): # save settings to config file @@ -162,8 +168,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): if database_path != self.originalSettings.database.path : os.makedirs(database_path, exist_ok=True) self.restart_required = True - if shortcuts != self.originalSettings.shortcuts: - self.restart_required = True @@ -182,18 +186,22 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): changed = self.changedSettings original = self.originalSettings + + + if changed == original: - print("No changes") self.settingschanged = False self.restart_required = False + dbg("Settings not changed") else: - print("Changes detected") self.settingschanged = True - if original.database.path != changed.database.path or original.shortcuts != changed.shortcuts: + #compare if database or shortcuts were changed + database = original.database == changed.database + shortcuts = self.shortcuts == self.sortShortcuts(changed.shortcuts) + if not database or not shortcuts: self.restart_required = True + dbg(f"Settings changed, restart required: {self.restart_required}",database=database,shortcuts=shortcuts) - - # save the new settings if self.settingschanged: # save the settings @@ -202,7 +210,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog): config.updateValue("database.backupLocation", self.changedSettings.database.backupLocation) config.updateValue("database.path", self.changedSettings.database.path) config.updateValue("database.name", self.changedSettings.database.name) - config.updateValue("delete_inactive_user_duration", self.changedSettings.delete_inactive_user_duration) + config.updateValue("inactive_user_deletion", self.changedSettings.inactive_user_deletion) config.updateValue("report.report_day", self.changedSettings.report.report_day) config.updateValue("report.generate_report", self.changedSettings.report.generate_report) config.updateValue("report.path", self.changedSettings.report.path) diff --git a/src/utils/documentation.py b/src/utils/documentation.py index 0b5bf8e..f4a0cc8 100644 --- a/src/utils/documentation.py +++ b/src/utils/documentation.py @@ -1,5 +1,6 @@ from pyramid.config import Configurator from wsgiref.simple_server import make_server +from src import docport import os def website(): config = Configurator() @@ -13,7 +14,7 @@ def website(): def launch_documentation(): app = website() server = make_server('localhost', 6543, app) - print("Serving MkDocs documentation on http://0.0.0.0:6543") + print("Serving MkDocs documentation on http://0.0.0.0:{}".format(docport)) server.serve_forever() if __name__ == '__main__':