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))
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))
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))
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))
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))
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))
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))