polyblog/blogapp/views.py

106 lines
4.0 KiB
Python

from blogapp.models import blogentry, blogcomment
from django.shortcuts import render, get_object_or_404
# from django.template import RequestContext
from django import forms
from imageapp.models import BlogImage
import datetime
import mistune
class CustomRenderer(mistune.Renderer):
def image(self, src, title, alt_text):
try:
img = BlogImage.objects.get(pk=src)
return '<div id="textimg"><img width="100%" src="' + img.image.url + '"/><br>Title: ' + img.title + '<br>Caption: ' + img.caption + '</div>'
except BlogImage.DoesNotExist:
return '<i>Should display an image here but none with id ' + src + ' was found.</i>'
class BlogCommentForm(forms.Form):
guestname = forms.CharField()
blogcomment = forms.CharField(widget=forms.Textarea(attrs={'rows': 3, 'cols': 30}))
def listall(request):
listall_entries = blogentry.objects.all().order_by('-date')[:10]
context = {'blogentries': listall_entries}
return render(request, 'blogapp/blogindex.html', context)
def detail(request, blogentry_id):
blogdetail = get_object_or_404(blogentry, pk=blogentry_id)
if request.method == 'POST':
fml = BlogCommentForm(request.POST)
if fml.is_valid():
bc = blogcomment()
bc.blogentry = blogdetail
bc.guestname = fml.cleaned_data['guestname']
bc.body = fml.cleaned_data['blogcomment']
bc.date = datetime.datetime.now()
bc.save
renderer = CustomRenderer()
md = mistune.Markdown(renderer = renderer, hard_wrap = True)
blogdetail.body = md(blogdetail.body)
form = BlogCommentForm()
context = {'blogentry': blogdetail, 'commentform': form}
return render(request, 'blogapp/blogdetail.html', context)
# if request.user.is_authenticated():
# return render_to_response('blogapp/blogdetail.html', {'blogentry': blogdetail, 'commentform': form}, context_instance=RequestContext(request))
# else:
# return render_to_response('blogapp/blogdetail.html', {'blogentry': blogdetail}, context_instance=RequestContext(request))
# def addarticle(request):
# if not request.user.is_staff:
# return listall(request)
#
# if request.method == 'POST':
# form = NewsForm(request.POST)
# if form.is_valid():
# blog = blogentry()
# blog.user = request.user
# blog.newsheader = form.cleaned_data['header']
# blog.newsbody = form.cleaned_data['body']
# blog.date = datetime.datetime.now()
# blog.save()
#
#
# #return rather to the thread detail here
# listall_entries = newsentry.objects.all().order_by('date')[:10]
# return render_to_response('blogindex.html', {'listall_entries': listall_entries}, context_instance=RequestContext(request))
# else:
# form = NewsForm()
# return render_to_response('blogindex.html', {'showaddnewsform' : form}, context_instance=RequestContext(request))
#
# def editnews(request, newsentry_id):
# if not request.user.is_staff:
# return listall(request)
#
# newsdetail = get_object_or_404(newsentry, pk=newsentry_id)
#
# if request.method == 'POST':
# form = NewsForm(request.POST)
# if form.is_valid():
# newsdetail.newsheader = form.cleaned_data['newsheader']
# newsdetail.newsbody = form.cleaned_data['newsbody']
# newsdetail.save()
# return detail(request, newsentry_id)
#
#
# data = {'newsheader': newsdetail.newsheader, 'newsbody': newsdetail.newsbody}
# form = NewsForm(data)
# return render_to_response('newsedit.html', {'editform' : form}, context_instance=RequestContext(request))
#
# def showfrontpage(request):
# 0 newsdetail = get_object_or_404(newsentry, pk=1)
# return render_to_response('newsapp/newsdetail.html', {'newsentry': newsdetail, 'isfrontpage': True}, context_instance=RequestContext(request))
#
#
# def getincludes(request):
# eventlist = evententry.objects.all().order_by('-date')[:10]
# appointmentlist = event.objects.all().filter(eventend__gte = datetime.datetime.now()).order_by('eventstart')[:5]
# return {'eventlist' : eventlist, 'appointmentlist' : appointmentlist}