diff --git a/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser/results.html b/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser/results.html
index 78de1e937..a9e25e641 100644
--- a/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser/results.html
+++ b/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser/results.html
@@ -1,8 +1,7 @@
{% load i18n %}
diff --git a/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser_field.html b/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser_field.html
index 317ba89d9..26ffa2959 100644
--- a/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser_field.html
+++ b/wagtail/wagtailsearch/templates/wagtailsearch/queries/chooser_field.html
@@ -1,4 +1,4 @@
-{% extends "wagtailadmin/edit_handlers/field_panel_field.html" %}
+{% extends "wagtailadmin/shared/field.html" %}
{% block form_field %}
diff --git a/wagtail/wagtailsearch/tests/test_backends.py b/wagtail/wagtailsearch/tests/test_backends.py
index fa7b4d9fa..8fab1d152 100644
--- a/wagtail/wagtailsearch/tests/test_backends.py
+++ b/wagtail/wagtailsearch/tests/test_backends.py
@@ -1,12 +1,14 @@
+from six import StringIO
+
from django.test import TestCase
from django.test.utils import override_settings
from django.conf import settings
from django.core import management
+
from wagtail.tests.utils import unittest
from wagtail.wagtailsearch import models, get_search_backend
from wagtail.wagtailsearch.backends.db import DBSearch
from wagtail.wagtailsearch.backends import InvalidSearchBackendError
-from StringIO import StringIO
# Register wagtailsearch signal handlers
@@ -19,7 +21,7 @@ class BackendTests(object):
def setUp(self):
# Search WAGTAILSEARCH_BACKENDS for an entry that uses the given backend path
- for (backend_name, backend_conf) in settings.WAGTAILSEARCH_BACKENDS.iteritems():
+ for backend_name, backend_conf in settings.WAGTAILSEARCH_BACKENDS.items():
if backend_conf['BACKEND'] == self.backend_path:
self.backend = get_search_backend(backend_name)
break
diff --git a/wagtail/wagtailsearch/tests/test_editorspicks.py b/wagtail/wagtailsearch/tests/test_editorspicks.py
index 99debab40..b2ebece9f 100644
--- a/wagtail/wagtailsearch/tests/test_editorspicks.py
+++ b/wagtail/wagtailsearch/tests/test_editorspicks.py
@@ -1,7 +1,7 @@
from django.test import TestCase
from django.core.urlresolvers import reverse
-from wagtail.tests.utils import unittest, WagtailTestUtils
+from wagtail.tests.utils import WagtailTestUtils
from wagtail.wagtailsearch import models
diff --git a/wagtail/wagtailsearch/tests/test_queries.py b/wagtail/wagtailsearch/tests/test_queries.py
index fb47478a2..d4d2797df 100644
--- a/wagtail/wagtailsearch/tests/test_queries.py
+++ b/wagtail/wagtailsearch/tests/test_queries.py
@@ -1,10 +1,10 @@
-from StringIO import StringIO
+from six import StringIO
from django.test import TestCase
from django.core import management
from wagtail.wagtailsearch import models
-from wagtail.tests.utils import unittest, WagtailTestUtils
+from wagtail.tests.utils import WagtailTestUtils
from wagtail.wagtailsearch.utils import normalise_query_string
diff --git a/wagtail/wagtailsearch/views/__init__.py b/wagtail/wagtailsearch/views/__init__.py
index 46e2526f6..7f39327bd 100644
--- a/wagtail/wagtailsearch/views/__init__.py
+++ b/wagtail/wagtailsearch/views/__init__.py
@@ -1 +1 @@
-from frontend import search
\ No newline at end of file
+from wagtail.wagtailsearch.views.frontend import search
\ No newline at end of file
diff --git a/wagtail/wagtailsearch/wagtail_hooks.py b/wagtail/wagtailsearch/wagtail_hooks.py
index 1a656c0ef..3ca4601b3 100644
--- a/wagtail/wagtailsearch/wagtail_hooks.py
+++ b/wagtail/wagtailsearch/wagtail_hooks.py
@@ -2,7 +2,7 @@ from django.core import urlresolvers
from django.conf.urls import include, url
from django.utils.translation import ugettext_lazy as _
-from wagtail.wagtailadmin import hooks
+from wagtail.wagtailcore import hooks
from wagtail.wagtailsearch.urls import admin as admin_urls
from wagtail.wagtailadmin.menu import MenuItem
diff --git a/wagtail/wagtailsnippets/tests.py b/wagtail/wagtailsnippets/tests.py
index ab9b2427d..29a0ae284 100644
--- a/wagtail/wagtailsnippets/tests.py
+++ b/wagtail/wagtailsnippets/tests.py
@@ -1,8 +1,7 @@
from django.test import TestCase
from django.core.urlresolvers import reverse
-from django.contrib.auth.models import User
-from wagtail.tests.utils import unittest, WagtailTestUtils
+from wagtail.tests.utils import WagtailTestUtils
from wagtail.tests.models import Advert, AlphaSnippet, ZuluSnippet
from wagtail.wagtailsnippets.models import register_snippet, SNIPPET_MODELS
diff --git a/wagtail/wagtailsnippets/views/chooser.py b/wagtail/wagtailsnippets/views/chooser.py
index f7905e025..478c66a60 100644
--- a/wagtail/wagtailsnippets/views/chooser.py
+++ b/wagtail/wagtailsnippets/views/chooser.py
@@ -1,5 +1,7 @@
import json
+from six import text_type
+
from django.shortcuts import get_object_or_404
from django.contrib.auth.decorators import permission_required
@@ -35,7 +37,7 @@ def chosen(request, content_type_app_name, content_type_model_name, id):
snippet_json = json.dumps({
'id': item.id,
- 'string': unicode(item),
+ 'string': text_type(item),
})
return render_modal_workflow(
diff --git a/wagtail/wagtailsnippets/wagtail_hooks.py b/wagtail/wagtailsnippets/wagtail_hooks.py
index 3745d1a51..501f29b31 100644
--- a/wagtail/wagtailsnippets/wagtail_hooks.py
+++ b/wagtail/wagtailsnippets/wagtail_hooks.py
@@ -4,7 +4,7 @@ from django.core import urlresolvers
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _
-from wagtail.wagtailadmin import hooks
+from wagtail.wagtailcore import hooks
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailsnippets import urls
diff --git a/wagtail/wagtailusers/models.py b/wagtail/wagtailusers/models.py
index 4e8bfc63d..eb0aa0c9e 100644
--- a/wagtail/wagtailusers/models.py
+++ b/wagtail/wagtailusers/models.py
@@ -1,8 +1,10 @@
from django.db import models
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
+from django.utils.encoding import python_2_unicode_compatible
+@python_2_unicode_compatible
class UserProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
@@ -25,5 +27,5 @@ class UserProfile(models.Model):
def get_for_user(cls, user):
return cls.objects.get_or_create(user=user)[0]
- def __unicode__(self):
+ def __str__(self):
return self.user.username
diff --git a/wagtail/wagtailusers/templates/wagtailusers/list.html b/wagtail/wagtailusers/templates/wagtailusers/list.html
index c31b0bed4..798ab7fb4 100644
--- a/wagtail/wagtailusers/templates/wagtailusers/list.html
+++ b/wagtail/wagtailusers/templates/wagtailusers/list.html
@@ -35,7 +35,7 @@
{{ user.username }} |
{% if user.is_superuser %}{% trans "Admin" %}{% endif %} |
{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %} |
-
+
{% endfor %}
-
\ No newline at end of file
+
diff --git a/wagtail/wagtailusers/wagtail_hooks.py b/wagtail/wagtailusers/wagtail_hooks.py
index d006a4d93..6637430e1 100644
--- a/wagtail/wagtailusers/wagtail_hooks.py
+++ b/wagtail/wagtailusers/wagtail_hooks.py
@@ -2,7 +2,7 @@ from django.conf.urls import include, url
from django.core import urlresolvers
from django.utils.translation import ugettext_lazy as _
-from wagtail.wagtailadmin import hooks
+from wagtail.wagtailcore import hooks
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailusers import urls