diff --git a/.gitignore b/.gitignore index ce17a1e..8bc8dcb 100755 --- a/.gitignore +++ b/.gitignore @@ -27,5 +27,7 @@ pip-log.txt .tox nosetests.xml +.pypirc + # Sphinx _build diff --git a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js index 74aa323..8a7c0c5 100644 --- a/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js +++ b/wagtail_modeltranslation/static/modeltranslation/js/copy_stream_fields.js @@ -1,4 +1,3 @@ - /* Creates the copy buttons in the header of each stream field */ $(document).ready(function(){ //All the stream fields with all his content @@ -25,7 +24,6 @@ $(document).ready(function(){ }; }; - /* on click binding */ $('.translation-field-copy').click(function(event){ event.preventDefault(); @@ -42,8 +40,10 @@ function requestCopyField(originID, targetID) { var serializedOriginField = $.grep(serializedForm, function(obj){return obj.name.indexOf(originID) >= 0;}); var jsonString = JSON.stringify(serializedOriginField); - /* AJAX request that returns the html content of originID field - with the id's changed to targetID */ + /* + * AJAX request that returns the html content of originID field + * with the id's changed to targetID + */ $.ajax({ url: 'copy_translation_content', type: 'GET', @@ -55,8 +55,8 @@ function requestCopyField(originID, targetID) { var wrapperDiv = $("#"+targetID+"-count").parents('.input')[0]; $(wrapperDiv).html(data); }) - .fail(function() { - console.log("error"); + .fail(function(error) { + console.log("wagtail-modeltranslation error: %s", error); }) - + } \ No newline at end of file diff --git a/wagtail_modeltranslation/static/wagtail_modeltranslation/js/translated_slugs.js b/wagtail_modeltranslation/static/wagtail_modeltranslation/js/translated_slugs.js deleted file mode 100644 index 5626714..0000000 --- a/wagtail_modeltranslation/static/wagtail_modeltranslation/js/translated_slugs.js +++ /dev/null @@ -1,15 +0,0 @@ -$(document).ready(function() { - $.each(langs, function(idx, lang_code){ - $('#id_title_'+lang_code).on('focus', function() { - $('#id_slug_'+lang_code).data('previous-val', $('#id_slug_'+lang_code).val()); - $(this).data('previous-val', $(this).val()); - }); - - $('#id_title_'+lang_code).on('keyup keydown keypress blur', function() { - if ($('body').hasClass('create') || (!$('#id_slug_'+lang_code).data('previous-val').length || cleanForSlug($('#id_title_'+lang_code).data('previous-val')) === $('#id_slug_'+lang_code).data('previous-val'))) { - // only update slug if the page is being created from scratch, if slug is completely blank, or if title and slug prior to typing were identical - $('#id_slug_'+lang_code).val(cleanForSlug($('#id_title_'+lang_code).val())); - } - }); - }); -}); \ No newline at end of file diff --git a/wagtail_modeltranslation/wagtail_hooks.py b/wagtail_modeltranslation/wagtail_hooks.py index 8d6cc07..77af94b 100644 --- a/wagtail_modeltranslation/wagtail_hooks.py +++ b/wagtail_modeltranslation/wagtail_hooks.py @@ -6,8 +6,10 @@ from django.utils.html import format_html, format_html_join from django.conf import settings from django.conf.urls import url from django.http import QueryDict +from django.http import HttpResponse from wagtail.wagtailcore import hooks +from wagtail.wagtailcore.models import Page @hooks.register('insert_editor_js') @@ -16,8 +18,8 @@ def translated_slugs(): 'modeltranslation/js/wagtail_translated_slugs.js', ] - js_includes = format_html_join('\n', '', - ((settings.STATIC_URL, filename) for filename in js_files) + js_includes = format_html_join('\n', '', ( + (settings.STATIC_URL, filename) for filename in js_files) ) lang_codes = [] @@ -32,21 +34,19 @@ def translated_slugs(): ############################################################################### # Copy StreamFields content ############################################################################### -""" -Ajax view that allows to duplicate content -between translated streamfields -""" -from django.http import HttpResponse - def return_translation_target_field_rendered_html(request, page_id): - from wagtail.wagtailcore.models import Page + """ + Ajax view that allows to duplicate content + between translated streamfields + """ 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_serialized = json.loads(request.GET.get('serializedOriginField')) + origin_field_serialized = json.loads( + request.GET.get('serializedOriginField')) # Patch field prefixes from origin field to target field target_field_patched = [] @@ -55,7 +55,8 @@ def return_translation_target_field_rendered_html(request, page_id): for att in item.iteritems(): target_value = att[1] if att[0] == 'name': - target_value = att[1].replace(origin_field_name, target_field_name) + target_value = att[1].replace( + origin_field_name, target_field_name) patched_item = {"name": target_value} else: patched_item["value"] = att[1] @@ -68,38 +69,42 @@ def return_translation_target_field_rendered_html(request, page_id): q_data.update({item['name']: item['value']}) # get render html - + target_field = page.specific._meta.get_field(target_field_name) - value_data = target_field.stream_block.value_from_datadict(q_data, {}, target_field_name) - target_field_content_html = target_field.formfield().widget.render(target_field_name, value_data) + value_data = target_field.stream_block.value_from_datadict( + q_data, {}, target_field_name) + target_field_content_html = target_field.formfield().widget.render( + target_field_name, value_data) # return html json - return HttpResponse(json.dumps(target_field_content_html), content_type='application/json') + return HttpResponse( + json.dumps(target_field_content_html), content_type='application/json') @hooks.register('register_admin_urls') def copy_streamfields_content(): - + return [ - url(r'(?P\d+)/edit/copy_translation_content$', return_translation_target_field_rendered_html, name='' ), + url(r'(?P\d+)/edit/copy_translation_content$', + return_translation_target_field_rendered_html, name=''), ] @hooks.register('insert_editor_js') def streamfields_translation_copy(): """ - Includes script in editor html file that creates - buttons to copy content between translated stream fields + Includes script in editor html file that creates + buttons to copy content between translated stream fields and send a ajax request to copy the content. """ - #includes the java script file in the html file + # includes the java script file in the html file js_files = [ 'modeltranslation/js/copy_stream_fields.js', ] - js_includes = format_html_join('\n', '', - ((settings.STATIC_URL, filename) for filename in js_files) + js_includes = format_html_join('\n', '', ( + (settings.STATIC_URL, filename) for filename in js_files) ) return js_includes