Пример #1
0
def json(request, username, friends):
    entries = Entry.objects.latest(username, friends)[:MAX_JSON_ENTRIES]
    json_entries = [{
        "key": str(entry.key()),
        "body": entry.body,
        "author": entry.author,
        "author_url": entry.author_url,
        "published": entry.published.isoformat(),
        "updated": entry.updated.isoformat(),
        "link": entry.link,
        "linktext": entry.link,
        "permalink": '/show/'+str(entry.key()),
        "editlink": '/edit/'+str(entry.key()),
        "deletelink": '/delete/'+str(entry.key())
        } for entry in entries]
    json_entries.reverse()
    json = {"entries": json_entries}
    return json_response(json)
Пример #2
0
def delete_entry(request, key):
    entry = db.get(key)
    if entry.author != request.user.username and not request.user.is_superuser:
        response = HttpResponse('unauthorized') 
        response.status_code = 401 
        return response
    # invalidate cache
    clear_entries_cache(request.user.username)
    if request.is_ajax():
        entry.delete()
        r = {
                'key': key,
                'success':True
            }
        return json_response(r)
    else:
        return delete_object(request, Entry, object_id=key,
            post_delete_redirect=reverse('user-entries',
                    kwargs={'username':request.user.username}))
Пример #3
0
def add_entry(request):
    host = 'http://%s' % request.get_host()
    if request.method == 'POST': 
        form =EntryForm(request.POST) 
        if form.is_valid():
            entry = form.save(commit=False)
            entry.subscription = None
            entry.owner = request.user
            entry.author = request.user.username
            entry.subscribers_usernames = [request.user.username]
            # let the author_url blank so it won't be hardcoded in the store and
            # in the template, if author_link is empty, generate a link to his
            # entries
            entry.author_url = ''
            entry.save()
            # invalidate cache
            clear_entries_cache(request.user.username)
            # inform the hub
            post_publish.send(sender=Entry, username=entry.author, host=host)
            if request.is_ajax():
                e = dict(
                    author=request.user.username,
                    author_url = host+'/'+request.user.username,
                    body = entry.body,
                    link = entry.link,
                    linktext = entry.link,
                    key = str(entry.key()),
                    permalink = '/show/'+str(entry.key()),
                    editlink = '/edit/'+str(entry.key()),
                    deletelink = '/delete/'+str(entry.key())
                )
                return json_response(e)
            else:
                return HttpResponseRedirect(reverse('user-entries',
                    kwargs={'username': request.user.username})) 
    else:
        form =EntryForm() 

    return render_to_response('entry_form.html', {
        'form': form
    })
Пример #4
0
def edit_entry(request, key):
    host = 'http://%s' % request.get_host()
    entry = db.get(key)
    if entry.author != request.user.username:
        response = HttpResponse('unauthorized') 
        response.status_code = 401 
        return response
    if request.is_ajax():
        body = request.POST.get('body')
        link = request.POST.get('link')
        entry.body = body
        entry.link = link
        entry.save()
        e = dict(
            author=request.user.username,
            author_url = host+'/'+request.user.username,
            body = entry.body,
            link = entry.link,
            linktext = entry.link,
            key = str(entry.key()),
            permalink = '/show/'+str(entry.key()),
            editlink = '/edit/'+str(entry.key()),
            deletelink = '/delete/'+str(entry.key())
        )
        # invalidate cache
        clear_entries_cache(request.user.username)
        # ping hub
        post_publish.send(sender=Entry, username=request.user.username,
                host=host)
        return json_response(e)

    else:
        response = update_object(request, object_id=key, form_class=EntryForm,
                post_save_redirect=reverse('user-entries',
                    kwargs={'username':request.user.username}))
        if isinstance(response, HttpResponseRedirect):
            post_publish.send(sender=Entry, username=request.user.username,
                    host=host)
        return response