Exemple #1
0
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)