Ejemplo n.º 1
0
def blog_entry_edit_view(request, eID):
    """
    lets superusers edit a blog entry
    :param request:
    :return:
    """
    options = blogAttributes()
    entry = get_object_or_404(Entry, id=eID)
    options['entry'] = entry
    options['form'] = EntryForm(instance=entry)
    if request.POST and request.method == 'POST':
        entryForm = EntryForm(request.POST, instance=get_object_or_404(Entry, id=eID))
        if entryForm.is_unique(request, entry):
            if entryForm.has_changed():
                entry = entryForm.customSave(request.user)
                # loop through the tags
                if len(entry.tags) > 0:
                    tags = entry.tags.split(',')
                    for tag in tags:
                        # if the tag doesn't exist
                        if not Tag.objects.filter(name=tag).exists():
                            # save the tag
                            t = Tag()
                            t.name = tag
                            t.save()
                messages.add_message(request, messages.SUCCESS, 'The Entry has been updated')
                return redirect(blog_entry_view, titleSlug=entry.title_slug)
            else:
                messages.add_message(request, messages.INFO, 'No changes have been made')
        else:
            messages.add_message(request, messages.ERROR, 'An Entry with this Title already exists')

    return render_to_response('entryForm.html', options, context_instance=RequestContext(request))
Ejemplo n.º 2
0
def blog_entry_add_view(request):
    """
    lets superusers add a blog entry
    :param request:
    :return:
    """
    options = blogAttributes()
    entryForm = EntryForm()
    options['form'] = entryForm
    options['tags'] = Tag.objects.all()
    if request.POST and request.method == 'POST':
        entryForm = EntryForm(request.POST)
        if entryForm.is_unique(request):
            entry = entryForm.customSave(request.user)
            # loop through the tags
            if len(entry.tags) > 0:
                tags = entry.tags.split(',')
                for tag in tags:
                    # if the tag doesn't exist
                    if not Tag.objects.filter(name=tag).exists():
                        # save the tag
                        t = Tag()
                        t.name = tag
                        t.save()
            messages.add_message(request, messages.SUCCESS, 'The Entry has been saved')
            return redirect(blog_view)
        else:
            messages.add_message(request, messages.ERROR, 'An Entry with this Title already exists')

    return render_to_response('entryForm.html', options, context_instance=RequestContext(request))
Ejemplo n.º 3
0
def blog_view(request):
    """
    base view for the blog
    :param request:
    :return:
    """
    options = blogAttributes()
    options['entries'] = Entry.objects.all()
    return render_to_response('blog.html', options, context_instance=RequestContext(request))
Ejemplo n.º 4
0
def blog_entries_by_tag_view(request,tag):
    """
    shows the user all the entries with a specified tag
    :param request:
    :param tag:
    :return:
    """
    options = blogAttributes()
    # not do-able because no contains function :(
    options['entries'] = Entry.objects.filter(tags__contains=tag)
    options['tag'] = tag
    return render_to_response('blog.html', options, context_instance=RequestContext(request))
Ejemplo n.º 5
0
def blog_entry_view(request, titleSlug=None, eID=None):
    """
    lets superusers add a blog entry
    :param request:
    :return:
    """
    options = blogAttributes()
    if titleSlug is not None:
        options['entry'] = get_object_or_404(Entry, title_slug=titleSlug)
    elif eID is not None:
        options['entry'] = get_object_or_404(Entry, id=eID)
    else:
        raise Http404
    return render_to_response('entry.html', options, context_instance=RequestContext(request))
Ejemplo n.º 6
0
def blog_tags_view(request, tID=None):
    """
    lets logged in superusers see all tags
    :param request:
    :return:
    """
    options = blogAttributes()
    if tID is not None:
        tag = get_object_or_404(Tag, id=tID)
        options['form'] = TagForm(instance=tag)
        options['tag'] = tag
    else:
        options['form'] = TagForm()
    options['tags'] = Tag.objects.all()
    return render_to_response('tags.html', options, context_instance=RequestContext(request))
Ejemplo n.º 7
0
def blog_login_view(request):
    """
    provides a page so users can log in
    :param request:
    :return:
    """
    options = blogAttributes()
    if request.method == 'POST':
        uname = request.POST.get('user', '')
        psword = request.POST.get('pwd', '')
        user = auth.authenticate(username=uname, password=psword)
        # if the user logs in and is active
        if user is not None and user.is_active:
            auth.login(request, user)
            messages.add_message(request, messages.SUCCESS, 'You have been logged in')
            return redirect(blog_view)
        else:
            # user failed to login
            messages.add_message(request, messages.ERROR, 'You entered your User Name or Password incorrectly')
            return render_to_response('login.html', options, context_instance=RequestContext(request))
    # default view for user to login
    else:
        return render_to_response('login.html', options, context_instance=RequestContext(request))