from PyQt6.QtWidgets import QWidget, QMainWindow, QVBoxLayout, QHBoxLayout, QPushButton, QComboBox, QTextEdit, QTableView, QMessageBox
from PyQt6.QtGui import QIcon, QStandardItemModel, QStandardItem
+from PyQt6.QtCore import pyqtSignal
from config import config
import logging, os, csv
class EditPreset(QMainWindow):
+ presetEdited=pyqtSignal()
editors=[]
model=QStandardItemModel()
if row[0].strip()!="" or row[1].strip()!="":
writer.writerow(row)
self.load(file)
- QMessageBox.information(self,"File saved", "Changes saved. Please restart the program.")
+ self.presetEdited.emit()
+ QMessageBox.information(self,"File saved", "Edited data has been saved.")
except Exception as e:
logging.exception(e)
def load(self, skip_first=True, text_as_key=False):
try:
buf={}
- for file in glob(os.path.join(config["preset_directory"], self.target+"*"+".csv")):
- with open(file, "r") as f:
- reader=csv.reader(f, delimiter=config["preset_delimiter"])
- if skip_first:
- next(reader)
- for row in reader:
- try:
- self.data[row[0]]=row[1]
- if text_as_key:
- buf[row[1].strip()]=row[1]
- except IndexError as e:
- logging.warning(e)
+ filelist=glob(os.path.join(config["preset_directory"], self.target+"*"+".csv"))
+ filelist.append(filelist.pop(filelist.index(os.path.join(config["preset_directory"], self.target+".csv"))))
+ for file in filelist:
+ if(file!=os.path.join(config["preset_directory"], self.target+".csv")):
+ with open(file, "r") as f:
+ reader=csv.reader(f, delimiter=config["preset_delimiter"])
+ if skip_first:
+ next(reader)
+ for row in reader:
+ try:
+ self.data[row[0]]=row[1]
+ if text_as_key:
+ buf[row[1].strip()]=row[1]
+ except IndexError as e:
+ logging.warning(e)
self.data = buf | self.data
+ self.data=dict(sorted(self.data.items()))
except FileNotFoundError as e:
logging.warning(e)
except IndexError as e:
self.input_age.setText("")
self.input_age.setEnabled(False)
+ def load_presets(self):
+ self.preset_note=Preset("note")
+ self.preset_report=Preset("report")
+ self.preset_advice=Preset("advice")
+ self.preset_investigation=Preset("investigation")
+ self.preset_medication=Preset("medication", text_as_key=True)
+ self.preset_additional=Preset("additional")
+ self.preset_certificate=Preset("certificate")
+
+ def reload_presets(self):
+ self.load_presets()
+ self.input_note_preset.addItems(self.preset_note.data.keys())
+ self.input_report_preset.addItems(self.preset_note.data.keys())
+ self.input_advice_preset.addItems(self.preset_note.data.keys())
+ self.input_investigation_preset.addItems(self.preset_note.data.keys())
+ self.input_medication_preset.addItems(self.preset_note.data.keys())
+ self.input_additional_preset.addItems(self.preset_note.data.keys())
+ self.input_certificate_preset.addItems(self.preset_note.data.keys())
+
def confirm_close(self):
self.update_instance()
flag=(self.save_state==md5(self.prescription.get_json().encode()).hexdigest() or QMessageBox.StandardButton.Yes==QMessageBox.question(self,"Confirm action", "Unsaved changes may be lost. Continue?"))
icon_refresh=QIcon(os.path.join(config["resource"], "icon_refresh.svg"))
icon_view=QIcon(os.path.join(config["resource"], "icon_view.svg"))
- self.preset_note=Preset("note")
- self.preset_report=Preset("report")
- self.preset_advice=Preset("advice")
- self.preset_investigation=Preset("investigation")
- self.preset_medication=Preset("medication", text_as_key=True)
- self.preset_additional=Preset("additional")
- self.preset_certificate=Preset("certificate")
+ self.load_presets()
action_new=QAction("New File", self)
action_new.setShortcut("Ctrl+N")
self.viewbox=ViewBox()
self.index=Index()
self.edit_preset=EditPreset()
+ self.edit_preset.presetEdited.connect(self.reload_presets)
self.installer=Installer()
self.index.signal_open.connect(self.cmd_open)
self.index.signal_copy.connect(self.cmd_copy)