diff options
Diffstat (limited to 'core/views/caves.py')
-rw-r--r-- | core/views/caves.py | 22 |
1 files changed, 19 insertions, 3 deletions
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}' |