From 4309b1071b0c2e8d064b26724511a679b0d6c393 Mon Sep 17 00:00:00 2001 From: Dennis Pratter Date: Mon, 4 Jul 2016 16:04:36 +0200 Subject: [PATCH 1/4] Print error response in requestCopyField() js function --- .../static/modeltranslation/js/copy_stream_fields.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js index 6f4ee9b..14e8c5c 100644 --- a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js +++ b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js @@ -59,7 +59,7 @@ function requestCopyField(originID, targetID) { $(wrapperDiv).html(data); }) .fail(function(error) { - console.log("wagtail-modeltranslation error: %s", error); + console.log("wagtail-modeltranslation error: %s", error.responseText); }) } From b84b2cd6b3d7126d56bfd27b125c42aa835e45a9 Mon Sep 17 00:00:00 2001 From: Dennis Pratter Date: Mon, 4 Jul 2016 16:30:45 +0200 Subject: [PATCH 2/4] Use POST requests to copy StreamFields, Fixes #74 --- .../static/modeltranslation/js/copy_stream_fields.js | 2 +- wagtail_modeltranslation/wagtail_hooks.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js index 14e8c5c..670e1a7 100644 --- a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js +++ b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js @@ -49,7 +49,7 @@ function requestCopyField(originID, targetID) { */ $.ajax({ url: 'copy_translation_content', - type: 'GET', + type: 'POST', dataType: 'json', data: {'origin_field_name': originID, 'target_field_name': targetID, 'serializedOriginField': jsonString}, }) diff --git a/wagtail_modeltranslation/wagtail_hooks.py b/wagtail_modeltranslation/wagtail_hooks.py index 6758a35..1ee2ac6 100644 --- a/wagtail_modeltranslation/wagtail_hooks.py +++ b/wagtail_modeltranslation/wagtail_hooks.py @@ -7,6 +7,7 @@ from django.conf import settings from django.conf.urls import url from django.http import QueryDict from django.http import HttpResponse +from django.views.decorators.csrf import csrf_exempt from wagtail.wagtailcore import hooks from wagtail.wagtailcore.models import Page @@ -34,6 +35,7 @@ def translated_slugs(): ############################################################################### # Copy StreamFields content ############################################################################### +@csrf_exempt def return_translation_target_field_rendered_html(request, page_id): """ Ajax view that allows to duplicate content @@ -43,10 +45,10 @@ def return_translation_target_field_rendered_html(request, page_id): page = Page.objects.get(pk=page_id) if request.is_ajax(): - origin_field_name = request.GET.get('origin_field_name') - target_field_name = request.GET.get('target_field_name') + origin_field_name = request.POST.get('origin_field_name') + target_field_name = request.POST.get('target_field_name') origin_field_serialized = json.loads( - request.GET.get('serializedOriginField')) + request.POST.get('serializedOriginField')) # Patch field prefixes from origin field to target field target_field_patched = [] From 13b561aad378880c049acccba998bf5e2a8980e3 Mon Sep 17 00:00:00 2001 From: Benjamin Bach Date: Wed, 21 Sep 2016 22:17:26 +0200 Subject: [PATCH 3/4] Fix tests (cherry picked from commit 10bb675d4dcd8bc31b18d3b2605aaf6d40f9e90e) --- wagtail_modeltranslation/tests/tests.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wagtail_modeltranslation/tests/tests.py b/wagtail_modeltranslation/tests/tests.py index d6e20d0..e0bd5a4 100755 --- a/wagtail_modeltranslation/tests/tests.py +++ b/wagtail_modeltranslation/tests/tests.py @@ -143,7 +143,9 @@ class ModeltranslationTransactionTestBase(TransactionTestCase): # tests app has been added into INSTALLED_APPS and loaded # (that's why this is not imported in normal import section) global models, translation - from wagtail_modeltranslation.tests import models, translation + from wagtail_modeltranslation.tests import models as t_models, translation as t_translation + models = t_models + translation = t_translation def setUp(self): self._old_language = get_language() From 87e2201b64cd1a7499aefe244a30d8b75e756e4e Mon Sep 17 00:00:00 2001 From: Benjamin Bach Date: Wed, 21 Sep 2016 22:54:41 +0200 Subject: [PATCH 4/4] Fix travis config and add tox (cherry picked from commit 3126b4e1465262ea34fb06bede4b0ec13052f33a) --- .travis.yml | 20 +++++++++--------- tox.ini | 27 +++++++++++++++++++++++++ wagtail_modeltranslation/tests/tests.py | 18 ++++++++--------- 3 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 tox.ini diff --git a/.travis.yml b/.travis.yml index ab471d2..8ef4027 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,14 @@ language: "python" python: - "2.7" - - "3.2" - - "3.3" - - "3.4" - - "3.5" +cache: pip +install: travis_retry pip install "virtualenv<14.0.0" tox +script: tox -e $TOX_ENV env: - - DJANGO=1.8, DB=sqlite - - DJANGO=1.8, DB=postgres - - DJANGO=1.8, DB=mysql - - DJANGO=1.9, DB=sqlite - - DJANGO=1.9, DB=postgres - - DJANGO=1.9, DB=mysql + - TOX_ENV=django18-py27, DB=sqlite + - TOX_ENV=django18-py27, DB=postgres + - TOX_ENV=django18-py27, DB=mysql + - TOX_ENV=django19-py27, DB=sqlite + - TOX_ENV=django19-py27, DB=postgres + - TOX_ENV=django19-py27, DB=mysql +script: tox -e $TOX_ENV diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..92bb242 --- /dev/null +++ b/tox.ini @@ -0,0 +1,27 @@ +[tox] +envlist = + django18-py{27} + +[testenv] +deps = + django18: {[django]1.8.x} + django19: {[django]1.9.x} + wagtail>=1.6,<1.7 + +commands = ./runtests.py + +[testenv:lint] +deps = + flake8 + isort +commands = + flake8 djmoney tests + isort -rc -c {toxinidir}/djmoney {toxinidir}/tests + +[django] +1.8.x = + Django>=1.8.0,<1.9.0 +1.9.x = + Django>=1.9.0,<1.10.0 +1.10.x = + Django>=1.10.0,<1.11.0 diff --git a/wagtail_modeltranslation/tests/tests.py b/wagtail_modeltranslation/tests/tests.py index e0bd5a4..482d149 100755 --- a/wagtail_modeltranslation/tests/tests.py +++ b/wagtail_modeltranslation/tests/tests.py @@ -2,6 +2,8 @@ import datetime import imp import shutil +import unittest + from decimal import Decimal import django @@ -130,15 +132,6 @@ class ModeltranslationTransactionTestBase(TransactionTestCase): from wagtail_modeltranslation.models import handle_translation_registrations handle_translation_registrations() - # 5. makemigrations - from django.db import connections, DEFAULT_DB_ALIAS - call_command('makemigrations', verbosity=2, interactive=False, - database=connections[DEFAULT_DB_ALIAS].alias) - - # 6. Syncdb - call_command('migrate', verbosity=0, migrate=False, interactive=False, run_syncdb=True, - database=connections[DEFAULT_DB_ALIAS].alias, load_initial_data=False) - # A rather dirty trick to import models into module namespace, but not before # tests app has been added into INSTALLED_APPS and loaded # (that's why this is not imported in normal import section) @@ -147,6 +140,12 @@ class ModeltranslationTransactionTestBase(TransactionTestCase): models = t_models translation = t_translation + from django.db import connections, DEFAULT_DB_ALIAS + # 6. Syncdb + call_command('migrate', verbosity=0, migrate=False, interactive=False, run_syncdb=True, + database=connections[DEFAULT_DB_ALIAS].alias, load_initial_data=False) + + def setUp(self): self._old_language = get_language() trans_real.activate('de') @@ -2172,6 +2171,7 @@ class ModelInheritanceFieldAggregationTest(ModeltranslationTestBase): class UpdateCommandTest(ModeltranslationTestBase): + @unittest.skipIf('tox' in os.environ.get('VIRTUAL_ENV', ""), 'running the below command is no good in Tox') def test_update_command(self): # Here it would be convenient to use fixtures - unfortunately, # fixtures loader doesn't use raw sql but rather creates objects,