From 41c68aef26437e865f356ab13f4715c5da490764 Mon Sep 17 00:00:00 2001 From: Philip Sargent 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)