From df5e59be34f10083a7170693cb6cd8dfd72373bd Mon Sep 17 00:00:00 2001 From: Jesse Sopel Date: Tue, 3 May 2016 10:07:45 -0400 Subject: [PATCH 1/3] [FIX] Compatibility Fixes for Python3 --- wagtail_modeltranslation/models.py | 4 +++- wagtail_modeltranslation/patch_wagtailadmin.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/wagtail_modeltranslation/models.py b/wagtail_modeltranslation/models.py index 2a0c034..9783e1d 100755 --- a/wagtail_modeltranslation/models.py +++ b/wagtail_modeltranslation/models.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- +from __future__ import absolute_import + import logging import django import warnings -from patch_wagtailadmin import WagtailTranslator +from .patch_wagtailadmin import WagtailTranslator from wagtail.wagtailcore.models import Page from wagtail.wagtailsnippets.models import get_snippet_models diff --git a/wagtail_modeltranslation/patch_wagtailadmin.py b/wagtail_modeltranslation/patch_wagtailadmin.py index 088625f..33cccef 100644 --- a/wagtail_modeltranslation/patch_wagtailadmin.py +++ b/wagtail_modeltranslation/patch_wagtailadmin.py @@ -3,6 +3,8 @@ import copy import logging import operator +from six import iteritems + from django.conf import settings from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse @@ -89,7 +91,7 @@ class WagtailTranslator(object): f.required = True # Do the same to the formsets - for related_name, formset in form.formsets.iteritems(): + for related_name, formset in iteritems(form.formsets): if (formset.model in WagtailTranslator._required_fields and WagtailTranslator._required_fields[formset.model]): for fname, f in formset.form.base_fields.items(): @@ -170,7 +172,7 @@ class WagtailTranslator(object): if fname == field_name: return f.required else: - for related_name, formset in cls._base_model_form.formsets.iteritems(): + for related_name, formset in iteritems(cls._base_model_form.formsets): if formset.model == cls._current_model: for fname, f in formset.form.base_fields.items(): if fname == field_name: From d8b3a1d7cf508416e3dc469841abfdae35be6a1f Mon Sep 17 00:00:00 2001 From: Jesse Sopel Date: Tue, 3 May 2016 10:27:28 -0400 Subject: [PATCH 2/3] [FIX] Import reduce from functools for > Python 3.2 --- wagtail_modeltranslation/patch_wagtailadmin.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wagtail_modeltranslation/patch_wagtailadmin.py b/wagtail_modeltranslation/patch_wagtailadmin.py index 33cccef..3fbacd1 100644 --- a/wagtail_modeltranslation/patch_wagtailadmin.py +++ b/wagtail_modeltranslation/patch_wagtailadmin.py @@ -30,6 +30,11 @@ try: except ImportError: pass +try: + from functools import reduce +except ImportError: + pass + logger = logging.getLogger('wagtail.core') From bdacd60188a49ae54b9021c178de8aa9f858307a Mon Sep 17 00:00:00 2001 From: Jesse Sopel Date: Thu, 5 May 2016 13:50:05 -0400 Subject: [PATCH 3/3] [FIX] Fixed more usages of iteritems --- wagtail_modeltranslation/templatetags/modeltranslation.py | 3 ++- .../templatetags/wagtail_modeltranslation.py | 3 ++- wagtail_modeltranslation/wagtail_hooks.py | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/wagtail_modeltranslation/templatetags/modeltranslation.py b/wagtail_modeltranslation/templatetags/modeltranslation.py index 12b2ee0..37ae2af 100644 --- a/wagtail_modeltranslation/templatetags/modeltranslation.py +++ b/wagtail_modeltranslation/templatetags/modeltranslation.py @@ -1,6 +1,7 @@ # coding: utf-8 import re +from six import iteritems from django import template from django.core.urlresolvers import resolve @@ -34,7 +35,7 @@ def change_lang(context, lang=None, *args, **kwargs): translated_url = '/' + lang + '/' + path_components[0] + '/' if request.GET: translated_url += '?' - for key, value in request.GET.iteritems(): + for key, value in iteritems(request.GET): translated_url += key + '=' + value return translated_url diff --git a/wagtail_modeltranslation/templatetags/wagtail_modeltranslation.py b/wagtail_modeltranslation/templatetags/wagtail_modeltranslation.py index 12b2ee0..37ae2af 100644 --- a/wagtail_modeltranslation/templatetags/wagtail_modeltranslation.py +++ b/wagtail_modeltranslation/templatetags/wagtail_modeltranslation.py @@ -1,6 +1,7 @@ # coding: utf-8 import re +from six import iteritems from django import template from django.core.urlresolvers import resolve @@ -34,7 +35,7 @@ def change_lang(context, lang=None, *args, **kwargs): translated_url = '/' + lang + '/' + path_components[0] + '/' if request.GET: translated_url += '?' - for key, value in request.GET.iteritems(): + for key, value in iteritems(request.GET): translated_url += key + '=' + value return translated_url diff --git a/wagtail_modeltranslation/wagtail_hooks.py b/wagtail_modeltranslation/wagtail_hooks.py index 6758a35..0724b1a 100644 --- a/wagtail_modeltranslation/wagtail_hooks.py +++ b/wagtail_modeltranslation/wagtail_hooks.py @@ -1,6 +1,7 @@ # coding: utf-8 import json +from six import iteritems from django.utils.html import format_html, format_html_join from django.conf import settings @@ -52,7 +53,7 @@ def return_translation_target_field_rendered_html(request, page_id): target_field_patched = [] for item in origin_field_serialized: patched_item = None - for att in item.iteritems(): + for att in iteritems(item): target_value = att[1] if att[0] == 'name': target_value = att[1].replace(