Files
SemesterapparatsManager/src/ui/widgets/calendar_entry.py

84 lines
2.6 KiB
Python

from PySide6 import QtWidgets
from PySide6.QtCore import Signal
from src import Icon
from src.database import Database
from .widget_sources.calendar_entry_ui import Ui_Dialog
class CalendarEntry(QtWidgets.QDialog, Ui_Dialog):
deleteSignal = Signal(int) # when emit, send the id of the message to be deleted
repaintSignal = Signal(str)
def __init__(self, parent=None, messages=None, date=None):
super().__init__(parent)
self.setupUi(self)
self.messages = messages
self.spin_select_message.setMaximum(len(self.messages))
self.spin_select_message.setMinimum(1)
self.spin_select_message.setValue(1)
self.spin_select_message.setWrapping(True)
self.date = date
self.set_message()
self.spin_select_message.valueChanged.connect(self.set_message)
Icon("close", self.btn_close)
self.btn_delete_message.clicked.connect(self.delete_message)
self.btn_close.clicked.connect(self.close)
def __get_id(self, message):
for i in range(len(self.messages)):
if self.messages[i] == message:
return self.messages[i]["id"]
def __message_index(self, id):
for i in range(len(self.messages)):
if self.messages[i]["id"] == id:
return i
def delete_message(self):
value = self.spin_select_message.value()
# #print(value)
if value > 0:
value = value - 1
message = self.messages[value]
id = self.__get_id(message)
# #print("id", id)
# del self.messages[value - 1]
self.spin_select_message.setMaximum(len(self.messages))
self.message_box.clear()
self.set_message()
Database().deleteMessage(id)
self.messages.pop(self.__message_index(id))
if len(self.messages) == 0:
self.repaintSignal.emit(self.date)
self.close()
else:
#
self.repaintSignal.emit()
self.close()
def set_message(self):
value = self.spin_select_message.value()
if value < 1:
return
message = self.messages[value - 1]
appnr = message["appnr"]
text = message["message"]
if appnr is not None:
self.line_app_info.setText(str(appnr))
else:
self.line_app_info.setText("/")
self.message_box.setText(text)
self.message_box.repaint()
def launch_calendar_entry():
messages = Database().getMessages("2024-06-10")
app = QtWidgets.QApplication([])
dialog = CalendarEntry(messages=messages)
dialog.show()
app.exec()