]> Softwares of Agnibho - medscript.git/commitdiff
FileHandler reset on new/open
authorAgnibho Mondal <mondal@agnibho.com>
Tue, 12 Sep 2023 12:58:40 +0000 (18:28 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Tue, 12 Sep 2023 12:58:40 +0000 (18:28 +0530)
filehandler.py
window.py

index edec0bfafb947538dc7a55a0223cce57e79db291..dbd4ce164138cd610d02c4209c5ec7d513573949 100644 (file)
@@ -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"))))
index 8931aeccdab341b616a0e7cf821544dca5ff7032..0a68b936f331f88379a45c259eb69d042c8fcdf6 100644 (file)
--- 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)