def json_save(request, id): """ Save a note. User needs permissions to add/change a note. """ data = check_request(request) try: note = Note.objects.get(id=id) if not request.user.has_perm('adhesive.change_note'): return JSONResponse(data, status=401) form = ModelFormFactory(Note, request.POST, user=request.user, instance=note) data['is_new'] = False except (ValueError, ObjectDoesNotExist): if not request.user.has_perm('adhesive.add_note'): return JSONResponse(data, status=401) form = ModelFormFactory(Note, request.POST, user=request.user) form.id = None data['is_new'] = True if form.is_valid(): note = form.save() data['id'] = note.id data['placement'] = note.placement data['info'] = note.info_text() else: data['error'] = form.errors return JSONResponse(data, status=400) return JSONResponse(data)