diff --git a/core/views/expo.py b/core/views/expo.py index 57d1a7d..0bff259 100644 --- a/core/views/expo.py +++ b/core/views/expo.py @@ -300,7 +300,7 @@ def editexpopage(request, path): headerargs = "" postheader = "" bodyargs = "" - postbody = "" + postbody = "\n" body = pageform.cleaned_data["html"] body = body.replace("\r", "") result = "%s%s%s\n%s%s" % (preheader, headerargs, head, postheader, bodyargs, body, postbody) @@ -308,12 +308,19 @@ def editexpopage(request, path): cwd = filepath.parent filename = filepath.name git = settings.GIT - with open(filepath, "w") as f: - f.write(result) - #print(f'WROTE {cwd}---{filename} ') - subprocess.call([git, "add", filename], cwd=cwd) - subprocess.call([git, "commit", "-m", 'Edit this page'], cwd=cwd) - + try: + with open(filepath, "w") as f: + f.write(result) + #print(f'WROTE {cwd}---{filename} ') + subprocess.call([git, "add", filename], cwd=cwd) + subprocess.call([git, "commit", "-m", 'Edit this page'], cwd=cwd) + except PermissionError: + message = f'CANNOT save this file.\nPERMISSIONS incorrectly set on server for this file {filename}. Ask a nerd to fix this.' + return render(request,'errors/generic.html', {'message': message}) + except: + message = f'CANNOT git on server for this file {filename}. Edits not saved.\nAsk a nerd to fix this.' + return render(request,'errors/generic.html', {'message': message}) + return HttpResponseRedirect(reverse('expopage', args=[path])) # Redirect after POST else: if filefound: diff --git a/core/views/survex.py b/core/views/survex.py index a3ff5bd..332ad75 100644 --- a/core/views/survex.py +++ b/core/views/survex.py @@ -152,6 +152,7 @@ class SvxForm(forms.Form): # javascript seems to insert CRLF on WSL1 whatever you say. So fix that: res = fout.write(rcode.replace("\r","")) + res = fout.write("\n") fout.close() return "SAVED ."