Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions object_tools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ def old_autodiscover():


def autodiscover():
if django.VERSION < (1, 7):
old_autodiscover()
else:
from django.utils.module_loading import autodiscover_modules
autodiscover_modules('tools', register_to=tools)
from django.utils.module_loading import autodiscover_modules
autodiscover_modules('tools', register_to=tools)

default_app_config = 'object_tools.apps.ObjectToolsAppConfig'
6 changes: 3 additions & 3 deletions object_tools/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

from django import forms
from django.conf import settings
from django.conf.urls import url
from django.urls import re_path
from django.contrib.admin import helpers
from django.core.exceptions import PermissionDenied
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_protect
try:
from django.urls import reverse
except ImportError:
from django.core.urlresolvers import reverse
from django.urls import reverse

csrf_protect_m = method_decorator(csrf_protect)

Expand Down Expand Up @@ -102,7 +102,7 @@ def _urls(self):
self.name,
)
urlpatterns = [
url(r'^%s/$' % self.name, self._view, name='%s_%s_%s' % info)
re_path(r'^%s/$' % self.name, self._view, name='%s_%s_%s' % info)
]
return urlpatterns
urls = property(_urls)
Expand Down
6 changes: 3 additions & 3 deletions object_tools/sites.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def get_urls(self):
try:
from django.conf.urls.defaults import url, include
except ImportError:
from django.conf.urls import url, include
from django.urls import include, re_path

urlpatterns = []

Expand All @@ -83,13 +83,13 @@ def get_urls(self):

for object_tool in object_tools:
urlpatterns.append(
url(r'^%s/%s/' % info, include(object_tool.urls))
re_path(r'^%s/%s/' % info, include(object_tool.urls))
)
return urlpatterns

@property
def urls(self):
return self.get_urls(), self.app_name, self.name
return self.get_urls(), self.app_name # ), self.name

# This global object represents the default object tools, for the common case.
# You can instantiate ObjectTools in your own code to create a
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{% for object_tool in object_tools %}
<li><a href="{{ object_tool.reverse }}{% if request %}?{{ request.GET.urlencode }}{% endif %}" title="{{ object_tool.help_text }}"class="historylink">{{ object_tool.label }}</a></li>
<li class="{{ object_tool.name|slugify }}"><a href="{{ object_tool.reverse }}{% if request %}?{{ request.GET.urlencode }}{% endif %}" title="{{ object_tool.help_text }}" class="historylink">{{ object_tool.label }}</a></li>
{% endfor %}
50 changes: 14 additions & 36 deletions object_tools/tests/test_object_tool_creation.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,40 +66,24 @@ def test_media(self):
form = tool.construct_form(MockRequest())
media = tool.media(form)

if django.VERSION >= (2, 0):
media_js_list = [
'<script type="text/javascript" src="/static/admin/js/\
media_js_list = [
'<script type="text/javascript" src="/static/admin/js/\
core.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
admin/RelatedObjectLookups.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
jquery.min.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
jquery.init.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
vendor/jquery/jquery.min.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
jquery.init.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
calendar.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
'<script type="text/javascript" src="/static/admin/js/\
admin/DateTimeShortcuts.js"></script>'
]
else:
media_js_list = [
'<script type="text/javascript" src="/static/admin/js/\
core.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
admin/RelatedObjectLookups.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
jquery.min.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
jquery.init.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
calendar.js"></script>',
'<script type="text/javascript" src="/static/admin/js/\
admin/DateTimeShortcuts.js"></script>'
]
]

# Media result should also include field specific media.
self.assertEqual(media.render_js(), media_js_list)
Expand All @@ -120,16 +104,10 @@ def test_urls(self):
urls = tool.urls
self.assertEqual(len(urls), 1, 'urls property should only \
return 1 url')
if django.VERSION >= (2, 0):
self.assertEqual(
urls[0].__repr__(),
"<URLPattern '^test_tool/$' [name='auth_user_test_tool']>"
)
else:
self.assertEqual(
urls[0].__repr__(),
'<RegexURLPattern auth_user_test_tool ^test_tool/$>'
)
self.assertEqual(
urls[0].__repr__(),
"<URLPattern '^test_tool/$' [name='auth_user_test_tool']>"
)
self.assertEqual(
urls[0].name, 'auth_user_test_tool',
'URL should be named as "<app_label>_<model_name>_<tool_name>".'
Expand Down
26 changes: 8 additions & 18 deletions object_tools/tests/test_object_tools_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,24 +107,14 @@ def test_urls(self):
urls = tools.urls
self.assertEqual(len(urls[0]), 6)

if django.VERSION >= (2, 0):
urlpatterns = [
"<URLPattern '^test_tool/$' [name='sessions_session_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_user_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_group_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_permission_test_tool']>",
"<URLPattern '^test_tool/$' [name='contenttypes_contenttype_test_tool']>",
"<URLPattern '^test_tool/$' [name='admin_logentry_test_tool']>",
]
else:
urlpatterns = [
'<RegexURLPattern sessions_session_test_tool ^test_tool/$>',
'<RegexURLPattern auth_user_test_tool ^test_tool/$>',
'<RegexURLPattern auth_group_test_tool ^test_tool/$>',
'<RegexURLPattern auth_permission_test_tool ^test_tool/$>',
'<RegexURLPattern contenttypes_contenttype_test_tool ^test_tool/$>',
'<RegexURLPattern admin_logentry_test_tool ^test_tool/$>'
]
urlpatterns = [
"<URLPattern '^test_tool/$' [name='sessions_session_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_user_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_group_test_tool']>",
"<URLPattern '^test_tool/$' [name='auth_permission_test_tool']>",
"<URLPattern '^test_tool/$' [name='contenttypes_contenttype_test_tool']>",
"<URLPattern '^test_tool/$' [name='admin_logentry_test_tool']>",
]

for url in urls[0]:
self.assertTrue(url.url_patterns[0].__repr__() in urlpatterns)
21 changes: 7 additions & 14 deletions object_tools/tests/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,16 @@
import object_tools
from django.contrib import admin

if django.VERSION >= (2, 0):
from django.urls import path

urlpatterns = [
path('admin/', admin.site.urls),
path('object-tools/', object_tools.tools.urls),
]
else:
try:
from django.conf.urls.defaults import include, url
except ImportError:
from django.conf.urls import include, url
from django.urls import path

urlpatterns = [
path('admin/', admin.site.urls),
path('object-tools/', object_tools.tools.urls),
]
admin.autodiscover()
object_tools.autodiscover()

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^object-tools/', include(object_tools.tools.urls)),
path('admin/', include(admin.site.urls)),
path('object-tools/', include(object_tools.tools.urls)),
]