[Python-modules-commits] [django-sitetree] 01/03: Import django-sitetree_1.5.1.orig.tar.gz

Michael Fladischer fladi at moszumanska.debian.org
Sat Dec 26 20:44:42 UTC 2015


This is an automated email from the git hooks/post-receive script.

fladi pushed a commit to branch master
in repository django-sitetree.

commit 2ec67e5b81c45d542cb96f872a73bc64aed30c7c
Author: Michael Fladischer <FladischerMichael at fladi.at>
Date:   Sat Dec 26 21:25:43 2015 +0100

    Import django-sitetree_1.5.1.orig.tar.gz
---
 .travis.yml                                        |  6 +--
 CHANGELOG                                          |  6 +++
 setup.py                                           |  1 +
 sitetree/__init__.py                               |  2 +-
 sitetree/admin.py                                  | 51 ++++++++++++++++------
 sitetree/templates/admin/sitetree/tree/tree.html   | 19 +++++---
 .../admin/sitetree/treeitem/breadcrumbs.html       |  2 +-
 sitetree/templatetags/sitetree_compat.py           |  9 ++++
 tox.ini                                            |  2 +-
 9 files changed, 72 insertions(+), 26 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index fe56aa4..9cb83f6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,7 +8,7 @@ python:
   - 2.6
 
 env:
-  - DJANGO="Django==1.9b1"
+  - DJANGO="Django>=1.9.0,<1.10"
   - DJANGO="Django>=1.8.6,<1.9"
   - DJANGO="Django>=1.7,<1.8"
   - DJANGO="Django>=1.6,<1.7"
@@ -33,12 +33,12 @@ matrix:
      env: DJANGO="Django>=1.4,<1.5"
 
    - python: 3.3
-     env: DJANGO="Django==1.9b1"
+     env: DJANGO="Django>=1.9.0,<1.10"
    - python: 3.3
      env: DJANGO="Django>=1.4,<1.5"
 
    - python: 2.6
-     env: DJANGO="Django==1.9b1"
+     env: DJANGO="Django>=1.9.0,<1.10"
    - python: 2.6
      env: DJANGO="Django>=1.8.6,<1.9"
    - python: 2.6
diff --git a/CHANGELOG b/CHANGELOG
index f968c8f..bab0799 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,12 @@
 django-sitetree changelog
 =========================
 
+
+v1.5.1
+------
+* Django 1.9 compatibility improvements.
+
+
 v1.5.0
 ------
 + Added Norwegian translation.
diff --git a/setup.py b/setup.py
index 8def38f..9de2c87 100755
--- a/setup.py
+++ b/setup.py
@@ -36,5 +36,6 @@ setup(
         'Programming Language :: Python :: 3',
         'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
     ],
 )
diff --git a/sitetree/__init__.py b/sitetree/__init__.py
index 57d1053..7f8aecb 100644
--- a/sitetree/__init__.py
+++ b/sitetree/__init__.py
@@ -1,4 +1,4 @@
-VERSION = (1, 5, 0)
+VERSION = (1, 5, 1)
 
 
 default_app_config = 'sitetree.config.SitetreeConfig'
diff --git a/sitetree/admin.py b/sitetree/admin.py
index 0d0cab0..13970d2 100644
--- a/sitetree/admin.py
+++ b/sitetree/admin.py
@@ -1,4 +1,5 @@
 from django.conf import settings as django_settings
+from django import VERSION as django_version
 from django.core.urlresolvers import get_urlconf, get_resolver
 from django.utils.translation import ugettext_lazy as _
 from django.utils import six
@@ -6,7 +7,12 @@ from django.http import HttpResponseRedirect
 from django.contrib import admin
 from django.contrib.admin.sites import NotRegistered
 from django.contrib import messages
-from django.conf.urls import patterns, url
+from django.conf.urls import url
+
+DJANGO_POST_19 = django_version >= (1, 9, 0)
+
+if not DJANGO_POST_19:
+    from django.conf.urls import patterns as patterns_func
 
 from .settings import MODEL_TREE, MODEL_TREE_ITEM
 from .fields import TreeItemChoiceField
