mirror of
https://github.com/jazzband/django-constance.git
synced 2026-03-16 22:40:24 +00:00
Merge remote-tracking branch 'vinnyrose/compat_changes'
This commit is contained in:
commit
19109b98bc
8 changed files with 48 additions and 77 deletions
|
|
@ -4,6 +4,7 @@ import hashlib
|
|||
from operator import itemgetter
|
||||
|
||||
from django import forms
|
||||
from django.conf.urls import url
|
||||
from django.contrib import admin, messages
|
||||
from django.contrib.admin import widgets
|
||||
from django.contrib.admin.options import csrf_protect_m
|
||||
|
|
@ -13,19 +14,10 @@ from django.http import HttpResponseRedirect
|
|||
from django.shortcuts import render_to_response
|
||||
from django.template.context import RequestContext
|
||||
from django.utils import six
|
||||
from django.utils.encoding import smart_bytes
|
||||
from django.utils.formats import localize
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
try:
|
||||
from django.utils.encoding import smart_bytes
|
||||
except ImportError:
|
||||
from django.utils.encoding import smart_str as smart_bytes
|
||||
|
||||
try:
|
||||
from django.conf.urls import patterns, url
|
||||
except ImportError: # Django < 1.4
|
||||
from django.conf.urls.defaults import patterns, url
|
||||
|
||||
|
||||
from . import LazyConfig, settings
|
||||
|
||||
|
|
@ -97,14 +89,14 @@ class ConstanceAdmin(admin.ModelAdmin):
|
|||
|
||||
def get_urls(self):
|
||||
info = self.model._meta.app_label, self.model._meta.module_name
|
||||
return patterns('',
|
||||
return [
|
||||
url(r'^$',
|
||||
self.admin_site.admin_view(self.changelist_view),
|
||||
name='%s_%s_changelist' % info),
|
||||
url(r'^$',
|
||||
self.admin_site.admin_view(self.changelist_view),
|
||||
name='%s_%s_add' % info),
|
||||
)
|
||||
]
|
||||
|
||||
@csrf_protect_m
|
||||
def changelist_view(self, request, extra_context=None):
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
from django.db.models import signals
|
||||
from django import VERSION
|
||||
from django.apps import AppConfig
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
|
@ -5,3 +7,28 @@ from django.utils.translation import ugettext_lazy as _
|
|||
class ConstanceConfig(AppConfig):
|
||||
name = 'constance'
|
||||
verbose_name = _('Constance')
|
||||
|
||||
def ready(self):
|
||||
super(ConstanceConfig, self).ready()
|
||||
signals.post_migrate.connect(self.create_perm,
|
||||
dispatch_uid='constance.create_perm')
|
||||
|
||||
def create_perm(self, *args, **kwargs):
|
||||
"""
|
||||
Creates a fake content type and permission
|
||||
to be able to check for permissions
|
||||
"""
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
if ContentType._meta.installed and Permission._meta.installed:
|
||||
extra = {} if VERSION >= (1, 8) else {'name': 'config'}
|
||||
content_type, created = ContentType.objects.get_or_create(
|
||||
app_label='constance',
|
||||
model='config',
|
||||
**extra)
|
||||
|
||||
permission, created = Permission.objects.get_or_create(
|
||||
name='Can change config',
|
||||
content_type=content_type,
|
||||
codename='change_config')
|
||||
|
|
|
|||
|
|
@ -1,18 +1,8 @@
|
|||
from django.core.cache import caches
|
||||
from django.core.cache.backends.locmem import LocMemCache
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db.models.signals import post_save
|
||||
|
||||
try:
|
||||
from django.core.cache import get_cache
|
||||
except ImportError:
|
||||
from django.core.cache import caches
|
||||
def get_cache(name):
|
||||
return caches[name]
|
||||
|
||||
try:
|
||||
from django.core.cache.backends.locmem import LocMemCache
|
||||
except ImportError:
|
||||
from django.core.cache.backends.locmem import CacheClass as LocMemCache
|
||||
|
||||
from .. import Backend
|
||||
from ... import settings
|
||||
|
||||
|
|
@ -31,7 +21,7 @@ class DatabaseBackend(Backend):
|
|||
"correctly. Make sure it's in your INSTALLED_APPS setting.")
|
||||
|
||||
if settings.DATABASE_CACHE_BACKEND:
|
||||
self._cache = get_cache(settings.DATABASE_CACHE_BACKEND)
|
||||
self._cache = caches[settings.DATABASE_CACHE_BACKEND]
|
||||
if isinstance(self._cache, LocMemCache):
|
||||
raise ImproperlyConfigured(
|
||||
"The CONSTANCE_DATABASE_CACHE_BACKEND setting refers to a "
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
from django.db.models import signals
|
||||
from django import VERSION
|
||||
|
||||
|
||||
def create_perm(*args, **kwargs):
|
||||
"""
|
||||
Creates a fake content type and permission
|
||||
to be able to check for permissions
|
||||
"""
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
if ContentType._meta.installed and Permission._meta.installed:
|
||||
extra = {} if VERSION >= (1, 8) else {'name': 'config'}
|
||||
content_type, created = ContentType.objects.get_or_create(
|
||||
app_label='constance',
|
||||
model='config',
|
||||
**extra)
|
||||
|
||||
permission, created = Permission.objects.get_or_create(
|
||||
name='Can change config',
|
||||
content_type=content_type,
|
||||
codename='change_config')
|
||||
|
||||
|
||||
if hasattr(signals, 'post_syncdb'):
|
||||
signals.post_syncdb.connect(create_perm, dispatch_uid="constance.create_perm")
|
||||
else:
|
||||
signals.post_migrate.connect(create_perm, dispatch_uid="constance.create_perm")
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
try:
|
||||
from importlib import import_module
|
||||
except ImportError:
|
||||
from django.utils.importlib import import_module
|
||||
from importlib import import_module
|
||||
|
||||
|
||||
def import_module_attr(path):
|
||||
|
|
|
|||
|
|
@ -44,3 +44,10 @@ class TestAdmin(TestCase):
|
|||
|
||||
response = self.options.changelist_view(request, {})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_str(self):
|
||||
from django.utils import six
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
ct = ContentType.objects.get(app_label='constance', model='config')
|
||||
|
||||
self.assertEqual(six.text_type(ct), 'config')
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
from django.contrib import admin
|
||||
|
||||
try:
|
||||
from django.conf.urls import patterns, include
|
||||
except ImportError:
|
||||
from django.conf.urls.defaults import patterns, include
|
||||
from django.conf.urls import url, include
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
(r'^admin/', include(admin.site.urls)),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
]
|
||||
|
|
|
|||
14
tox.ini
14
tox.ini
|
|
@ -1,16 +1,11 @@
|
|||
[tox]
|
||||
envlist =
|
||||
py26-django-14,
|
||||
py27-django-14,
|
||||
{py26,py27,py32,py33,py34,pypy}-django-{15,16},
|
||||
{py27,py32,py33,py34,pypy}-django-{17,18}
|
||||
{py27,py34,py35,pypy}-django-master
|
||||
{py27,py33,py34,pypy}-django-{17,18},
|
||||
{py27,py34,35,pypy}-django-{master}
|
||||
|
||||
[testenv]
|
||||
basepython =
|
||||
py26: python2.6
|
||||
py27: python2.7
|
||||
py32: python3.2
|
||||
py33: python3.3
|
||||
py34: python3.4
|
||||
py35: python3.5
|
||||
|
|
@ -19,11 +14,6 @@ deps =
|
|||
redis
|
||||
coverage
|
||||
django-picklefield
|
||||
py26: unittest2
|
||||
django-{14,15}: django-discover-runner
|
||||
django-14: Django>=1.4,<1.5
|
||||
django-15: Django>=1.5,<1.6
|
||||
django-16: Django>=1.6,<1.7
|
||||
django-17: Django>=1.7,<1.8
|
||||
django-18: Django>=1.8,<1.9
|
||||
django-master: https://github.com/django/django/archive/master.tar.gz
|
||||
|
|
|
|||
Loading…
Reference in a new issue