From 41c68aef26437e865f356ab13f4715c5da490764 Mon Sep 17 00:00:00 2001
From: Philip Sargent <philip.sargent@klebos.com>
Date: Tue, 16 Aug 2022 20:02:28 +0300
Subject: [PATCH] detecting empty wallets where we only have JSON and no files

---
 core/views/survex.py  |  7 ++++++-
 core/views/uploads.py |  8 ++++++--
 parsers/scans.py      | 20 +++++++++++++++++---
 3 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/core/views/survex.py b/core/views/survex.py
index c07ce2d..610ee47 100644
--- a/core/views/survex.py
+++ b/core/views/survex.py
@@ -3,6 +3,7 @@ import os
 import datetime
 import difflib
 from pathlib import Path
+import socket
 
 from django import forms
 from django.http import HttpResponseRedirect, HttpResponse, Http404
@@ -165,7 +166,11 @@ class SvxForm(forms.Form):
         res = fout.write("\n")
         fout.close()
         
-        only_commit(fname, f"Online survex edit: {self.data['filename']}.svx")
+        if socket.gethostname() == "expo":
+            comment = f"Online survex edit: {self.data['filename']}.svx"
+        else:
+            comment = f"Online survex edit: {self.data['filename']}.svx on dev machine '{socket.gethostname()}' " 
+        only_commit(fname, comment)
         
         return "SAVED and committed to git"
 
diff --git a/core/views/uploads.py b/core/views/uploads.py
index 3a7e67b..490b432 100644
--- a/core/views/uploads.py
+++ b/core/views/uploads.py
@@ -1,4 +1,4 @@
-import re, os
+import re, os, socket
 import subprocess
 import json
 import settings
@@ -270,7 +270,10 @@ def scanupload(request, path=None):
             print(message)
             return render(request,'errors/generic.html', {'message': message})
         else:
-            dr_commit = subprocess.run([git, "commit", "-m", f'JSON update for wallet {wallet}'], cwd=destfolder, capture_output=True, text=True)
+            if socket.gethostname() != "expo":
+                comment = f"on dev machine '{socket.gethostname()}' " 
+        
+            dr_commit = subprocess.run([git, "commit", "-m", f'JSON update for wallet {wallet} {comment}'], cwd=destfolder, capture_output=True, text=True)
             # This produces return code = 1 if it commits OK
             if dr_commit.returncode != 0:
                 msgdata = 'Ask a nerd to fix this.\n\n' + dr_commit.stderr + '\n\n' + dr_commit.stdout  + '\n\nreturn code: ' + str(dr_commit.returncode)
@@ -441,6 +444,7 @@ def scanupload(request, path=None):
     chkpland = ""
     svxfiles = []
     checked = {}
+    context = {}
     if waldata:
         if not waldata["people"]:
             waldata["people"]=["NOBODY"]
diff --git a/parsers/scans.py b/parsers/scans.py
index 10c659f..b18dd64 100644
--- a/parsers/scans.py
+++ b/parsers/scans.py
@@ -110,11 +110,25 @@ def load_all_scans():
                     CheckEmptyPeople(wallet)
                     wallet.save()
                     LoadListScansFile(wallet)
-
- 
+             
+  
         else:
             # but We should load all the scans, even for nonstandard names. 
             print(f'\n - IGNORE {walletname} - {fpath}')
-        
+ 
+    # but we also need to check if JSON exists, even if there are no uploaded scan files
+    contents_path = Path(settings.DRAWINGS_DATA, "walletjson") 
+    for yeardir in contents_path.iterdir(): 
+        if yeardir.is_dir():
+            for walletpath in yeardir.iterdir(): 
+                if Path(walletpath, contentsjson).is_file():
+                    walletname = walletpath.name
+                    wallet, created = Wallet.objects.update_or_create(walletname=walletname)
+                    if created:
+                        print(f"\n{walletname} created: only JSON, no actual uploaded scan files.", end=' ')
+                        CheckEmptyDate(wallet)
+                        CheckEmptyPeople(wallet)
+                        wallet.save()
+ 
 
     print("", flush=True)