2008-10-05 18:06:00 -07:00
|
|
|
from django import forms
|
2008-06-27 13:50:01 -07:00
|
|
|
from django.contrib.auth.decorators import permission_required
|
2010-07-06 18:16:10 -07:00
|
|
|
from django.http import HttpResponse
|
2010-09-03 11:44:27 -07:00
|
|
|
from django.shortcuts import redirect
|
2010-06-22 10:09:22 -07:00
|
|
|
from django.views.decorators.cache import never_cache
|
2008-10-05 18:06:00 -07:00
|
|
|
from django.views.generic import list_detail, create_update
|
2010-09-03 11:44:27 -07:00
|
|
|
from django.views.generic.simple import direct_to_template
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2010-07-06 18:16:10 -07:00
|
|
|
import markdown
|
|
|
|
|
2010-09-07 22:23:55 -07:00
|
|
|
from .models import News
|
2010-02-17 20:22:21 -08:00
|
|
|
|
2007-11-03 00:45:10 -07:00
|
|
|
def view(request, newsid):
|
2008-10-05 18:06:00 -07:00
|
|
|
return list_detail.object_detail(request, News.objects.all(), newsid,
|
|
|
|
template_name="news/view.html",
|
|
|
|
template_object_name='news')
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2008-10-05 18:06:00 -07:00
|
|
|
#TODO: May as well use a date-based list here sometime
|
2007-11-03 00:45:10 -07:00
|
|
|
def list(request):
|
2010-07-02 18:34:59 -07:00
|
|
|
return list_detail.object_list(request,
|
|
|
|
News.objects.all().select_related('author').defer('content'),
|
2008-10-05 18:06:00 -07:00
|
|
|
template_name="news/list.html",
|
|
|
|
template_object_name="news")
|
|
|
|
|
|
|
|
class NewsForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = News
|
|
|
|
exclude=('id', 'author', 'postdate')
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2008-07-30 09:59:09 -07:00
|
|
|
@permission_required('main.add_news')
|
2010-06-22 10:09:22 -07:00
|
|
|
@never_cache
|
2007-11-03 00:45:10 -07:00
|
|
|
def add(request):
|
2010-06-20 21:31:34 -07:00
|
|
|
if request.POST:
|
|
|
|
form = NewsForm(request.POST)
|
|
|
|
if form.is_valid():
|
|
|
|
newsitem = form.save(commit=False)
|
|
|
|
newsitem.author = request.user
|
|
|
|
newsitem.save()
|
|
|
|
return redirect(newsitem.get_absolute_url())
|
|
|
|
else:
|
|
|
|
form = NewsForm()
|
2010-09-03 11:44:27 -07:00
|
|
|
return direct_to_template(request, 'news/add.html', { 'form': form })
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2008-07-30 09:59:09 -07:00
|
|
|
@permission_required('main.delete_news')
|
2010-06-22 10:09:22 -07:00
|
|
|
@never_cache
|
2007-11-03 00:45:10 -07:00
|
|
|
def delete(request, newsid):
|
2008-10-05 18:06:00 -07:00
|
|
|
return create_update.delete_object(request,
|
|
|
|
News,
|
|
|
|
object_id=newsid,
|
|
|
|
post_delete_redirect='/news/',
|
|
|
|
template_name='news/delete.html',
|
|
|
|
template_object_name='news')
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2008-07-30 09:59:09 -07:00
|
|
|
@permission_required('main.change_news')
|
2010-06-22 10:09:22 -07:00
|
|
|
@never_cache
|
2007-11-03 00:45:10 -07:00
|
|
|
def edit(request, newsid):
|
2010-02-17 20:22:21 -08:00
|
|
|
return create_update.update_object(request,
|
|
|
|
object_id=newsid,
|
2008-10-05 18:06:00 -07:00
|
|
|
form_class=NewsForm,
|
|
|
|
template_name="news/add.html")
|
2007-12-29 16:42:55 -08:00
|
|
|
|
2010-07-06 18:16:10 -07:00
|
|
|
@permission_required('main.change_news')
|
|
|
|
@never_cache
|
|
|
|
def preview(request):
|
|
|
|
markup = ''
|
|
|
|
if request.POST:
|
|
|
|
data = request.POST.get('data', '')
|
|
|
|
markup = markdown.markdown(data)
|
|
|
|
return HttpResponse(markup)
|
|
|
|
|
2007-12-29 16:42:55 -08:00
|
|
|
# vim: set ts=4 sw=4 et:
|