1
"""Views for Zinnia quick entry"""
2
from urllib import urlencode
4
from django import forms
5
from django.utils.html import linebreaks
6
from django.shortcuts import redirect
7
from django.core.urlresolvers import reverse
8
from django.contrib.sites.models import Site
9
from django.template.defaultfilters import slugify
10
from django.utils.encoding import smart_str
11
from django.contrib.auth.decorators import permission_required
13
from zinnia.models import Entry
14
from zinnia.managers import DRAFT
15
from zinnia.managers import PUBLISHED
18
class QuickEntryForm(forms.Form):
19
"""Form for posting an entry quickly"""
21
title = forms.CharField(required=True, max_length=255)
22
content = forms.CharField(required=True)
23
tags = forms.CharField(required=False, max_length=255)
26
@permission_required('zinnia.add_entry')
27
def view_quick_entry(request):
28
"""View for quickly post an Entry"""
30
form = QuickEntryForm(request.POST)
32
entry_dict = form.cleaned_data
34
if 'save_draft' in request.POST:
36
entry_dict['content'] = linebreaks(entry_dict['content'])
37
entry_dict['slug'] = slugify(entry_dict['title'])
38
entry_dict['status'] = status
39
entry = Entry.objects.create(**entry_dict)
40
entry.sites.add(Site.objects.get_current())
41
entry.authors.add(request.user)
42
return redirect(entry)
44
data = {'title': smart_str(request.POST.get('title', '')),
45
'content': smart_str(linebreaks(request.POST.get('content', ''))),
46
'tags': smart_str(request.POST.get('tags', '')),
47
'slug': slugify(request.POST.get('title', '')),
48
'authors': request.user.pk,
49
'sites': Site.objects.get_current().pk}
50
return redirect('%s?%s' % (reverse('admin:zinnia_entry_add'),
53
return redirect('admin:zinnia_entry_add')