Package zinnia :: Package views :: Module quick_entry
[hide private]

Source Code for Module zinnia.views.quick_entry

 1  """Views for Zinnia quick entry""" 
 2  from urllib import urlencode 
 3   
 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 
12   
13  from zinnia.models import Entry 
14  from zinnia.managers import DRAFT 
15  from zinnia.managers import PUBLISHED 
16 17 18 -class QuickEntryForm(forms.Form):
19 """Form for posting an entry quickly""" 20 21 title = forms.CharField(required=True, max_length=255) 22 content = forms.CharField(required=True) 23 tags = forms.CharField(required=False, max_length=255)
24
25 26 @permission_required('zinnia.add_entry') 27 -def view_quick_entry(request):
28 """View for quickly post an Entry""" 29 if request.POST: 30 form = QuickEntryForm(request.POST) 31 if form.is_valid(): 32 entry_dict = form.cleaned_data 33 status = PUBLISHED 34 if 'save_draft' in request.POST: 35 status = DRAFT 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) 43 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'), 51 urlencode(data))) 52 53 return redirect('admin:zinnia_entry_add')
54