예제 #1
0
def ajax_save_bookmark(request, bookmark_id=False):
    bookmark = get_object_or_None(Bookmark, pk=bookmark_id)
    if request.method == "POST":
        if 'chart_id' not in request.POST or 'tags' not in request.POST:
            return HttpResponse(
                json.dumps({
                    "message": {
                        'type': 'error',
                        'text': "Can't save bookmark",
                    },
                }), 'application/json')
        if not bookmark:
            bookmark = Bookmark()
            bookmark.save()
        if 'chart_id' in request.POST:
            chart = get_object_or_None(Chart, pk=request.POST['chart_id'])
            if chart:
                bookmark.chart = chart
        if 'tags' in request.POST:
            for short in request.POST['tags'].split(','):
                tag = get_object_or_None(Tag, short=short)
                if tag:
                    bookmark.tags.add(tag)
        if 'note_id' in request.POST:
            note = get_object_or_None(Note, pk=request.POST['note_id'])
            if note:
                bookmark.note = note
            else:
                bookmark.note = False
        bookmark.save()
        _bookmark = bookmark.as_json()
        _bookmark['url'] = 'http://' + request.get_host() + reverse(
            save_bookmark, args=(bookmark.id, ))
        return HttpResponse(
            json.dumps({
                "message": {
                    'type': 'success',
                    'text': "Bookmark saved",
                },
                "bookmarks": [_bookmark],
            }), 'application/json')
    return HttpResponse(
        json.dumps({
            "message": {
                'type': 'error',
                'text': "Use post",
            },
        }), 'application/json')
예제 #2
0
def save_bookmark(request, bookmark_id=False):
    if request.is_ajax:
        return ajax_save_bookmark(request, bookmark_id)
    form = BookmarkForm()
    bookmark = get_object_or_None(Bookmark, pk=bookmark_id)
    if bookmark:
        form = BookmarkForm(instance=bookmark)
        if not request.user.is_authenticated() or (
                not request.user.is_staff and
            (bookmark.note.author == request.user)):
            return HttpResponseRedirect(reverse(list, args=(note.id, )))
    if request.method == "POST":
        if bookmark:
            form = BookmarkForm(request.POST, instance=bookmark)
        else:
            form = BookmarkForm(request.POST)
        if form.is_valid():
            if not bookmark:
                bookmark = Bookmark()
                bookmark.save()
            if 'text' in form.cleaned_data:
                bookmark.text = form.cleaned_data['text']
            if 'chart' in form.cleaned_data:
                bookmark.chart = form.cleaned_data['chart']
            if 'tags' in form.cleaned_data:
                bookmark.tags = form.cleaned_data['tags']
            if 'note' in form.cleaned_data:
                bookmark.note = form.cleaned_data['note']
            bookmark.save()
            return HttpResponseRedirect(
                reverse(save_bookmark, kwargs={
                    "bookmark_id": bookmark.id,
                }))
    return render_to_response('notes/form_page.html', {'form': form},
                              context_instance=RequestContext(request))
예제 #3
0
def save_bookmark_to_note(request, note):
    saved_bookmarks = 0
    if request.method == 'POST':
        if 'bookmarks' in request.POST:
            for bookmark_id in request.POST['bookmarks'].split(","):
                if bookmark_id != '':
                    bookmark = get_object_or_None(Bookmark, pk=bookmark_id)
                    if bookmark:
                        bookmark.note = note
                        bookmark.save()
        chart = False
        tags = []
        if 'chart_id' in request.POST:
            chart = get_object_or_None(Chart, pk=request.POST['chart_id'])
        if 'tags' in request.POST:
            for short in request.POST['tags'].split(','):
                if short != '':
                    tag = get_object_or_None(Tag, short=short)
                    if tag:
                        tags.append(tag)
        if chart:
            bookmark = Bookmark()
            bookmark.chart = chart
            bookmark.note = note
            bookmark.save()
            bookmark.tags = tags
    return saved_bookmarks