summaryrefslogtreecommitdiffstats
path: root/core/views/wallets_edit.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2024-12-29 17:05:08 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2024-12-29 17:05:08 +0000
commita3c7f165b9a8f7097f95b745c6c623a78d4853ff (patch)
tree8e9dfd659ba07f14244b674748c6f38be80208ce /core/views/wallets_edit.py
parentace23257731c9a35c48bb56ff59c24cfccdc7029 (diff)
downloadtroggle-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.py52
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