diff -Nru django-sitetree-1.7.0/AUTHORS django-sitetree-1.8.0+dfsg/AUTHORS --- django-sitetree-1.7.0/AUTHORS 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/AUTHORS 2017-04-15 04:29:02.000000000 +0000 @@ -37,6 +37,7 @@ Sergey Maranchuk Martey Dodoo Michał Suszko +Piter Vergara Translators diff -Nru django-sitetree-1.7.0/CHANGELOG django-sitetree-1.8.0+dfsg/CHANGELOG --- django-sitetree-1.7.0/CHANGELOG 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/CHANGELOG 2017-04-15 04:29:02.000000000 +0000 @@ -2,6 +2,12 @@ ========================= +v1.8.0 +------ ++ IMPORTANT: i18n trees now support full lang names (e.g. de-ch, pt-br), update your i18n trees aliases. ++ Django 1.11 compatibility improvements. + + v1.7.0 ------ * IMPORTANT: Caching reworked. diff -Nru django-sitetree-1.7.0/debian/changelog django-sitetree-1.8.0+dfsg/debian/changelog --- django-sitetree-1.7.0/debian/changelog 2016-12-25 13:53:01.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/changelog 2017-07-13 13:22:58.000000000 +0000 @@ -1,3 +1,13 @@ +django-sitetree (1.8.0+dfsg-1) unstable; urgency=low + + * New upstream release. + * Repack upstream source to exclude demo app. + * Add patch to fix value of Language fields for django.po files + (Closes: #865943). + * Bump Standards-Version to 4.0.0. + + -- Michael Fladischer Thu, 13 Jul 2017 15:22:58 +0200 + django-sitetree (1.7.0-1) unstable; urgency=low * New upstream release. diff -Nru django-sitetree-1.7.0/debian/control django-sitetree-1.8.0+dfsg/debian/control --- django-sitetree-1.7.0/debian/control 2016-12-25 13:53:01.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/control 2017-07-13 13:22:58.000000000 +0000 @@ -20,7 +20,7 @@ python3-pytest-django, python3-setuptools, python3-sphinx -Standards-Version: 3.9.8 +Standards-Version: 4.0.0 X-Python-Version: >= 2.6 X-Python3-Version: >= 3.2 Homepage: https://github.com/idlesign/django-sitetree diff -Nru django-sitetree-1.7.0/debian/copyright django-sitetree-1.8.0+dfsg/debian/copyright --- django-sitetree-1.7.0/debian/copyright 2016-12-25 13:53:01.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/copyright 2017-07-13 13:22:58.000000000 +0000 @@ -2,6 +2,7 @@ Upstream-Name: django-sitetree Upstream-Contact: Igor Starikov Source: https://github.com/idlesign/django-sitetree +Files-Excluded: demo/ Files: * Copyright: 2010-2014, django-sitetree project diff -Nru django-sitetree-1.7.0/debian/.git-dpm django-sitetree-1.8.0+dfsg/debian/.git-dpm --- django-sitetree-1.7.0/debian/.git-dpm 2016-12-25 13:53:01.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/.git-dpm 2017-07-13 13:22:58.000000000 +0000 @@ -1,11 +1,11 @@ # see git-dpm(1) from git-dpm package -c70849aabf1d13a99b861419f172c9631ac26f7e -c70849aabf1d13a99b861419f172c9631ac26f7e -c70849aabf1d13a99b861419f172c9631ac26f7e -c70849aabf1d13a99b861419f172c9631ac26f7e -django-sitetree_1.7.0.orig.tar.gz -56446df5f77b04fe57c8be497eb6493217277e18 -76951 +b7e1630719f02d2d938d15442af96e933bbec6d1 +b7e1630719f02d2d938d15442af96e933bbec6d1 +d2459a9b3307ba081db6e460a9a6f0973b53e9ee +d2459a9b3307ba081db6e460a9a6f0973b53e9ee +django-sitetree_1.8.0+dfsg.orig.tar.gz +b03f6b98613dbc46825f41195a019f0ce1b424cb +77062 debianTag="debian/%e%v" patchedTag="patched/%e%v" upstreamTag="upstream/%e%u" diff -Nru django-sitetree-1.7.0/debian/patches/0001-Fix-value-of-Language-fields-for-django.po-files.patch django-sitetree-1.8.0+dfsg/debian/patches/0001-Fix-value-of-Language-fields-for-django.po-files.patch --- django-sitetree-1.7.0/debian/patches/0001-Fix-value-of-Language-fields-for-django.po-files.patch 1970-01-01 00:00:00.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/patches/0001-Fix-value-of-Language-fields-for-django.po-files.patch 2017-07-13 13:22:58.000000000 +0000 @@ -0,0 +1,22 @@ +From b7e1630719f02d2d938d15442af96e933bbec6d1 Mon Sep 17 00:00:00 2001 +From: Michael Fladischer +Date: Thu, 13 Jul 2017 14:56:51 +0200 +Subject: Fix value of Language fields for django.po files. + +--- + sitetree/locale/en/LC_MESSAGES/django.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sitetree/locale/en/LC_MESSAGES/django.po b/sitetree/locale/en/LC_MESSAGES/django.po +index 91410dd..a9c7302 100644 +--- a/sitetree/locale/en/LC_MESSAGES/django.po ++++ b/sitetree/locale/en/LC_MESSAGES/django.po +@@ -12,7 +12,7 @@ msgstr "" + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" + "Last-Translator: FULL NAME \n" + "Language-Team: LANGUAGE \n" +-"Language: \n" ++"Language: en\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" diff -Nru django-sitetree-1.7.0/debian/patches/series django-sitetree-1.8.0+dfsg/debian/patches/series --- django-sitetree-1.7.0/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/patches/series 2017-07-13 13:22:58.000000000 +0000 @@ -0,0 +1 @@ +0001-Fix-value-of-Language-fields-for-django.po-files.patch diff -Nru django-sitetree-1.7.0/debian/watch django-sitetree-1.8.0+dfsg/debian/watch --- django-sitetree-1.7.0/debian/watch 2016-12-25 13:53:01.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/debian/watch 2017-07-13 13:22:58.000000000 +0000 @@ -1,4 +1,4 @@ version=3 -opts=filenamemangle=s/.*\/v([\d\.]+.*)$/django-sitetree-$1/ \ +opts=filenamemangle=s/.*\/v([\d\.]+.*)$/django-sitetree-$1/,repacksuffix=+dfsg,dversionmangle=s/\+dfsg$// \ https://github.com/idlesign/django-sitetree/tags \ /idlesign/django-sitetree/archive/v([\d\.]+)\.tar\.gz diff -Nru django-sitetree-1.7.0/docs/source/i18n.rst django-sitetree-1.8.0+dfsg/docs/source/i18n.rst --- django-sitetree-1.7.0/docs/source/i18n.rst 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/docs/source/i18n.rst 2017-04-15 04:29:02.000000000 +0000 @@ -31,11 +31,11 @@ register_i18n_trees(['my_tree', 'my_another_tree']) # After that you need to create trees for languages supported - # in your project, e.g.: `my_tree_en`, `my_tree_ru`. + # in your project, e.g.: `my_tree_en`, `my_tree_ru`, `my_tree_pt-br`. # Then when we address ``my_tree`` from a template django-sitetree will render # an appropriate tree for locale currently active in your project. # See ``activate`` function from ``django.utils.translation`` - # and https://docs.djangoproject.com/en/dev/topics/i18n/internationalization + # and https://docs.djangoproject.com/en/dev/topics/i18n/ # for more information. diff -Nru django-sitetree-1.7.0/docs/source/tags.rst django-sitetree-1.8.0+dfsg/docs/source/tags.rst --- django-sitetree-1.7.0/docs/source/tags.rst 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/docs/source/tags.rst 2017-04-15 04:29:02.000000000 +0000 @@ -174,6 +174,18 @@ This command renders current page description from tree named 'mytree'. +.. _tag-page-hint: + +sitetree_page_hint +------------------ + +This tag is similar to `sitetree_page_description`, but it uses data from tree item `hint` field instead of a `description` fields. + +Usage example:: + + {% sitetree_page_hint from "mytree" %} + + .. _tag-ignore-errors: diff -Nru django-sitetree-1.7.0/setup.py django-sitetree-1.8.0+dfsg/setup.py --- django-sitetree-1.7.0/setup.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/setup.py 2017-04-15 04:29:02.000000000 +0000 @@ -43,5 +43,6 @@ 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', ], ) diff -Nru django-sitetree-1.7.0/sitetree/__init__.py django-sitetree-1.8.0+dfsg/sitetree/__init__.py --- django-sitetree-1.7.0/sitetree/__init__.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/sitetree/__init__.py 2017-04-15 04:29:02.000000000 +0000 @@ -1,4 +1,4 @@ -VERSION = (1, 7, 0) +VERSION = (1, 8, 0) default_app_config = 'sitetree.config.SitetreeConfig' \ No newline at end of file diff -Nru django-sitetree-1.7.0/sitetree/sitetreeapp.py django-sitetree-1.8.0+dfsg/sitetree/sitetreeapp.py --- django-sitetree-1.7.0/sitetree/sitetreeapp.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/sitetree/sitetreeapp.py 2017-04-15 04:29:02.000000000 +0000 @@ -60,6 +60,7 @@ _THREAD_SITETREE = 'sitetree' _URL_TAG_NEW_STYLE = VERSION >= (1, 5, 0) +_CONTEXT_FLATTEN = VERSION >= (1, 11) _UNSET = set() # Sentinel @@ -388,7 +389,7 @@ if alias not in _I18N_TREES: return alias - current_language_code = self.current_lang.replace('_', '-').split('-')[0] + current_language_code = self.current_lang i18n_tree_alias = '%s_%s' % (alias, current_language_code) trees_count = self.cache.get_entry('tree_aliases', i18n_tree_alias) @@ -958,7 +959,7 @@ context.push() context['sitetree_items'] = tree_items - rendered = my_template.render(context) + rendered = my_template.render(context.flatten() if _CONTEXT_FLATTEN else context) context.pop() return rendered diff -Nru django-sitetree-1.7.0/sitetree/templatetags/sitetree.py django-sitetree-1.8.0+dfsg/sitetree/templatetags/sitetree.py --- django-sitetree-1.7.0/sitetree/templatetags/sitetree.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/sitetree/templatetags/sitetree.py 2017-04-15 04:29:02.000000000 +0000 @@ -2,7 +2,7 @@ from django.template.loader import get_template from django.template.base import FilterExpression -from ..sitetreeapp import get_sitetree +from ..sitetreeapp import get_sitetree, _CONTEXT_FLATTEN register = template.Library() @@ -301,7 +301,7 @@ if isinstance(use_template, FilterExpression): use_template = use_template.resolve(context) - content = get_template(use_template).render(context) + content = get_template(use_template).render(context.flatten() if _CONTEXT_FLATTEN else context) context.pop() return content diff -Nru django-sitetree-1.7.0/sitetree/tests/conftest.py django-sitetree-1.8.0+dfsg/sitetree/tests/conftest.py --- django-sitetree-1.7.0/sitetree/tests/conftest.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/sitetree/tests/conftest.py 2017-04-15 04:29:02.000000000 +0000 @@ -9,7 +9,7 @@ from django.http import HttpRequest from django.conf import settings, global_settings from django import VERSION -from django.template.context import Context +from django.template.context import Context, RenderContext from django.template.base import Template @@ -75,8 +75,13 @@ def contribute_to_context(context, current_app=''): - context.template = mock.MagicMock() - context.template.engine.string_if_invalid = '' + template = mock.MagicMock() + template.engine.string_if_invalid = '' + + context.template = template + + if VERSION >= (1, 11): + context.render_context = RenderContext() if VERSION >= (1, 10): match = mock.MagicMock() @@ -178,10 +183,19 @@ """ def render(tag_library, tag_str, context=None): context = context or {} - context = Context(context) + + if not isinstance(context, Context): + context = Context(context) + contribute_to_context(context) string = '{%% load %s %%}{%% %s %%}' % (tag_library, tag_str) - return Template(string).render(context) + template = Template(string) + + if VERSION >= (1, 11): + # Prevent "TypeError: 'NoneType' object is not iterable" in get_exception_info + template.nodelist[1].token.position = (0, 0) + + return template.render(context) return render diff -Nru django-sitetree-1.7.0/sitetree/tests/test_templatetags.py django-sitetree-1.8.0+dfsg/sitetree/tests/test_templatetags.py --- django-sitetree-1.7.0/sitetree/tests/test_templatetags.py 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/sitetree/tests/test_templatetags.py 2017-04-15 04:29:02.000000000 +0000 @@ -42,6 +42,14 @@ {'alias': 'i18tree_ru'}, [{'title': 'Заголовок', 'url': '/url_ru/'}], ) + build_tree( + {'alias': 'i18tree_pt-br'}, + [{'title': 'Meu Título', 'url': '/url_pt-br/'}], + ) + build_tree( + {'alias': 'i18tree_zh-hans'}, + [{'title': '我蒂特', 'url': '/url_zh-hans/'}], + ) register_i18n_trees(['i18tree']) activate('en') @@ -56,6 +64,18 @@ assert '/url_ru/' in result assert 'Заголовок' in result + activate('pt-br') + result = render_template_tag('sitetree', 'sitetree_tree from "i18tree"', mock_template_context()) + + assert '/url_pt-br/' in result + assert 'Meu Título' in result + + activate('zh-hans') + result = render_template_tag('sitetree', 'sitetree_tree from "i18tree"', mock_template_context()) + + assert '/url_zh-hans/' in result + assert '我蒂特' in result + deactivate_all() diff -Nru django-sitetree-1.7.0/tox.ini django-sitetree-1.8.0+dfsg/tox.ini --- django-sitetree-1.7.0/tox.ini 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/tox.ini 2017-04-15 04:29:02.000000000 +0000 @@ -3,8 +3,8 @@ skip_missing_interpreters = True envlist = - py{27,32,33,34}-django{17,18,19,110} - py{35}-django{18,19,110} + py{27,32,33,34}-django{17,18,19,110,111} + py{35,36}-django{18,19,110,111} [testenv] @@ -17,3 +17,4 @@ django18: Django>=1.8,<1.9 django19: Django>=1.9,<1.10 django110: Django>=1.10,<1.11 + django111: Django>=1.11,<1.12 diff -Nru django-sitetree-1.7.0/.travis.yml django-sitetree-1.8.0+dfsg/.travis.yml --- django-sitetree-1.7.0/.travis.yml 2016-12-23 14:24:51.000000000 +0000 +++ django-sitetree-1.8.0+dfsg/.travis.yml 2017-04-15 04:29:02.000000000 +0000 @@ -1,12 +1,14 @@ language: python python: + - 3.6 - 3.5 - 3.4 - 3.3 - 2.7 env: + - DJANGO="Django>=1.11,<1.12" - DJANGO="Django>=1.10,<1.11" - DJANGO="Django>=1.9,<1.10" - DJANGO="Django>=1.8.6,<1.9" @@ -20,10 +22,15 @@ matrix: exclude: + - python: 3.6 + env: DJANGO="Django>=1.7,<1.8" + - python: 3.5 env: DJANGO="Django>=1.7,<1.8" - python: 3.3 + env: DJANGO="Django>=1.11,<1.12" + - python: 3.3 env: DJANGO="Django>=1.10,<1.11" - python: 3.3 env: DJANGO="Django>=1.9,<1.10"