@@ -42,9 +48,9 @@ def get_tree_item_url_name(page, with_namespace=False):
 
 _TREE_URLS = {
     'app': get_app_n_model('MODEL_TREE')[0],
-    'change': get_tree_url_name('change', 'admin:'),
-    'changelist': get_tree_url_name('changelist', 'admin:'),
-    'treeitem_change': get_tree_item_url_name('change', 'admin:')
+    'change': get_tree_url_name('change', True),
+    'changelist': get_tree_url_name('changelist', True),
+    'treeitem_change': get_tree_item_url_name('change', True)
 }
 
 
@@ -125,6 +131,8 @@ class TreeItemAdmin(admin.ModelAdmin):
             return HttpResponseRedirect('../item_add/')
         elif '_save' in request.POST:
             return HttpResponseRedirect('../')
+        elif '_continue' in request.POST:
+            return response
         else:
             return HttpResponseRedirect('')
 
@@ -280,25 +288,42 @@ class TreeAdmin(admin.ModelAdmin):
         super(TreeAdmin, self).__init__(*args, **kwargs)
         self.tree_admin = _ITEM_ADMIN()(MODEL_TREE_ITEM_CLASS, admin.site)
 
+    def render_change_form(self, request, context, **kwargs):
+        context['icon_ext'] = '.svg' if DJANGO_POST_19 else '.gif'
+        context['django19'] = DJANGO_POST_19
+        return super(TreeAdmin, self).render_change_form(request, context, **kwargs)
+
     def get_urls(self):
         """Manages not only TreeAdmin URLs but also TreeItemAdmin URLs."""
         urls = super(TreeAdmin, self).get_urls()
