Feat: add delete edition dialog with fuzzy search
This commit is contained in:
@@ -5,18 +5,16 @@ import sys
|
||||
import tempfile
|
||||
import time
|
||||
import webbrowser
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Any, List, Optional, Tuple, Union
|
||||
|
||||
import loguru
|
||||
from natsort import natsorted
|
||||
from PySide6 import QtCore, QtGui, QtWidgets
|
||||
from PySide6.QtCore import QThread
|
||||
from PySide6.QtGui import QRegularExpressionValidator
|
||||
from PySide6.QtMultimedia import QAudioOutput, QMediaPlayer
|
||||
|
||||
from src import LOG_DIR, Icon
|
||||
from src import Icon
|
||||
from src.backend import (
|
||||
AvailChecker,
|
||||
BookGrabber,
|
||||
@@ -39,11 +37,13 @@ from src.logic import (
|
||||
pdf_to_semap,
|
||||
word_to_semap,
|
||||
)
|
||||
from src.shared.logging import log
|
||||
from src.ui import Ui_Semesterapparat
|
||||
from src.ui.dialogs import (
|
||||
About,
|
||||
ApparatExtendDialog,
|
||||
BookDataUI,
|
||||
DeleteDialog,
|
||||
DocumentPrintDialog,
|
||||
LoginDialog,
|
||||
Mail_Dialog,
|
||||
@@ -69,16 +69,6 @@ from src.ui.widgets import (
|
||||
UserCreate,
|
||||
)
|
||||
|
||||
log = loguru.logger
|
||||
log.remove()
|
||||
log.add(sys.stdout, level="INFO")
|
||||
log.add(f"{LOG_DIR}/application.log", rotation="3 MB", retention="10 days")
|
||||
|
||||
log.add(
|
||||
f"{LOG_DIR}/{datetime.now().strftime('%Y-%m-%d')}.log",
|
||||
rotation="1 day",
|
||||
retention="1 month",
|
||||
)
|
||||
log.success("UI started")
|
||||
valid_input = (0, 0, 0, 0, 0, 0)
|
||||
|
||||
@@ -92,7 +82,9 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.setupUi(MainWindow) # type:ignore
|
||||
self.MainWindow = MainWindow # type:ignore
|
||||
# set the window title
|
||||
MainWindow.setWindowTitle("Semesterapparatsmanagement") # type:ignore
|
||||
MainWindow.setWindowTitle(
|
||||
f"Semesterapparatsmanagement Semester: {Semester().value}"
|
||||
) # type:ignore
|
||||
MainWindow.setWindowIcon(Icon("logo").icon) # type:ignore
|
||||
|
||||
self.db = Database()
|
||||
@@ -135,6 +127,8 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
Icon("offAction", self.actionBeenden)
|
||||
self.actionBeenden.triggered.connect(self.quit) # type:ignore
|
||||
self.actionAbout.triggered.connect(self.open_about) # type:ignore
|
||||
self.actionMedien_loeschen.triggered.connect(self.open_delete_dialog)
|
||||
self.actionMedien_loeschen.setIcon(Icon("trash").icon)
|
||||
|
||||
# set validators
|
||||
self.sem_sommer.clicked.connect(lambda: self.toggleButton(self.sem_winter)) # type:ignore
|
||||
@@ -191,11 +185,11 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.app_fach.currentTextChanged.connect(self.validate_app_fach) # type:ignore
|
||||
self.sem_year.textChanged.connect(self.validate_semester) # type:ignore
|
||||
self.check_eternal_app.stateChanged.connect(self.validate_semester) # type:ignore
|
||||
self.chkbx_show_del_media.stateChanged.connect(self.update_app_media_list) # type:ignore
|
||||
# self.chkbx_show_del_media.stateChanged.connect(self.update_app_media_list) # type:ignore
|
||||
self.progress_label.setText("Bitte warten...")
|
||||
|
||||
# Set visibility/enabled state of certain entries
|
||||
self.chkbx_show_del_media.setEnabled(False)
|
||||
# self.chkbx_show_del_media.setEnabled(False)
|
||||
self.label_info.hide()
|
||||
self.app_group_box.setEnabled(False)
|
||||
self.line_2.hide()
|
||||
@@ -207,7 +201,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.progressBar.hide()
|
||||
self.progressBar.setMinimum(0)
|
||||
self.avail_status.hide()
|
||||
self.chkbx_show_del_media.hide()
|
||||
# self.chkbx_show_del_media.hide()
|
||||
self.chkbx_show_only_wit_neweditions.hide()
|
||||
self.automation_add_selected_books.hide()
|
||||
# self.btn_del_select_apparats.setEnabled(False)
|
||||
@@ -288,6 +282,12 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.document_list.installEventFilter(self)
|
||||
self.document_list.viewport().installEventFilter(self)
|
||||
|
||||
def open_delete_dialog(self):
|
||||
# this will open a dialog to select and delete multiple entries. by default, all books will be loaded, and a search bar can be used to fuzzy search the books and select books. on a button press, the selected books will be deleted from the apparat(s) they are part in
|
||||
# raise NotImplementedError("This feature is not yet implemented.")
|
||||
dialog = DeleteDialog()
|
||||
dialog.exec()
|
||||
|
||||
def eventFilter(self, obj, event):
|
||||
# Only handle events for document_list and its viewport
|
||||
if obj in (self.document_list, self.document_list.viewport()):
|
||||
@@ -564,7 +564,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.update_app_media_list()
|
||||
self.cancel_active_selection.click()
|
||||
self.check_send_mail.show()
|
||||
self.chkbx_show_del_media.show()
|
||||
# self.chkbx_show_del_media.show()
|
||||
self.cancel_active_selection.setEnabled(False)
|
||||
self.add_medium.setEnabled(False)
|
||||
# update apparat table
|
||||
@@ -731,12 +731,12 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.sem_winter.setEnabled(False)
|
||||
self.sem_year.setEnabled(False)
|
||||
self.document_list.setRowCount(0)
|
||||
self.chkbx_show_del_media.setEnabled(True)
|
||||
# self.chkbx_show_del_media.setEnabled(True)
|
||||
appdata = self.db.getApparatData(appnr, appname)
|
||||
self.populate_frame(appdata)
|
||||
self.btn_apparat_save.hide()
|
||||
self.btn_reserve.show()
|
||||
self.chkbx_show_del_media.show()
|
||||
# self.chkbx_show_del_media.show()
|
||||
|
||||
self.drpdwn_app_nr.setDisabled(True)
|
||||
self.update_app_media_list()
|
||||
@@ -773,7 +773,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.sem_year.setEnabled(True)
|
||||
self.sem_sommer.setEnabled(True)
|
||||
self.sem_winter.setEnabled(True)
|
||||
self.chkbx_show_del_media.setEnabled(True)
|
||||
# self.chkbx_show_del_media.setEnabled(True)
|
||||
self.drpdwn_app_nr.setEnabled(True)
|
||||
self.app_fach.setEnabled(True)
|
||||
self.check_send_mail.show()
|
||||
@@ -919,7 +919,7 @@ class Ui(QtWidgets.QMainWindow, Ui_Semesterapparat):
|
||||
self.document_list.setRowCount(0)
|
||||
self.app_group_box.setEnabled(False)
|
||||
self.app_fach.setCurrentText("")
|
||||
self.chkbx_show_del_media.hide()
|
||||
# self.chkbx_show_del_media.hide()
|
||||
self.check_send_mail.hide()
|
||||
self.btn_reserve.hide()
|
||||
self.check_eternal_app.setEnabled(False)
|
||||
|
||||
Reference in New Issue
Block a user