From 7baf5a152dab7b81098e4d7bc1dbce2f4ddd0055 Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Tue, 12 Sep 2023 18:28:40 +0530 Subject: [PATCH] FileHandler reset on new/open --- filehandler.py | 24 ++++++------------------ window.py | 15 ++++++++++----- 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/filehandler.py b/filehandler.py index edec0bf..dbd4ce1 100644 --- a/filehandler.py +++ b/filehandler.py @@ -18,6 +18,9 @@ class FileHandler(): directory="" def __init__(self, file=""): + self.reset(file) + + def reset(self, file=""): self.file=file self.directory=tempfile.TemporaryDirectory() @@ -58,24 +61,6 @@ class FileHandler(): with ZipFile(self.file, "r", strict_timestamps=False) as source: source.extractall(self.directory.name) - #def hash(self): - # allfiles=[] - # allhash="" - # #with open(os.path.join(self.directory.name, "prescription.json"), "rb") as f: - # # print(sha256(f.read()).hexdigest()) - # for root, dirs, files in os.walk(self.directory.name): - # for file in files: - # allfiles.append(os.path.join(root, file)) - # try: - # allfiles.remove(os.path.join(self.directory.name, "certificate.pem")) - # allfiles.remove(os.path.join(self.directory.name, "signature.p7m")) - # except ValueError as e: - # pass - # for file in allfiles: - # with open(file, "rb") as f: - # allhash=allhash+sha256(f.read()).hexdigest() - # return(allhash) - def sign(self): with open(os.path.join(self.directory.name, "prescription.json"), "r") as file: data=file.read() @@ -95,3 +80,6 @@ class FileHandler(): return Signature.verify(data, certificate=os.path.join(self.directory.name, "certificate.pem"), signature=os.path.join(self.directory.name, "signature.p7m")) except FileNotFoundError as e: print(e) + + def is_signed(self): + return(os.path.exists(os.path.join(self.directory.name, "certificate.pem")) and (os.path.exists(os.path.join(self.directory.name, "signature.p7m")))) diff --git a/window.py b/window.py index 8931aec..0a68b93 100644 --- a/window.py +++ b/window.py @@ -37,6 +37,7 @@ class MainWindow(QMainWindow): def cmd_open(self, file=None): if(self.confirm_close()): try: + self.current_file.reset() if(file): self.current_file.set_file(file) else: @@ -224,7 +225,9 @@ class MainWindow(QMainWindow): def load_interface(self, file="", date=None, id="", name="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional=""): try: - self.statusbar.showMessage(self.current_file.file) + file_msg=self.current_file.file if self.current_file.file else "New file" + sign_msg="(signed)" if self.current_file.is_signed() else "" + self.statusbar.showMessage(file_msg+" "+sign_msg) if date is None: d=QDateTime.currentDateTime() else: @@ -304,6 +307,7 @@ class MainWindow(QMainWindow): print(e) def new_doc(self): + self.current_file.reset() self.prescription.set_data() self.input_attachment.clear() self.load_interface() @@ -393,7 +397,7 @@ class MainWindow(QMainWindow): action_sign.triggered.connect(self.cmd_sign) action_verify=QAction("Verify", self) action_verify.triggered.connect(self.cmd_verify) - action_prescriber=QAction("Prescriber", self) + action_prescriber=QAction("Settings", self) action_prescriber.triggered.connect(self.cmd_prescriber) action_switch=QAction("Switch", self) action_switch.triggered.connect(self.cmd_switch) @@ -411,11 +415,12 @@ class MainWindow(QMainWindow): menu_file.addAction(action_quit) menu_prepare=menubar.addMenu("Prepare") menu_prepare.addAction(action_render) + menu_prepare.addAction(action_refresh) menu_prepare.addAction(action_sign) menu_prepare.addAction(action_verify) - menu_prepare.addAction(action_refresh) - menu_prepare.addAction(action_prescriber) - menu_prepare.addAction(action_switch) + menu_prescriber=menubar.addMenu("Prescriber") + menu_prescriber.addAction(action_prescriber) + menu_prescriber.addAction(action_switch) menu_help=menubar.addMenu("Help") menu_help.addAction(action_about) menu_help.addAction(action_help) -- 2.39.2