summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views/wallets_edit.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/core/views/wallets_edit.py b/core/views/wallets_edit.py
index 3bd4b43..f26a26c 100644
--- a/core/views/wallets_edit.py
+++ b/core/views/wallets_edit.py
@@ -33,7 +33,7 @@ from troggle.core.utils import (
from troggle.core.views.auth import login_required_if_public
from troggle.core.views.caves import get_cave_leniently, getCave
from troggle.core.views.scans import caveifywallet, oldwallet
-from troggle.core.views.uploads import FilesForm
+from troggle.core.views.uploads import WalletFilesForm
from troggle.parsers.scans import CONTENTSJSON
"""Main wallet editing form, which includes scan file upload into the wallet
@@ -680,9 +680,11 @@ def walletedit(request, path=None):
fresh_wallet = False
editor = get_cookie(request)
- form = FilesForm()
+ form = WalletFilesForm()
if request.method == "POST":
+ # There are two forms on this page, we don't know which one it is yet.
+ # Actually there are three.. this all needs refactoring to be easier to read and understand.
# print(f'--- POST processing starts {wallet=} {path=}')
if "psg" in request.POST: # handle metadata form
formj = WalletForm(request.POST)
@@ -748,7 +750,7 @@ def walletedit(request, path=None):
return HttpResponseRedirect(f'/walletedit/{walletgoto.replace("#",":")}')
- else: # Creating a wallet .
+ else: # Creating a wallet or uploading files
# NOT editing wallet data, or uploading a file. Should not overwrite metadata at all.
if "submitbutton" in request.POST:
print(f"--- Submit button value {request.POST['submitbutton']}")
@@ -758,9 +760,11 @@ def walletedit(request, path=None):
walletobject = make_wallet(wallet) # no date set yet
commit_json(w)
- form = FilesForm(request.POST, request.FILES)
- if form.is_valid():
- # print(f'--- FORM walletedit multiple BUT EMPTY METADATA supposedly {WALLET_BLANK_JSON["date"]=}')
+ form = WalletFilesForm(request.POST, request.FILES)
+ if not form.is_valid():
+ print("--- Upload <files form> is invalid, which is correct if just created as there are no files.")
+ else:
+ print(f'--- FORM walletedit multiple BUT EMPTY METADATA supposedly {WALLET_BLANK_JSON["date"]=}')
multiple = request.FILES.getlist("uploadfiles")
fs = FileSystemStorage(os.path.join(dirpath)) # creates wallet folder if necessary
@@ -777,13 +781,15 @@ def walletedit(request, path=None):
actual_saved.append(saved_filename)
# print(f'! - FORM walletedit multiple {actual_saved}')
filesaved = True
+ message = f"FAILED to save file {f.name} as {saved_filename}. Please report this error."
+ else:
+ message = f"FAILED to save file {f.name}. Please report this error."
+ return render(request, "errors/generic.html", {"message": message})
# print(f'--- FORM walletedit multiple BUT EMPTY METADATA supposedly {WALLET_BLANK_JSON["date"]=}')
save_json(waldata)
walletobject = make_wallet(wallet)
commit_json(waldata)
- else:
- print("--- Upload files form invalid, which is correct if just created.")
- #
+ #
# Not a POST, so a GET starts here. And also control gets here after a POST is processed.
#
files = []