-        sitetree_urls = patterns('',
-            # Trying to be nice and adopt url handling changes in Django 1.4, 1.5 Admin contrib.
+
+        prefix_change = 'change/' if DJANGO_POST_19 else ''
+
+        sitetree_urls = [
+            # Ignore urls.W002. Leading slash is in the right place.
             url(r'^/$', redirects_handler, name=get_tree_item_url_name('changelist')),
-            url(r'^((?P<tree_id>\d+)/)?item_add/$',
+
+            url(r'^((?P<tree_id>\d+)/)?%sitem_add/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_add), name=get_tree_item_url_name('add')),
-            url(r'^(?P<tree_id>\d+)/item_(?P<item_id>\d+)/$',
+
+            url(r'^(?P<tree_id>\d+)/%sitem_(?P<item_id>\d+)/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_edit), name=get_tree_item_url_name('change')),
-            url(r'^item_(?P<item_id>\d+)/$',
+
+            url(r'^%sitem_(?P<item_id>\d+)/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_edit), name=get_tree_item_url_name('change')),
-            url(r'^((?P<tree_id>\d+)/)?item_(?P<item_id>\d+)/delete/$',
+
+            url(r'^((?P<tree_id>\d+)/)?%sitem_(?P<item_id>\d+)/delete/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_delete), name=get_tree_item_url_name('delete')),
-            url(r'^((?P<tree_id>\d+)/)?item_(?P<item_id>\d+)/history/$',
+
+            url(r'^((?P<tree_id>\d+)/)?%sitem_(?P<item_id>\d+)/history/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_history), name=get_tree_item_url_name('history')),
-            url(r'^(?P<tree_id>\d+)/item_(?P<item_id>\d+)/move_(?P<direction>(up|down))/$',
+
+            url(r'^(?P<tree_id>\d+)/%sitem_(?P<item_id>\d+)/move_(?P<direction>(up|down))/$' % prefix_change,
                 self.admin_site.admin_view(self.tree_admin.item_move), name=get_tree_item_url_name('move')),
-        )
+        ]
+
+        if not DJANGO_POST_19:
+            sitetree_urls = patterns_func('', *sitetree_urls)
 
         if SMUGGLER_INSTALLED:
             sitetree_urls += (url(r'^dump_all/$', self.admin_site.admin_view(self.dump_view), name='sitetree_dump'),)
diff --git a/sitetree/templates/admin/sitetree/tree/tree.html b/sitetree/templates/admin/sitetree/tree/tree.html
index 9f22edf..7c9ec72 100644
--- a/sitetree/templates/admin/sitetree/tree/tree.html
+++ b/sitetree/templates/admin/sitetree/tree/tree.html
@@ -5,18 +5,23 @@
 
 <style type="text/css">
     .ctl { width: 14px; height: 12px; display: inline-block;}
+    {% if django19 %}
+    .arr_up { background: url('{{ STATIC_URL }}admin/img/sorting-icons.svg') 0 -28px no-repeat; }
+    .arr_dn { background: url('{{ STATIC_URL }}admin/img/sorting-icons.svg') 0px -56px no-repeat; }
+    {% else %}
     .arr_up { background: url('{{ STATIC_URL }}admin/img/sorting-icons.gif') -5px -50px no-repeat; }
     .arr_dn { background: url('{{ STATIC_URL }}admin/img/sorting-icons.gif') -5px -94px no-repeat; }
+    {% endif %}
 </style>
 {% for item in sitetree_items %}
 	<tr>
-		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.hidden|yesno:"yes,no" }}.gif" alt="{{ item.hidden }}" /></td>
-		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.inmenu|yesno:"yes,no" }}.gif" alt="{{ item.inmenu }}" /></td>
-		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.inbreadcrumbs|yesno:"yes,no" }}.gif" alt="{{ item.inbreadcrumbs }}" /></td>
-		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.insitetree|yesno:"yes,no" }}.gif" alt="{{ item.insitetree }}" /></td>
-		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_restricted|yesno:"yes,no" }}.gif" alt="{{ item.access_restricted }}" /></td>
-        <td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_loggedin|yesno:"yes,no" }}.gif" alt="{{ item.access_loggedin }}" /></td>
-        <td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_guest|yesno:"yes,no" }}.gif" alt="{{ item.access_guest }}" /></td>
+		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.hidden|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.hidden }}" /></td>
+		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.inmenu|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.inmenu }}" /></td>
+		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.inbreadcrumbs|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.inbreadcrumbs }}" /></td>
+		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.insitetree|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.insitetree }}" /></td>
+		<td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_restricted|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.access_restricted }}" /></td>
+        <td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_loggedin|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.access_loggedin }}" /></td>
+        <td class="align-center"><img src="{{ STATIC_URL }}admin/img/icon-{{ item.access_guest|yesno:"yes,no" }}{{ icon_ext }}" alt="{{ item.access_guest }}" /></td>
 		<td>
             {% for d in item.depth_range %}     {% endfor %}
             {% if item.parent %}|—{% endif %}
diff --git a/sitetree/templates/admin/sitetree/treeitem/breadcrumbs.html b/sitetree/templates/admin/sitetree/treeitem/breadcrumbs.html
index 120ca44..626e558 100644
--- a/sitetree/templates/admin/sitetree/treeitem/breadcrumbs.html
+++ b/sitetree/templates/admin/sitetree/treeitem/breadcrumbs.html
@@ -1,5 +1,5 @@
 {% load i18n %}
-{% load url from future %}
+{% load sitetree_compat %}
 
 <div class="breadcrumbs">
     <a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
diff --git a/sitetree/templatetags/sitetree_compat.py b/sitetree/templatetags/sitetree_compat.py
new file mode 100644
index 0000000..aa69a64
--- /dev/null
+++ b/sitetree/templatetags/sitetree_compat.py
@@ -0,0 +1,9 @@
+from django.template import Library
+
+register = Library()
+
+try:
+    # Django < 1.9.0
+    from django.templatetags.future import url
+except ImportError:
+    from django.template.defaulttags import url
diff --git a/tox.ini b/tox.ini
index 2c1d7e1..ac713cb 100644
--- a/tox.ini
+++ b/tox.ini
@@ -30,7 +30,7 @@ deps = Django>=1.7,<1.8
 deps = Django>=1.8,<1.9
 
 [django19]
-deps = Django==1.9b1
+deps = Django==1.9.0
 
 [testenv]
 commands = python sitetree/runtests.py

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-sitetree.git



More information about the Python-modules-commits mailing list