Code refactoring

This commit is contained in:
Iacopo Spalletti 2015-11-26 07:54:20 +01:00
parent 70e6b6e523
commit 395185f5fe
4 changed files with 15 additions and 17 deletions

View file

@ -8,7 +8,6 @@ from cms.admin.placeholderadmin import FrontendEditableAdminMixin, PlaceholderAd
from django import forms from django import forms
from django.conf import settings from django.conf import settings
from django.contrib import admin from django.contrib import admin
from django.contrib.auth import get_user_model
from django.utils.six import callable from django.utils.six import callable
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from parler.admin import TranslatableAdmin from parler.admin import TranslatableAdmin
@ -118,12 +117,7 @@ class PostAdmin(PlaceholderAdminMixin, FrontendEditableAdminMixin,
return {'slug': ('title',)} return {'slug': ('title',)}
def save_model(self, request, obj, form, change): def save_model(self, request, obj, form, change):
if not obj.author_id and obj.app_config.set_author: obj._set_default_author(request.user)
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
super(PostAdmin, self).save_model(request, obj, form, change) super(PostAdmin, self).save_model(request, obj, form, change)
class Media: class Media:

View file

@ -2,9 +2,6 @@
from __future__ import absolute_import, print_function, unicode_literals from __future__ import absolute_import, print_function, unicode_literals
from cms.utils.permissions import get_current_user from cms.utils.permissions import get_current_user
from django.contrib.auth import get_user_model
from djangocms_blog.settings import get_setting
try: try:
from cms.wizards.wizard_base import Wizard from cms.wizards.wizard_base import Wizard
@ -41,12 +38,7 @@ try:
js = ('admin/js/jquery.js', 'admin/js/jquery.init.js',) js = ('admin/js/jquery.js', 'admin/js/jquery.init.js',)
def save(self, commit=True): def save(self, commit=True):
if not self.instance.author_id and self.instance.app_config.set_author: self.instance._set_default_author(get_current_user())
if get_setting('AUTHOR_DEFAULT') is True:
user = get_current_user()
else:
user = get_user_model().objects.get(username=get_setting('AUTHOR_DEFAULT'))
self.instance.author = user
return super(PostWizardForm, self).save(commit) return super(PostWizardForm, self).save(commit)
class PostWizard(Wizard): class PostWizard(Wizard):

View file

@ -5,6 +5,7 @@ from aldryn_apphooks_config.fields import AppHookConfigField
from aldryn_apphooks_config.managers.parler import AppHookConfigTranslatableManager from aldryn_apphooks_config.managers.parler import AppHookConfigTranslatableManager
from cms.models import CMSPlugin, PlaceholderField from cms.models import CMSPlugin, PlaceholderField
from django.conf import settings as dj_settings from django.conf import settings as dj_settings
from django.contrib.auth import get_user_model
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.db import models from django.db import models
from django.utils import timezone from django.utils import timezone
@ -254,6 +255,14 @@ class Post(ModelMeta, TranslatableModel):
def get_author(self): def get_author(self):
return self.author 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): def thumbnail_options(self):
if self.main_image_thumbnail_id: if self.main_image_thumbnail_id:
return self.main_image_thumbnail.as_dict return self.main_image_thumbnail.as_dict

View file

@ -7,7 +7,6 @@ from distutils.version import LooseVersion
import cms import cms
from cms.utils.permissions import current_user from cms.utils.permissions import current_user
from djangocms_blog.settings import get_setting
from .base import BaseTest from .base import BaseTest
try: try:
@ -74,11 +73,15 @@ class WizardTest(BaseTest):
with self.settings(BLOG_AUTHOR_DEFAULT='normal'): with self.settings(BLOG_AUTHOR_DEFAULT='normal'):
for index, wiz in enumerate(wizs): 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={ form = wiz.form(data={
'1-title': 'title-2{0}'.format(index), '1-title': 'title-2{0}'.format(index),
'1-abstract': 'abstract-2{0}'.format(index), '1-abstract': 'abstract-2{0}'.format(index),
'1-categories': [self.category_1.pk], '1-categories': [self.category_1.pk],
}, prefix=1) }, 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() instance = form.save()
self.assertEqual(instance.author, self.user_normal) self.assertEqual(instance.author, self.user_normal)