diff --git a/core/views/wallets.py b/core/views/wallets.py index 738c2cb..9779b83 100644 --- a/core/views/wallets.py +++ b/core/views/wallets.py @@ -252,19 +252,20 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl): # @login_required_if_public def walletedit(request, path=None): - """Upload scanned image files into a wallet on /expofiles + """Create a new wallet or upload scanned image files into a wallet on /expofiles Also display AND EDIT the contents.json data in the wallet. This is the main wallet display and edit page. The Wallet object and the contents.json file are created when the user - first uploads files. + creates the wallet AND THEN SAVES IT WITH A DATE. This does NOT use a Django model linked to a Django form. Just a simple Django form. You will find the Django documentation on forms very confusing, as it covers many very differnet things we do not need. This is simpler. - This subsumes much of the code which was in the old wallets.py script and so this function is very long indeed and needs refactoring. + This subsumes much of the code which was in the pre-2022 non-troggle wallets.py script + and so this function is very long indeed and needs refactoring. REWRITE bits using the ticklist, dateify, caveify, populate etc utility functions in core.view.scans.py """ @@ -300,7 +301,8 @@ def walletedit(request, path=None): if int(year) < 1977: year = "1977" if int(year) > 2050: - year = "2050" + return (None, get_next_empty() ) + wallet = f"{year}:{wnumber:02d}" return (None, wallet) @@ -447,6 +449,8 @@ def walletedit(request, path=None): wallet = wallet.replace(":", "#") dirpath = Path(settings.SCANS_ROOT, year, wallet) contents_path = Path(settings.DRAWINGS_DATA, "walletjson") / year / wallet / contentsjson + + fresh_wallet = False form = FilesForm() @@ -500,9 +504,17 @@ def walletedit(request, path=None): return HttpResponseRedirect(f'/walletedit/{walletgoto.replace("#",":")}') - else: # not editing wallet data, uploading a file. But should not overwrite metadata at all. + else: # not editing wallet data, creating a wallet or uploading a file. Should not overwrite metadata at all. + if "submitbutton" in request.POST: + print(f"--- Submit button value {request.POST['submitbutton']}") + if request.POST['submitbutton']=="Create": + w = WALLET_BLANK_JSON.copy() + save_json(w) + walletobject = make_wallet(wallet) + commit_json(w) + fresh_wallet = True + form = FilesForm(request.POST, request.FILES) - if form.is_valid(): # print(f'--- FORM walletedit multiple BUT EMPTY METADATA supposedly {WALLET_BLANK_JSON["date"]=}') multiple = request.FILES.getlist("uploadfiles") @@ -525,6 +537,9 @@ def walletedit(request, path=None): save_json(waldata) walletobject = make_wallet(wallet) commit_json(waldata) + fresh_wallet = True + else: + print("--- Upload files form invalid") # # Not a POST, so a GET starts here. And also control gets here after a POST is processed. # @@ -545,7 +560,10 @@ def walletedit(request, path=None): "(No wallet yet. It would be created if you upload a scan and then save the form with a date.)" ) else: - create = True + if fresh_wallet: + create = False + else: + create = True if len(files) > 0: files = sorted(files) diff --git a/templates/wallet_new.html b/templates/wallet_new.html index 2f80816..4b41e56 100644 --- a/templates/wallet_new.html +++ b/templates/wallet_new.html @@ -1,7 +1,12 @@ - -
To create a wallet, if you have only a survex file and nothing to upload into the wallet, -you currently need to got to Upload Scans, navigate to the new wallet number -and then upload a dummy file, e.g. 'nothingyet.txt'. You can then edit the wallet details: the date, -the people involved, and the url of the survexfile which you will already have uploaded using e.g. +
To create a wallet, if you have only a survex file but no notes to scan, you should upload the survexfile first. But before you can do that you will need to login (use the menu item at top-right of page). +
+Upload the survexfile using e.g. /survexfile/caves-1623/290/mynewsurvex.svx -(for a survex file for cave 1623-290). +(for a survex file for cave 1623-290). You will cut and paste the survex file data into the window on the form. + + +
While still logged-in, go to this page Create Wallet which will take you to the next unused wallet number page, and click the 'Create' button. This will not actually complete +the creation of the wallet until you have also set the date for the wallet in the wallet edit form (which will appear when you press 'Create'). +
+While editing the wallet you should enter in the form the url of the survexfile which you have just created at e.g. /survexfile/caves-1623/290/mynewsurvex.svx (see above). diff --git a/templates/walletform.html b/templates/walletform.html index da0e2f4..c605a2f 100644 --- a/templates/walletform.html +++ b/templates/walletform.html @@ -18,7 +18,7 @@ + placeholder="{% now 'Y' %}#nn" value="{% now 'Y' %}#" /> @@ -37,11 +37,18 @@
@@ -69,47 +76,51 @@ {{d}}
Wallet index for {{year}}
-Logbook entries, people, Survex files for {{year}}
+Logbook entries, People, Survex files for {{year}}
-HELP with using this form
+ {% if user.username %}
+ HELP with using this form
+ {% else %}
+ HELP with editing a wallet and uploading scans
+ {% endif %}
+{% if not create %}
-
-{% if complaints %}
-
You will need to log in to the website (top right menu bar) to be able to edit the settings on this wallet. -{% endif %} + {% if user.username %} + {% else %} +
You will need to log in to the website (top right menu bar) to be able to edit the settings on this wallet.
+ {% endif %}
-{% endif %}
+ {% endif %}
-{% include 'wallet_table.html' %}
+ {% include 'wallet_table.html' %}
- {% if not create %}
{% if cave %}Cave ID:
@@ -138,65 +149,65 @@