]> Softwares of Agnibho - medscript.git/commitdiff
Preserve format while saving config
authorAgnibho Mondal <mondal@agnibho.com>
Sat, 11 Nov 2023 15:21:35 +0000 (20:51 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Sat, 11 Nov 2023 15:21:35 +0000 (20:51 +0530)
config.py
setting.py

index 6a5c616ef3af71f33b6841e0270394b98f291dc3..16cbcc87766b453524bcbdfe4242b067c9ca41f0 100644 (file)
--- a/config.py
+++ b/config.py
@@ -5,7 +5,7 @@
 # MedScript is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 # You should have received a copy of the GNU General Public License along with MedScript. If not, see <https://www.gnu.org/licenses/>.
 
-import logging, argparse, json, os, sys, shutil
+import logging, argparse, json, os, sys, shutil, copy
 
 default_config_file=os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "data", "config.json"))
 
@@ -31,7 +31,7 @@ default = {
         "prescriber_directory": "prescriber",
         "prescriber": "prescriber",
         "template_directory": "template",
-        "template": "default_prescription",
+        "template": "default",
         "preset_directory": "preset",
         "form_directory": "form",
         "enable_form": False,
@@ -60,6 +60,7 @@ except Exception as e:
     logging.exception(e)
     config=default
 
+config_orig=copy.deepcopy(config)
 config["filename"]=args.filename
 config["data_directory"]=os.path.abspath(os.path.join(real_dir, os.path.expanduser(config["data_directory"])))
 config["document_directory"]=os.path.join(config["data_directory"], config["document_directory"])
index 9855acdcf32cb019e2002e77b7887da7a93eb391..d440e4eabf6fcdfa5accaa5c938a3216add08b23 100644 (file)
@@ -11,7 +11,7 @@ from PyQt6.QtCore import Qt, pyqtSignal
 from glob import glob
 import logging, os, json
 from prescription import Prescriber
-from config import config, config_file
+from config import config, config_orig, config_file
 
 class EditConfiguration(QDialog):
 
@@ -84,10 +84,14 @@ class EditConfiguration(QDialog):
 
         try:
             with open(config_file) as f:
-                self.config=json.loads(f.read()) | config
+                read=json.loads(f.read())
+                self.config=config_orig | read
+        except FileNotFoundError as e:
+            logging.critical(e)
+            self.config=config_orig
         except Exception as e:
             logging.exception(e)
-            self.config=config
+            self.config=config_orig
 
         self.setWindowTitle("Configuration Editor")