Merge remote-tracking branch 'upstream/develop' into feature/fix_parler
This commit is contained in:
commit
2cb43d6497
7 changed files with 52 additions and 23 deletions
3
.checkignore
Normal file
3
.checkignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
tests/*
|
||||
docs/*
|
||||
djangocms_blog/south_migrations/*
|
|
@ -30,7 +30,7 @@ djangocms-blog
|
|||
:target: https://codeclimate.com/github/nephila/djangocms-blog
|
||||
:alt: Code Climate
|
||||
|
||||
A djangoCMS 3 blog application.
|
||||
django CMS blog application - Support for multilingual posts, placeholders, social network meta tags and configurable apphooks.
|
||||
|
||||
Supported Django versions:
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ from cms.admin.placeholderadmin import FrontendEditableAdminMixin, PlaceholderAd
|
|||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.utils.six import callable
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from parler.admin import TranslatableAdmin
|
||||
|
@ -118,12 +117,7 @@ class PostAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin,
|
|||
return {'slug': ('title',)}
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
if not obj.author_id and obj.app_config.set_author:
|
||||
if get_setting('AUTHOR_DEFAULT') is True:
|
||||
user = request.user
|
||||
else:
|
||||
user = get_user_model().objects.get(username=get_setting('AUTHOR_DEFAULT'))
|
||||
obj.author = user
|
||||
obj._set_default_author(request.user)
|
||||
super(PostAdmin, self).save_model(request, obj, form, change)
|
||||
|
||||
class Media:
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
from cms.utils.permissions import get_current_user
|
||||
|
||||
try:
|
||||
from cms.wizards.wizard_base import Wizard
|
||||
from cms.wizards.wizard_pool import wizard_pool
|
||||
|
@ -35,6 +37,10 @@ try:
|
|||
class Media:
|
||||
js = ('admin/js/jquery.js', 'admin/js/jquery.init.js',)
|
||||
|
||||
def save(self, commit=True):
|
||||
self.instance._set_default_author(get_current_user())
|
||||
return super(PostWizardForm, self).save(commit)
|
||||
|
||||
class PostWizard(Wizard):
|
||||
pass
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ from aldryn_apphooks_config.fields import AppHookConfigField
|
|||
from aldryn_apphooks_config.managers.parler import AppHookConfigTranslatableManager
|
||||
from cms.models import CMSPlugin, PlaceholderField
|
||||
from django.conf import settings as dj_settings
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
@ -254,6 +255,14 @@ class Post(ModelMeta, TranslatableModel):
|
|||
def get_author(self):
|
||||
return self.author
|
||||
|
||||
def _set_default_author(self, current_user):
|
||||
if not self.author_id and self.app_config.set_author:
|
||||
if get_setting('AUTHOR_DEFAULT') is True:
|
||||
user = current_user
|
||||
else:
|
||||
user = get_user_model().objects.get(username=get_setting('AUTHOR_DEFAULT'))
|
||||
self.author = user
|
||||
|
||||
def thumbnail_options(self):
|
||||
if self.main_image_thumbnail_id:
|
||||
return self.main_image_thumbnail.as_dict
|
||||
|
|
|
@ -47,25 +47,43 @@ class WizardTest(BaseTest):
|
|||
@skipIf(LooseVersion(cms.__version__) < LooseVersion('3.2'),
|
||||
reason='Wizards not available for django CMS < 3.2')
|
||||
def test_wizard_init(self):
|
||||
from cms.utils.permissions import current_user
|
||||
from cms.wizards.wizard_pool import wizard_pool
|
||||
from djangocms_blog.models import Post
|
||||
self.get_pages()
|
||||
|
||||
wizs = [entry for entry in wizard_pool.get_entries() if entry.model == Post]
|
||||
for wiz in wizs:
|
||||
app_config = self.app_config_1.pk if wiz.title == 'New Blog' else self.app_config_2.pk
|
||||
form = wiz.form()
|
||||
self.assertTrue(form.initial.get('app_config', False), app_config)
|
||||
self.assertTrue(form.fields['app_config'].widget.attrs['disabled'])
|
||||
with current_user(self.user_staff):
|
||||
wizs = [entry for entry in wizard_pool.get_entries() if entry.model == Post]
|
||||
for index, wiz in enumerate(wizs):
|
||||
app_config = self.app_config_1.pk if wiz.title == 'New Blog' else self.app_config_2.pk
|
||||
form = wiz.form()
|
||||
self.assertTrue(form.initial.get('app_config', False), app_config)
|
||||
self.assertTrue(form.fields['app_config'].widget.attrs['disabled'])
|
||||
|
||||
form = wiz.form(data={
|
||||
'1-title': 'title',
|
||||
'1-abstract': 'abstract',
|
||||
'1-categories': [self.category_1.pk],
|
||||
}, prefix=1)
|
||||
self.assertEqual(form.default_appconfig, app_config)
|
||||
self.assertTrue(form.is_valid())
|
||||
self.assertTrue(form.cleaned_data['app_config'], app_config)
|
||||
form = wiz.form(data={
|
||||
'1-title': 'title{0}'.format(index),
|
||||
'1-abstract': 'abstract{0}'.format(index),
|
||||
'1-categories': [self.category_1.pk],
|
||||
}, prefix=1)
|
||||
self.assertEqual(form.default_appconfig, app_config)
|
||||
self.assertTrue(form.is_valid())
|
||||
self.assertTrue(form.cleaned_data['app_config'], app_config)
|
||||
instance = form.save()
|
||||
self.assertEqual(instance.author, self.user_staff)
|
||||
|
||||
with self.settings(BLOG_AUTHOR_DEFAULT='normal'):
|
||||
for index, wiz in enumerate(wizs):
|
||||
app_config = self.app_config_1.pk if wiz.title == 'New Blog' else self.app_config_2.pk
|
||||
form = wiz.form(data={
|
||||
'1-title': 'title-2{0}'.format(index),
|
||||
'1-abstract': 'abstract-2{0}'.format(index),
|
||||
'1-categories': [self.category_1.pk],
|
||||
}, prefix=1)
|
||||
self.assertEqual(form.default_appconfig, app_config)
|
||||
self.assertTrue(form.is_valid())
|
||||
self.assertTrue(form.cleaned_data['app_config'], app_config)
|
||||
instance = form.save()
|
||||
self.assertEqual(instance.author, self.user_normal)
|
||||
|
||||
def test_wizard_import(self):
|
||||
# The following import should not fail in any django CMS version
|
||||
|
|
1
tox.ini
1
tox.ini
|
@ -7,7 +7,6 @@ deps =
|
|||
-r{toxinidir}/requirements-test.txt
|
||||
django16: Django>=1.6,<1.7
|
||||
django16: django-taggit<0.18
|
||||
django16: django-mptt<0.8
|
||||
django17: Django>=1.7,<1.8
|
||||
django18: Django>=1.8,<1.9
|
||||
django19: Django>=1.9,<1.10
|
||||
|
|
Loading…
Add table
Reference in a new issue