From f6f9f89354c956fad5f5ce8545e5c848b1fbc6bd Mon Sep 17 00:00:00 2001 From: WorldTeacher Date: Wed, 26 Mar 2025 10:21:11 +0100 Subject: [PATCH] refactor: clean up unused imports and improve code organization --- src/backend/database.py | 12 ++++--- src/logic/pdfparser.py | 2 -- src/logic/threads.py | 6 ---- src/logic/threads_copy.py | 4 --- src/transformers/transformers.py | 7 ++-- src/ui/Ui_switchtest.py | 6 ++-- src/ui/dialogs/about.py | 1 - src/ui/dialogs/app_ext.py | 1 - src/ui/dialogs/bookdata.py | 3 +- .../dialogs/dialog_sources/Ui_app_status.py | 2 +- .../dialog_sources/Ui_confirm_extend.py | 2 +- .../dialog_sources/Ui_elsa_add_table_entry.py | 2 +- .../Ui_newMailTemplateDesigner.py | 2 +- src/ui/dialogs/dialog_sources/Ui_reminder.py | 2 +- src/ui/dialogs/dialog_sources/settings_ui.py | 2 +- src/ui/dialogs/elsa_gen_confirm.py | 2 +- src/ui/dialogs/fileparser.py | 1 - src/ui/dialogs/login.py | 2 +- src/ui/dialogs/new_subject_ui.py | 2 +- src/ui/dialogs/parsed_titles.py | 2 +- src/ui/dialogs/popup_confirm.py | 2 +- src/ui/userInterface.py | 6 ++-- src/ui/widgets/admin_create_user.py | 2 +- src/ui/widgets/admin_edit_prof.py | 3 +- src/ui/widgets/admin_edit_user.py | 3 +- src/ui/widgets/calendar_entry.py | 4 +-- src/ui/widgets/elsa_main.py | 2 +- src/ui/widgets/iconLine.py | 3 +- src/ui/widgets/searchPage.py | 30 +++++++++++++++-- .../widget_sources/Ui_admin_create_user.py | 2 +- .../widget_sources/Ui_admin_edit_prof.py | 2 +- .../widget_sources/Ui_admin_edit_user.py | 2 +- .../widget_sources/Ui_calendar_entry.py | 2 +- .../widget_sources/Ui_elsa_maindialog.py | 2 +- .../widgets/widget_sources/Ui_icon_widget.py | 2 +- .../Ui_search_statistic_page.py | 2 +- src/utils/docs_ui.py | 32 ------------------- src/utils/documentation.py | 15 +++++++++ src/utils/documentationview.py | 6 ++-- src/utils/richtext.py | 7 +--- 40 files changed, 90 insertions(+), 102 deletions(-) create mode 100644 src/utils/documentation.py diff --git a/src/backend/database.py b/src/backend/database.py index 4ae95f4..de43c0c 100644 --- a/src/backend/database.py +++ b/src/backend/database.py @@ -179,7 +179,8 @@ class Database: log_message = f"Querying database with query {logs_query}, args: {logs_args}" # if "INSERT" in query: # log_message = f"Querying database with query {query}" - + if "INTO user" in query: + log_message = f"Querying database with query {query}" logger.debug(log_message) try: cursor.execute(query, args) @@ -793,6 +794,7 @@ class Database: "SELECT appnr FROM semesterapparat WHERE deletion_status=0" ) numbers = [i[0] for i in numbers] + numbers.sort() logger.info(f"Currently used apparat numbers: {numbers}") return numbers @@ -962,6 +964,7 @@ class Database: app_id (Union[str, int]): the id of the apparat semester (str): the semester the apparat should be deleted from """ + logger.info(f"Deleting apparat with id {app_id} in semester {semester}") self.query_db( "UPDATE semesterapparat SET deletion_status=1, deleted_date=? WHERE appnr=?", (semester, app_id), @@ -1064,7 +1067,6 @@ class Database: Returns: list: the result of the query """ - logger.debug(query) logger.debug(f"Query: {query}") conn = self.connect() cursor = conn.cursor() @@ -1086,7 +1088,7 @@ class Database: WHERE deletion_status=0 AND dauer=0 AND ( (erstellsemester!='{kwargs["deletesemester"]}' AND verlängerung_bis IS NULL) OR - (erstellsemester!='{kwargs["deletesemester"]}' AND verlängerung_bis!='{kwargs["deletesemester"]}' AND verlängerung_bis!='{Semester()}') + (erstellsemester!='{kwargs["deletesemester"]}' AND verlängerung_bis!='{kwargs["deletesemester"]}' AND verlängerung_bis!='{Semester().next}') )""" return __query(query) if "dauer" in kwargs.keys(): @@ -1563,11 +1565,13 @@ class Database: apprarat_id (int): Number of the apparat Returns: + int | None: The id of the prof or None if not found """ - query = f"SELECT prof_id from semesterapparat WHERE id = '{apprarat_id}' and deletion_status = 0" + query = f"SELECT prof_id from semesterapparat WHERE appnr = '{apprarat_id}' and deletion_status = 0" data = self.query_db(query) if data: + logger.info("Prof ID: " + str(data[0][0])) return data[0][0] else: return None diff --git a/src/logic/pdfparser.py b/src/logic/pdfparser.py index f4c394e..6be0d3f 100644 --- a/src/logic/pdfparser.py +++ b/src/logic/pdfparser.py @@ -1,6 +1,4 @@ # add depend path to system path -import os -import sys import pandas as pd from pdfquery import PDFQuery diff --git a/src/logic/threads.py b/src/logic/threads.py index 61e9c2f..76d83b7 100644 --- a/src/logic/threads.py +++ b/src/logic/threads.py @@ -1,6 +1,4 @@ import os -import sqlite3 -import time # from icecream import ic from omegaconf import OmegaConf @@ -25,7 +23,6 @@ class BackgroundChecker(QThread): class MockAvailCheck: - def __init__( self, links: list = None, appnumber: int = None, parent=None, books=list[dict] ): @@ -83,7 +80,6 @@ class MockAvailCheck: class Mailer(Ui_eMailPreview): - updateSignal = Signal(int) def __init__(self, data=None, parent=None): @@ -149,7 +145,6 @@ class Mailer(Ui_eMailPreview): def createAndSendMail(self): import smtplib - import ssl from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText @@ -180,7 +175,6 @@ class Mailer(Ui_eMailPreview): class MailThread(QThread): - updateSignal = Signal(int) def __init__(self, data=None, parent=None): diff --git a/src/logic/threads_copy.py b/src/logic/threads_copy.py index 904c430..e1e9452 100644 --- a/src/logic/threads_copy.py +++ b/src/logic/threads_copy.py @@ -1,6 +1,4 @@ -import os import sqlite3 -import threading import time from PyQt6.QtCore import QThread, pyqtSignal @@ -8,7 +6,6 @@ from PyQt6.QtCore import QThread, pyqtSignal from src.backend.database import Database from src.logic.log import MyLogger from src.logic.webrequest import BibTextTransformer, WebRequest -from src.transformers import RDS_AVAIL_DATA # from icecream import ic @@ -213,7 +210,6 @@ class AutoAdder(QThread): class MockAvailCheck: - def __init__( self, links: list = None, appnumber: int = None, parent=None, books=list[dict] ): diff --git a/src/transformers/transformers.py b/src/transformers/transformers.py index ca661bb..5f8aa48 100644 --- a/src/transformers/transformers.py +++ b/src/transformers/transformers.py @@ -4,9 +4,8 @@ import json import re from dataclasses import dataclass from dataclasses import field as dataclass_field -from typing import Any, List, Optional +from typing import Any, List -from pydantic import BaseModel, Field from src.logic.dataclass import BookData @@ -171,13 +170,13 @@ class ARRAYData: ) signature_data = eval(sig_data) return signature_data["signatur"] - except Exception as e: + except Exception: return None def _get_author(data): try: array = data.split("[au_display_short]")[1].split(")\n")[0].strip() - except Exception as e: + except Exception: return "" entries = array.split("\n") authors = [] diff --git a/src/ui/Ui_switchtest.py b/src/ui/Ui_switchtest.py index b2895b4..91b035a 100644 --- a/src/ui/Ui_switchtest.py +++ b/src/ui/Ui_switchtest.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_MainWindow(object): @@ -44,7 +44,9 @@ class Ui_MainWindow(object): def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) - self.select_action_box.setItemText(0, _translate("MainWindow", "Aktion auswählen")) + self.select_action_box.setItemText( + 0, _translate("MainWindow", "Aktion auswählen") + ) self.select_action_box.setItemText(1, _translate("MainWindow", "edit_prof")) self.select_action_box.setItemText(2, _translate("MainWindow", "add_user")) self.select_action_box.setItemText(3, _translate("MainWindow", "edit_user")) diff --git a/src/ui/dialogs/about.py b/src/ui/dialogs/about.py index a06b028..6a6ba29 100644 --- a/src/ui/dialogs/about.py +++ b/src/ui/dialogs/about.py @@ -2,7 +2,6 @@ from .dialog_sources.Ui_about import Ui_about from PyQt6 import QtWidgets from PyQt6.QtCore import PYQT_VERSION_STR from src import Icon, __version__, __author__ -from omegaconf import OmegaConf class About(QtWidgets.QDialog, Ui_about): diff --git a/src/ui/dialogs/app_ext.py b/src/ui/dialogs/app_ext.py index 1c45b8b..9cb0516 100644 --- a/src/ui/dialogs/app_ext.py +++ b/src/ui/dialogs/app_ext.py @@ -1,7 +1,6 @@ from PyQt6 import QtWidgets from .dialog_sources.Ui_apparat_extend import Ui_Dialog from src import Icon -from src.backend import Semester class ApparatExtendDialog(QtWidgets.QDialog, Ui_Dialog): diff --git a/src/ui/dialogs/bookdata.py b/src/ui/dialogs/bookdata.py index d6dd792..60bc5ed 100644 --- a/src/ui/dialogs/bookdata.py +++ b/src/ui/dialogs/bookdata.py @@ -1,9 +1,8 @@ -from PyQt6 import QtCore, QtWidgets +from PyQt6 import QtWidgets from src.logic.dataclass import BookData from .dialog_sources.Ui_edit_bookdata import Ui_Dialog -from src import Icon class BookDataUI(QtWidgets.QDialog, Ui_Dialog): diff --git a/src/ui/dialogs/dialog_sources/Ui_app_status.py b/src/ui/dialogs/dialog_sources/Ui_app_status.py index 8fa232e..a927c1b 100644 --- a/src/ui/dialogs/dialog_sources/Ui_app_status.py +++ b/src/ui/dialogs/dialog_sources/Ui_app_status.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore class Ui_Form(object): diff --git a/src/ui/dialogs/dialog_sources/Ui_confirm_extend.py b/src/ui/dialogs/dialog_sources/Ui_confirm_extend.py index 210bdbb..13f44e4 100644 --- a/src/ui/dialogs/dialog_sources/Ui_confirm_extend.py +++ b/src/ui/dialogs/dialog_sources/Ui_confirm_extend.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_extend_confirm(object): diff --git a/src/ui/dialogs/dialog_sources/Ui_elsa_add_table_entry.py b/src/ui/dialogs/dialog_sources/Ui_elsa_add_table_entry.py index 3f9754f..a608e77 100644 --- a/src/ui/dialogs/dialog_sources/Ui_elsa_add_table_entry.py +++ b/src/ui/dialogs/dialog_sources/Ui_elsa_add_table_entry.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/dialogs/dialog_sources/Ui_newMailTemplateDesigner.py b/src/ui/dialogs/dialog_sources/Ui_newMailTemplateDesigner.py index b36190c..df436d4 100644 --- a/src/ui/dialogs/dialog_sources/Ui_newMailTemplateDesigner.py +++ b/src/ui/dialogs/dialog_sources/Ui_newMailTemplateDesigner.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/dialogs/dialog_sources/Ui_reminder.py b/src/ui/dialogs/dialog_sources/Ui_reminder.py index d17f201..45cc18c 100644 --- a/src/ui/dialogs/dialog_sources/Ui_reminder.py +++ b/src/ui/dialogs/dialog_sources/Ui_reminder.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Erinnerung(object): diff --git a/src/ui/dialogs/dialog_sources/settings_ui.py b/src/ui/dialogs/dialog_sources/settings_ui.py index c4fc6ba..c2c3e1d 100644 --- a/src/ui/dialogs/dialog_sources/settings_ui.py +++ b/src/ui/dialogs/dialog_sources/settings_ui.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/dialogs/elsa_gen_confirm.py b/src/ui/dialogs/elsa_gen_confirm.py index 1cfbd0c..b56a20a 100644 --- a/src/ui/dialogs/elsa_gen_confirm.py +++ b/src/ui/dialogs/elsa_gen_confirm.py @@ -1,5 +1,5 @@ from .dialog_sources.Ui_elsa_generator_confirm import Ui_Dialog -from PyQt6 import QtCore, QtWidgets, QtGui +from PyQt6 import QtWidgets class ElsaGenConfirm(QtWidgets.QDialog, Ui_Dialog): diff --git a/src/ui/dialogs/fileparser.py b/src/ui/dialogs/fileparser.py index 68b12f7..c049429 100644 --- a/src/ui/dialogs/fileparser.py +++ b/src/ui/dialogs/fileparser.py @@ -1,5 +1,4 @@ from PyQt6 import QtWidgets -from PyQt6.QtCore import Qt from src.logic.webrequest import BibTextTransformer, WebRequest diff --git a/src/ui/dialogs/login.py b/src/ui/dialogs/login.py index c589762..74c9708 100644 --- a/src/ui/dialogs/login.py +++ b/src/ui/dialogs/login.py @@ -1,6 +1,6 @@ import hashlib -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets from src import Icon, logger from src.backend.admin_console import AdminCommands diff --git a/src/ui/dialogs/new_subject_ui.py b/src/ui/dialogs/new_subject_ui.py index 50c94df..8b6a757 100644 --- a/src/ui/dialogs/new_subject_ui.py +++ b/src/ui/dialogs/new_subject_ui.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/dialogs/parsed_titles.py b/src/ui/dialogs/parsed_titles.py index c3abe8f..ece3c57 100644 --- a/src/ui/dialogs/parsed_titles.py +++ b/src/ui/dialogs/parsed_titles.py @@ -1,4 +1,4 @@ -from PyQt6 import QtCore, QtWidgets +from PyQt6 import QtWidgets from src.backend import AutoAdder diff --git a/src/ui/dialogs/popup_confirm.py b/src/ui/dialogs/popup_confirm.py index 46125f8..6f47a8f 100644 --- a/src/ui/dialogs/popup_confirm.py +++ b/src/ui/dialogs/popup_confirm.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtWidgets from src import Icon diff --git a/src/ui/userInterface.py b/src/ui/userInterface.py index 26cfc0f..9cbddfc 100644 --- a/src/ui/userInterface.py +++ b/src/ui/userInterface.py @@ -906,7 +906,8 @@ class Ui(Ui_Semesterapparat): ).setToolTip("Das Medium wurde nicht im Apparat gefunden") # make table link clickable - self.tableWidget_apparat_media.itemClicked.connect(self.open_link) + #self.tableWidget_apparat_media.itemClicked.connect(self.open_link) + # self.tableWidget_apparat_media. def open_link(self, item): def __openLink(link): @@ -924,7 +925,8 @@ class Ui(Ui_Semesterapparat): if columnname == "Link": link = __openLink(item.text()) if link is not None: - os.system("start " + link) + webbrowser.open(link) + #os.system("start " + link) return else: pass diff --git a/src/ui/widgets/admin_create_user.py b/src/ui/widgets/admin_create_user.py index f140b84..1f695a9 100644 --- a/src/ui/widgets/admin_create_user.py +++ b/src/ui/widgets/admin_create_user.py @@ -1,4 +1,4 @@ -from PyQt6 import QtWidgets, QtCore, QtGui +from PyQt6 import QtWidgets from PyQt6.QtCore import pyqtSignal from .widget_sources.Ui_admin_create_user import Ui_Dialog from src.backend import AdminCommands, Database diff --git a/src/ui/widgets/admin_edit_prof.py b/src/ui/widgets/admin_edit_prof.py index 747a516..e3a0870 100644 --- a/src/ui/widgets/admin_edit_prof.py +++ b/src/ui/widgets/admin_edit_prof.py @@ -1,6 +1,5 @@ from .widget_sources.Ui_admin_edit_prof import Ui_Dialog # -from PyQt6 import QtWidgets, QtCore -from PyQt6.QtCore import pyqtSignal +from PyQt6 import QtWidgets from src import logger from src.logic import Prof from src.backend import Database diff --git a/src/ui/widgets/admin_edit_user.py b/src/ui/widgets/admin_edit_user.py index c082f44..2cbd2c5 100644 --- a/src/ui/widgets/admin_edit_user.py +++ b/src/ui/widgets/admin_edit_user.py @@ -1,6 +1,5 @@ from .widget_sources.Ui_admin_edit_user import Ui_Dialog -from PyQt6 import QtWidgets, QtCore -from PyQt6.QtCore import pyqtSignal +from PyQt6 import QtWidgets from src.backend import Database from src.backend import AdminCommands diff --git a/src/ui/widgets/calendar_entry.py b/src/ui/widgets/calendar_entry.py index de4f914..03966ee 100644 --- a/src/ui/widgets/calendar_entry.py +++ b/src/ui/widgets/calendar_entry.py @@ -1,6 +1,6 @@ from .widget_sources.Ui_calendar_entry import Ui_Dialog -from PyQt6 import QtWidgets, QtCore -from PyQt6.QtCore import pyqtSignal, QDate +from PyQt6 import QtWidgets +from PyQt6.QtCore import pyqtSignal from src.backend.database import Database from src import Icon diff --git a/src/ui/widgets/elsa_main.py b/src/ui/widgets/elsa_main.py index 95c9d93..25fe659 100644 --- a/src/ui/widgets/elsa_main.py +++ b/src/ui/widgets/elsa_main.py @@ -134,7 +134,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog): return profs def elsa_context_menu(self, position): - menu = QtWidgets.QMenu() + QtWidgets.QMenu() # TODO: add functions pass diff --git a/src/ui/widgets/iconLine.py b/src/ui/widgets/iconLine.py index ea4be47..5beb729 100644 --- a/src/ui/widgets/iconLine.py +++ b/src/ui/widgets/iconLine.py @@ -1,6 +1,5 @@ from .widget_sources.Ui_icon_widget import Ui_Dialog -from PyQt6 import QtWidgets, QtCore, QtGui -from PyQt6.QtCore import Qt +from PyQt6 import QtWidgets from src import logger diff --git a/src/ui/widgets/searchPage.py b/src/ui/widgets/searchPage.py index 8f549bb..d622154 100644 --- a/src/ui/widgets/searchPage.py +++ b/src/ui/widgets/searchPage.py @@ -4,7 +4,7 @@ from PyQt6.QtCore import pyqtSignal from src.backend import Database, Semester from src import logger from src.logic import custom_sort, Prof, sort_semesters_list -from src.ui.dialogs import Mail_Dialog, ApparatExtendDialog +from src.ui.dialogs import Mail_Dialog, ApparatExtendDialog, reminder_ui from src.ui.widgets import DataGraph, StatusWidget from natsort import natsorted @@ -19,6 +19,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): apparat_open = pyqtSignal(str) reloadSignal = pyqtSignal() refreshSignal = pyqtSignal() + updateCalendar = pyqtSignal(int, list) def __init__(self): logger.info("SearchStatisticPage started") @@ -46,7 +47,8 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeRowsToContents() self.db = Database() - self.box_appnrs.addItems(str(i) for i in self.db.getUnavailableApparatNumbers()) + self.appnrs = self.db.getUnavailableApparatNumbers() + self.box_appnrs.addItems(str(i) for i in self.appnrs) self.splitter = QtWidgets.QSplitter(QtCore.Qt.Orientation.Horizontal) # insert splitter in apparatResult to allow resizing of the columns self.splitter.addWidget(self.app_results) @@ -54,6 +56,8 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): self.apparatResult.layout().removeWidget(self.stats) self.apparatResult.layout().removeWidget(self.app_results) self.apparatResult.layout().addWidget(self.splitter) + # set tableWidget column 0 to be 50px wide + self.tableWidget.setColumnWidth(0, 50) self.semester = Semester().value self.populate_tab() @@ -83,9 +87,12 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): menu = QtWidgets.QMenu() restore_action = menu.addAction("Wiederherstellen") extend_action = menu.addAction("Verlängern") + remind_action = menu.addAction("Erinnerung") + menu.addAction(restore_action) restore_action.triggered.connect(self.restore_apparat) extend_action.triggered.connect(self.extend_apparat) + remind_action.triggered.connect(self.reminder) menu.exec(self.tableWidget.mapToGlobal(position)) def extend_apparat(self): @@ -101,6 +108,23 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): self.tableWidget.removeRow(self.tableWidget.currentRow()) self.refreshSignal.emit() + def reminder(self): + logger.info("Opening reminder dialog") + reminder = reminder_ui() + reminder.exec() + tableposition = self.tableWidget.currentRow() + appnr = self.tableWidget.item(tableposition, 2).text() + if reminder.result() == QtWidgets.QDialog.DialogCode.Accepted: + data = reminder.return_message() + # #print(data) + self.db.addMessage( + data, + "admin", + appnr, + ) + self.updateCalendar.emit(data) + logger.info("committed message to database") + def tabW2_changed(self): if self.tabWidget_2.currentIndex() == 0: self.stackedWidget_4.setCurrentIndex(0) @@ -228,7 +252,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog): self.box_dauerapp.addItems(["Ja", "Nein", ""]) self.box_dauerapp.setCurrentText("") # add custom vaules - appnrs = self.db.getUnavailableApparatNumbers() + appnrs = self.appnrs apparats = natsorted(appnrs) apparats = [str(apparat) for apparat in apparats] self.box_appnrs.addItems(apparats) diff --git a/src/ui/widgets/widget_sources/Ui_admin_create_user.py b/src/ui/widgets/widget_sources/Ui_admin_create_user.py index df6ac8c..a989524 100644 --- a/src/ui/widgets/widget_sources/Ui_admin_create_user.py +++ b/src/ui/widgets/widget_sources/Ui_admin_create_user.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py b/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py index 4b373a1..63deb93 100644 --- a/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py +++ b/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_admin_edit_user.py b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py index 02144ec..df0f159 100644 --- a/src/ui/widgets/widget_sources/Ui_admin_edit_user.py +++ b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_calendar_entry.py b/src/ui/widgets/widget_sources/Ui_calendar_entry.py index 86f32fb..dda7e06 100644 --- a/src/ui/widgets/widget_sources/Ui_calendar_entry.py +++ b/src/ui/widgets/widget_sources/Ui_calendar_entry.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py index 79ea727..4aa0a24 100644 --- a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py +++ b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_icon_widget.py b/src/ui/widgets/widget_sources/Ui_icon_widget.py index c6b16d5..04c9d61 100644 --- a/src/ui/widgets/widget_sources/Ui_icon_widget.py +++ b/src/ui/widgets/widget_sources/Ui_icon_widget.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/ui/widgets/widget_sources/Ui_search_statistic_page.py b/src/ui/widgets/widget_sources/Ui_search_statistic_page.py index e62e97a..fb5958a 100644 --- a/src/ui/widgets/widget_sources/Ui_search_statistic_page.py +++ b/src/ui/widgets/widget_sources/Ui_search_statistic_page.py @@ -6,7 +6,7 @@ # run again. Do not edit this file unless you know what you are doing. -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtCore, QtWidgets class Ui_Dialog(object): diff --git a/src/utils/docs_ui.py b/src/utils/docs_ui.py index f03de63..a29295c 100644 --- a/src/utils/docs_ui.py +++ b/src/utils/docs_ui.py @@ -10,43 +10,11 @@ from PyQt6.QtCore import ( QCoreApplication, - QDate, - QDateTime, - QLocale, QMetaObject, - QObject, - QPoint, - QRect, - QSize, - Qt, - QTime, - QUrl, -) -from PyQt6.QtGui import ( - QBrush, - QColor, - QConicalGradient, - QCursor, - QFont, - QFontDatabase, - QGradient, - QIcon, - QImage, - QKeySequence, - QLinearGradient, - QPainter, - QPalette, - QPixmap, - QRadialGradient, - QTransform, ) from PyQt6.QtWidgets import ( - QApplication, - QDialog, QGridLayout, - QSizePolicy, QTabWidget, - QWidget, ) diff --git a/src/utils/documentation.py b/src/utils/documentation.py new file mode 100644 index 0000000..2e41721 --- /dev/null +++ b/src/utils/documentation.py @@ -0,0 +1,15 @@ +import os +import sys + + +def run_mkdocs(): + with open(os.devnull, "w") as devnull: + old_stdout = sys.stdout + old_stderr = sys.stderr + sys.stdout = devnull + sys.stderr = devnull + try: + os.system("mkdocs serve -q") + finally: + sys.stdout = old_stdout + sys.stderr = old_stderr diff --git a/src/utils/documentationview.py b/src/utils/documentationview.py index 8f6a87c..2ad2283 100644 --- a/src/utils/documentationview.py +++ b/src/utils/documentationview.py @@ -2,7 +2,6 @@ import os import sys # from PyQt6 import Webview -from PyQt6.QtWebEngineWidgets import QWebEngineView from PyQt6.QtWidgets import QApplication, QMainWindow, QTabWidget documentation_path = "docs" @@ -36,9 +35,8 @@ class DocumentationViewer(QMainWindow): tab_name="Documentation", html_content="

Documentation

Your HTML documentation content goes here.

", ): - documentation_tab = QWebEngineView() - documentation_tab.setHtml(html_content) - self.tabs.addTab(documentation_tab, tab_name) + # open documentation + name = tab_name if __name__ == "__main__": diff --git a/src/utils/richtext.py b/src/utils/richtext.py index ffa1c2d..ccc3a97 100644 --- a/src/utils/richtext.py +++ b/src/utils/richtext.py @@ -1,14 +1,9 @@ from datetime import datetime from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT -from docx.enum.table import WD_ROW_HEIGHT_RULE -from docx.shared import Pt, RGBColor, Cm, Inches +from docx.shared import Pt, RGBColor, Cm from docx.oxml import OxmlElement from docx.oxml.ns import qn -from docx2pdf import convert -import win32print -import win32api -import tempfile import os from os.path import basename