Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/zinnia/admin/entry.py b/zinnia/admin/entry.py
- index 858ac76..435d713 100644
- --- a/zinnia/admin/entry.py
- +++ b/zinnia/admin/entry.py
- @@ -12,6 +12,7 @@ from django.utils.translation import ugettext_lazy as _
- from django.core.urlresolvers import reverse, NoReverseMatch
- from tagging.models import Tag
- +from cms.admin.placeholderadmin import PlaceholderAdmin
- from zinnia import settings
- from zinnia.managers import HIDDEN
- @@ -20,12 +21,13 @@ from zinnia.ping import DirectoryPinger
- from zinnia.admin.forms import EntryAdminForm
- -class EntryAdmin(admin.ModelAdmin):
- +class EntryAdmin(PlaceholderAdmin):
- """Admin for Entry model"""
- form = EntryAdminForm
- date_hierarchy = 'creation_date'
- - fieldsets = ((_('Content'), {'fields': ('title', 'content',
- - 'image', 'status')}),
- + fieldsets = ((_('Content'), {'fields': ('title', 'image', 'status', 'content')}),
- + (None, {'fields': ('placeholder',),
- + 'classes': ('plugin-holder', 'plugin-holder-nopage')}),
- (_('Options'), {'fields': ('excerpt', 'template', 'related',
- 'authors', 'creation_date',
- 'start_publication',
- @@ -141,19 +143,36 @@ class EntryAdmin(admin.ModelAdmin):
- {'url': short_url}
- get_short_url.allow_tags = True
- get_short_url.short_description = _('short url')
- +
- + def get_placeholder_content(self, entry):
- + """Use render_placeholder to parse placeholder content and give the
- + result to entry content field"""
- + content = render_placeholder(entry.placeholder, context)
- # Custom Methods
- def save_model(self, request, entry, form, change):
- - """Save the authors, update time, make an excerpt"""
- + """Save the authors, update time, make an excerpt.
- + If ZINNIA_WYSIWYG = 'placeholders' render placeholder to content."""
- +
- + if settings.WYSIWYG == 'placeholder' :
- + try:
- + from cms.plugin_rendering import render_placeholder
- + except ImportError:
- + raise ImproperlyConfigured, "Could not load cms.plugin_rendering"
- +
- + context = {}
- + context['request'] = request
- + entry.content = render_placeholder(entry.placeholder, context)
- +
- if not form.cleaned_data.get('excerpt') and entry.status == PUBLISHED:
- entry.excerpt = truncate_words(strip_tags(entry.content), 50)
- if entry.pk and not request.user.has_perm('zinnia.can_change_author'):
- form.cleaned_data['authors'] = entry.authors.all()
- -
- +
- if not form.cleaned_data.get('authors'):
- form.cleaned_data['authors'].append(request.user)
- -
- +
- entry.last_update = datetime.now()
- entry.save()
- @@ -164,16 +183,16 @@ class EntryAdmin(admin.ModelAdmin):
- return queryset
- return request.user.entry_set.all()
- - def formfield_for_manytomany(self, db_field, request, **kwargs):
- - """Filters the disposable authors"""
- - if db_field.name == 'authors':
- - if request.user.has_perm('zinnia.can_change_author'):
- - kwargs['queryset'] = User.objects.filter(is_staff=True)
- - else:
- - kwargs['queryset'] = User.objects.filter(pk=request.user.pk)
- +# def formfield_for_manytomany(self, db_field, request, **kwargs):
- +# """Filters the disposable authors"""
- +# if db_field.name == 'authors':
- +# if request.user.has_perm('zinnia.can_change_author'):
- +# kwargs['queryset'] = User.objects.filter(is_staff=True)
- +# else:
- +# kwargs['queryset'] = User.objects.filter(pk=request.user.pk)
- - return super(EntryAdmin, self).formfield_for_manytomany(
- - db_field, request, **kwargs)
- +# return super(EntryAdmin, self).formfield_for_manytomany(
- +# db_field, request, **kwargs)
- def get_actions(self, request):
- """Define user actions by permissions"""
- @@ -250,34 +269,34 @@ class EntryAdmin(admin.ModelAdmin):
- ping_directories.short_description = _('Ping Directories for ' \
- 'selected entries')
- - def get_urls(self):
- - entry_admin_urls = super(EntryAdmin, self).get_urls()
- - urls = patterns('django.views.generic.simple',
- - url(r'^autocomplete_tags/$', 'direct_to_template',
- - {'template': 'admin/zinnia/entry/autocomplete_tags.js',
- - 'mimetype': 'application/javascript'},
- - name='zinnia_entry_autocomplete_tags'),
- - url(r'^wymeditor/$', 'direct_to_template',
- - {'template': 'admin/zinnia/entry/wymeditor.js',
- - 'mimetype': 'application/javascript'},
- - name='zinnia_entry_wymeditor'),)
- - return urls + entry_admin_urls
- -
- - def _media(self):
- - MEDIA_URL = settings.MEDIA_URL
- - media = super(EntryAdmin, self).media + \
- - Media(css={'all': ('%scss/jquery.autocomplete.css' % MEDIA_URL,)},
- - js=('%sjs/jquery.js' % MEDIA_URL,
- - '%sjs/jquery.bgiframe.js' % MEDIA_URL,
- - '%sjs/jquery.autocomplete.js' % MEDIA_URL,
- - reverse('admin:zinnia_entry_autocomplete_tags'),))
- -
- - if settings.WYSIWYG == 'wymeditor':
- - media += Media(js=('%sjs/wymeditor/jquery.wymeditor.pack.js' % MEDIA_URL,
- - reverse('admin:zinnia_entry_wymeditor')))
- - elif settings.WYSIWYG == 'tinymce':
- - from tinymce.widgets import TinyMCE
- - media += TinyMCE().media + Media(
- - js=(reverse('tinymce-js', args=('admin/zinnia/entry',)),))
- - return media
- - media = property(_media)
- +# def get_urls(self):
- +# entry_admin_urls = super(EntryAdmin, self).get_urls()
- +# urls = patterns('django.views.generic.simple',
- +# url(r'^autocomplete_tags/$', 'direct_to_template',
- +# {'template': 'admin/zinnia/entry/autocomplete_tags.js',
- +# 'mimetype': 'application/javascript'},
- +# name='zinnia_entry_autocomplete_tags'),
- +# url(r'^wymeditor/$', 'direct_to_template',
- +# {'template': 'admin/zinnia/entry/wymeditor.js',
- +# 'mimetype': 'application/javascript'},
- +# name='zinnia_entry_wymeditor'),)
- +# return urls + entry_admin_urls
- +
- +# def _media(self):
- +# MEDIA_URL = settings.MEDIA_URL
- +# media = super(EntryAdmin, self).media + \
- +# Media(css={'all': ('%scss/jquery.autocomplete.css' % MEDIA_URL,)},
- +# js=('%sjs/jquery.js' % MEDIA_URL,
- +# '%sjs/jquery.bgiframe.js' % MEDIA_URL,
- +# '%sjs/jquery.autocomplete.js' % MEDIA_URL,
- +# reverse('admin:zinnia_entry_autocomplete_tags'),))
- +
- +# if settings.WYSIWYG == 'wymeditor':
- +# media += Media(js=('%sjs/wymeditor/jquery.wymeditor.pack.js' % MEDIA_URL,
- +# reverse('admin:zinnia_entry_wymeditor')))
- +# elif settings.WYSIWYG == 'tinymce':
- +# from tinymce.widgets import TinyMCE
- +# media += TinyMCE().media + Media(
- +# js=(reverse('tinymce-js', args=('admin/zinnia/entry',)),))
- +# return media
- +# media = property(_media)
- diff --git a/zinnia/models.py b/zinnia/models.py
- index 120c01b..3cd7f1a 100644
- --- a/zinnia/models.py
- +++ b/zinnia/models.py
- @@ -16,6 +16,7 @@ try:
- except ImportError:
- MPTTModel = models.Model
- from tagging.fields import TagField
- +from cms.models.fields import PlaceholderField
- from zinnia.settings import USE_BITLY
- from zinnia.settings import UPLOAD_TO
- @@ -80,7 +81,8 @@ class Entry(models.Model):
- image = models.ImageField(_('image'), upload_to=UPLOAD_TO,
- blank=True, help_text=_('used for illustration'))
- - content = models.TextField(_('content'))
- + content = models.TextField(_('content'), blank=True)
- + placeholder = PlaceholderField('content')
- excerpt = models.TextField(_('excerpt'), blank=True,
- help_text=_('optional element'))
- diff --git a/zinnia/settings.py b/zinnia/settings.py
- index 0eb8dfa..5685e72 100644
- --- a/zinnia/settings.py
- +++ b/zinnia/settings.py
- @@ -18,7 +18,7 @@ ADVANCED_SEARCH = getattr(settings, 'ZINNIA_ADVANCED_SEARCH', True)
- WYSIWYG = getattr(settings, 'ZINNIA_WYSIWYG',
- 'tinymce' in settings.INSTALLED_APPS \
- - and 'tinymce' or 'wymeditor')
- + and 'tinymce' or 'wymeditor' or 'placeholder')
- MAIL_COMMENT = getattr(settings, 'ZINNIA_MAIL_COMMENT', True)
- MAIL_COMMENT_REPLY = getattr(settings, 'ZINNIA_MAIL_COMMENT_REPLY', False)
- diff --git a/zinnia/templates/zinnia/_entry_detail.html b/zinnia/templates/zinnia/_entry_detail.html
- index b90028c..9f6fd7f 100644
- --- a/zinnia/templates/zinnia/_entry_detail.html
- +++ b/zinnia/templates/zinnia/_entry_detail.html
- @@ -1,4 +1,4 @@
- -{% load tagging_tags comments i18n %}
- +{% load tagging_tags comments i18n placeholder_tags %}
- <div class="entry-header span-16 last">
- <h2 class="entry-title">
- @@ -41,7 +41,8 @@
- </div>
- {% endif %}
- <div class="entry-content">
- - {{ object_content }}
- + {% comment %}{% render_placeholder object.content "640" %}{% endcomment %}
- + {{ object_content }}
- </div>
- </div>
- diff --git a/zinnia/templatetags/zinnia_tags.py b/zinnia/templatetags/zinnia_tags.py
- index 2b1752b..2558d93 100644
- --- a/zinnia/templatetags/zinnia_tags.py
- +++ b/zinnia/templatetags/zinnia_tags.py
- @@ -23,7 +23,7 @@ from zinnia.comparison import pearson_score
- register = Library()
- VECTORS = VectorBuilder({'queryset': Entry.published.all(),
- - 'fields': ['title', 'excerpt', 'content']})
- + 'fields': ['title', 'excerpt']})
- CACHE_ENTRIES_RELATED = {}
Add Comment
Please, Sign In to add comment