From 84e165b8fc17dfa924b549ccd2ad16e2013a596b Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Thu, 30 Dec 2021 19:28:33 +0000 Subject: Move exception handling to calling View --- core/views/caves.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'core/views/caves.py') diff --git a/core/views/caves.py b/core/views/caves.py index bc65219..8824425 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -358,8 +358,16 @@ def edit_cave(request, slug=None): ceinsts = ceFormSet.save(commit=False) for ceinst in ceinsts: ceinst.cave = cave - ceinst.save() - cave.writeDataFile() + ceinst.save() + try: + cave.writeDataFile() + except PermissionError: + message = f'CANNOT save this file.\nPERMISSIONS incorrectly set on server for this file {cave.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 {cave.filename}. Edits not saved.\nAsk a nerd to fix this.' + return render(request,'errors/generic.html', {'message': message}) + return HttpResponseRedirect("/" + cave.url) else: message = f'! POST data is INVALID {cave}' @@ -420,7 +428,15 @@ def edit_entrance(request, caveslug=None, slug=None): el.cave = cave el.entrance = entrance el.save() - entrance.writeDataFile() + try: + entrance.writeDataFile() + except PermissionError: + message = f'CANNOT save this file.\nPERMISSIONS incorrectly set on server for this file {entrance.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 {entrance.filename}. Edits not saved.\nAsk a nerd to fix this.' + return render(request,'errors/generic.html', {'message': message}) + return HttpResponseRedirect("/" + cave.url) else: message = f'! POST data is INVALID {cave}' -- cgit v1.2.3