documentation, settings change

This commit is contained in:
WorldTeacher
2024-10-07 08:43:56 +02:00
parent b568787609
commit 26ecf20aad
2 changed files with 21 additions and 12 deletions

View File

@@ -2,6 +2,7 @@ from .sources.Ui_dialog_settings import Ui_Dialog
from PyQt6 import QtWidgets, QtCore from PyQt6 import QtWidgets, QtCore
from src.utils import Icon from src.utils import Icon
from src import config from src import config
from src.utils import debugMessage as dbg
from omegaconf import OmegaConf from omegaconf import OmegaConf
import os import os
@@ -15,6 +16,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
self.originalSettings = config.to_Omegaconf() self.originalSettings = config.to_Omegaconf()
self.changedSettings = config.to_Omegaconf() self.changedSettings = config.to_Omegaconf()
self.shortcuts = config.shortcuts self.shortcuts = config.shortcuts
self.shortcuts = self.sortShortcuts(self.shortcuts)
self.settingschanged = False self.settingschanged = False
self.restart_required = False self.restart_required = False
@@ -92,8 +94,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
) )
self.settingschanged = True self.settingschanged = True
def selectDatabasePath(self): def selectDatabasePath(self):
databasePath = QtWidgets.QFileDialog.getExistingDirectory( databasePath = QtWidgets.QFileDialog.getExistingDirectory(
self, "Select Database Path", self.originalSettings.database.path self, "Select Database Path", self.originalSettings.database.path
@@ -108,7 +108,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
self.settingschanged = True self.settingschanged = True
self.restart_required = True self.restart_required = True
def selectDatabaseName(self): 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 # 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( databaseName = QtWidgets.QFileDialog.getOpenFileName(
@@ -142,6 +141,13 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
) )
return shortcuts 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): def saveSettings(self):
# save settings to config file # save settings to config file
institution_name = self.institution_name.text() institution_name = self.institution_name.text()
@@ -162,8 +168,6 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
if database_path != self.originalSettings.database.path : if database_path != self.originalSettings.database.path :
os.makedirs(database_path, exist_ok=True) os.makedirs(database_path, exist_ok=True)
self.restart_required = True self.restart_required = True
if shortcuts != self.originalSettings.shortcuts:
self.restart_required = True
@@ -182,17 +186,21 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
changed = self.changedSettings changed = self.changedSettings
original = self.originalSettings original = self.originalSettings
if changed == original: if changed == original:
print("No changes")
self.settingschanged = False self.settingschanged = False
self.restart_required = False self.restart_required = False
dbg("Settings not changed")
else: else:
print("Changes detected")
self.settingschanged = True 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 self.restart_required = True
dbg(f"Settings changed, restart required: {self.restart_required}",database=database,shortcuts=shortcuts)
# save the new settings # save the new settings
if self.settingschanged: if self.settingschanged:
@@ -202,7 +210,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
config.updateValue("database.backupLocation", self.changedSettings.database.backupLocation) config.updateValue("database.backupLocation", self.changedSettings.database.backupLocation)
config.updateValue("database.path", self.changedSettings.database.path) config.updateValue("database.path", self.changedSettings.database.path)
config.updateValue("database.name", self.changedSettings.database.name) 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.report_day", self.changedSettings.report.report_day)
config.updateValue("report.generate_report", self.changedSettings.report.generate_report) config.updateValue("report.generate_report", self.changedSettings.report.generate_report)
config.updateValue("report.path", self.changedSettings.report.path) config.updateValue("report.path", self.changedSettings.report.path)

View File

@@ -1,5 +1,6 @@
from pyramid.config import Configurator from pyramid.config import Configurator
from wsgiref.simple_server import make_server from wsgiref.simple_server import make_server
from src import docport
import os import os
def website(): def website():
config = Configurator() config = Configurator()
@@ -13,7 +14,7 @@ def website():
def launch_documentation(): def launch_documentation():
app = website() app = website()
server = make_server('localhost', 6543, app) 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() server.serve_forever()
if __name__ == '__main__': if __name__ == '__main__':