diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2024-12-29 17:05:08 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2024-12-29 17:05:08 +0000 |
commit | a3c7f165b9a8f7097f95b745c6c623a78d4853ff (patch) | |
tree | 8e9dfd659ba07f14244b674748c6f38be80208ce /core/views/wallets_edit.py | |
parent | ace23257731c9a35c48bb56ff59c24cfccdc7029 (diff) | |
download | troggle-a3c7f165b9a8f7097f95b745c6c623a78d4853ff.tar.gz troggle-a3c7f165b9a8f7097f95b745c6c623a78d4853ff.tar.bz2 troggle-a3c7f165b9a8f7097f95b745c6c623a78d4853ff.zip |
Cookie/ git author now working on Wallet updates
Diffstat (limited to 'core/views/wallets_edit.py')
-rw-r--r-- | core/views/wallets_edit.py | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/core/views/wallets_edit.py b/core/views/wallets_edit.py index 83198fe..dfb67d3 100644 --- a/core/views/wallets_edit.py +++ b/core/views/wallets_edit.py @@ -19,7 +19,7 @@ from troggle.core.models.logbooks import LogbookEntry # , PersonLogEntry from troggle.core.models.survex import SurvexBlock, SurvexFile, SurvexPersonRole from troggle.core.models.troggle import DataIssue, Expedition from troggle.core.models.wallets import YEAR_RANGE, Wallet, make_valid_date -from troggle.core.utils import current_expo, sanitize_name +from troggle.core.utils import COOKIE_MAX_AGE, WriteAndCommitError, current_expo, get_cookie, git_string, sanitize_name, write_and_commit 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 @@ -80,9 +80,13 @@ class WalletForm(forms.Form): # not a model-form, just a form-form electronic = forms.CharField(strip=True, required=False) pland = forms.CharField(strip=True, required=False) elevd = forms.CharField(strip=True, required=False) - # url = forms.CharField(strip=True, required=False) survex = forms.CharField(strip=True, required=False) - + who_are_you = forms.CharField(strip=True, + widget=forms.TextInput( # We are not using auto form rendering for this form, so this widget is not used. + attrs={"size": 100, "placeholder": "You are editing this page, who are you ? e.g. 'Becka' or 'Animal <mta@gasthof.expo>'", + "style": "vertical-align: text-top;"} + ) + ) xlate = { # "url": "description url", @@ -102,6 +106,7 @@ xlate = { "psg": "name", # a name for this wallet "freetext": "free text", "survex": "survex file", + "who_are_you": "editor of this commit", } @@ -499,6 +504,7 @@ def walletedit(request, path=None): return w def commit_json(waldata): + # CHANGE THIS to use git_commit() from troggle.utils destfolder = contents_path.parent dr_add = subprocess.run([git, "add", contentsjson], cwd=destfolder, capture_output=True, text=True) if dr_add.returncode != 0: @@ -704,6 +710,7 @@ def walletedit(request, path=None): fresh_wallet = False + editor = get_cookie(request) form = FilesForm() if request.method == "POST": @@ -716,6 +723,9 @@ def walletedit(request, path=None): # Unset checkboxes do not return any value, checked ones return "True". # So all need initialising to False if formj.is_valid(): + editor = formj.cleaned_data["who_are_you"] + editor = git_string(editor) + posted = request.POST.copy() posted.pop("csrfmiddlewaretoken") # discard this wd = WALLET_BLANK_JSON.copy() @@ -745,7 +755,7 @@ def walletedit(request, path=None): for i, elem in enumerate(wd["survex file"]): wd["survex file"][i] = elem.strip() - + wd.pop("editor of this commit") # discard this save_json(wd) # walletobject will already exist as creation does not happen here anymore walletobject = make_wallet(wallet) @@ -969,22 +979,24 @@ def walletedit(request, path=None): "peoplesize": str(len(str(people))), "filesaved": filesaved, "actual_saved": actual_saved, + "who_are_you": editor, } - return render( - request, - "walletform.html", - { - "form": form, - "wallet": wallet, - **context, - "date": waldata["date"], - #'url': waldata["description url"], 'urlsize': str(len(str(waldata["description url"]))), - "cave": cave, - "psg": psg, - "freetext": freetext, - "psgsize": str(max(12, len(str(psg)))), - "freetextsize": str(max(60, len(str(freetext)))), - }, - ) + edit_response = render(request, + "walletform.html", + { + "form": form, + "wallet": wallet, + **context, + "date": waldata["date"], + #'url': waldata["description url"], 'urlsize': str(len(str(waldata["description url"]))), + "cave": cave, + "psg": psg, + "freetext": freetext, + "psgsize": str(max(12, len(str(psg)))), + "freetextsize": str(max(60, len(str(freetext)))), + }, + ) + edit_response.set_cookie('editor_id', editor, max_age=COOKIE_MAX_AGE) # cookie expires after COOKIE_MAX_AGE seconds + return edit_response |