diff --git a/categories/editor/settings.py b/categories/editor/settings.py index 9f4658a..cd83e10 100644 --- a/categories/editor/settings.py +++ b/categories/editor/settings.py @@ -9,3 +9,5 @@ if STATIC_URL == None: MEDIA_PATH = getattr(settings, 'EDITOR_MEDIA_PATH', '%seditor/' % STATIC_URL) TREE_INITIAL_STATE = getattr(settings, 'EDITOR_TREE_INITIAL_STATE', 'collapsed') + +IS_GRAPPELLI_INSTALLED = True if 'grappelli' in settings.INSTALLED_APPS else False diff --git a/categories/editor/templates/admin/editor/grappelli_tree_editor.html b/categories/editor/templates/admin/editor/grappelli_tree_editor.html new file mode 100644 index 0000000..34da30e --- /dev/null +++ b/categories/editor/templates/admin/editor/grappelli_tree_editor.html @@ -0,0 +1,38 @@ +{% extends "admin/change_list.html" %} +{% load adminmedia admin_list i18n admin_tree_list %} +{% block extrahead %} + {{block.super}} + +{% endblock %} +{% block result_list %} + {% result_tree_list cl %} + {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %} +{% endblock %} diff --git a/categories/editor/templates/admin/editor/grappelli_tree_list_results.html b/categories/editor/templates/admin/editor/grappelli_tree_list_results.html new file mode 100644 index 0000000..379471e --- /dev/null +++ b/categories/editor/templates/admin/editor/grappelli_tree_list_results.html @@ -0,0 +1,28 @@ +{% if result_hidden_fields %} +
{# DIV for HTML validation #} + {% for item in result_hidden_fields %}{{ item }}{% endfor %} +
+{% endif %} + +{% if results %} +
+ + + + {% for header in result_headers %} + + {% endfor %} + + + + {% for result in results %} + {% for item in result %}{{ item }}{% endfor %} + {% endfor %} + +
+ {% if header.sortable %}{% endif %} + {{ header.text|capfirst }} + {% if header.sortable %}{% endif %} +
+
+{% endif %} \ No newline at end of file diff --git a/categories/editor/templates/admin/editor/tree_editor.html b/categories/editor/templates/admin/editor/tree_editor.html index 34da30e..08b7d2f 100644 --- a/categories/editor/templates/admin/editor/tree_editor.html +++ b/categories/editor/templates/admin/editor/tree_editor.html @@ -5,7 +5,7 @@ {% endblock %} {% block result_list %} + {% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %} {% result_tree_list cl %} {% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/categories/editor/templates/admin/editor/tree_list_results.html b/categories/editor/templates/admin/editor/tree_list_results.html index 379471e..e5f1784 100644 --- a/categories/editor/templates/admin/editor/tree_list_results.html +++ b/categories/editor/templates/admin/editor/tree_list_results.html @@ -1,28 +1,24 @@ {% if result_hidden_fields %} -
{# DIV for HTML validation #} - {% for item in result_hidden_fields %}{{ item }}{% endfor %} -
+
{# DIV for HTML validation #} +{% for item in result_hidden_fields %}{{ item }}{% endfor %} +
{% endif %} - {% if results %} -
- - - - {% for header in result_headers %} - - {% endfor %} - - - - {% for result in results %} - {% for item in result %}{{ item }}{% endfor %} - {% endfor %} - -
- {% if header.sortable %}{% endif %} - {{ header.text|capfirst }} - {% if header.sortable %}{% endif %} -
+
+ + + +{% for header in result_headers %} +{% if header.sortable %}{% endif %} +{{ header.text|capfirst }} +{% if header.sortable %}{% endif %}{% endfor %} + + + +{% for result in results %} +{% for item in result %}{{ item }}{% endfor %} +{% endfor %} + +
{% endif %} \ No newline at end of file diff --git a/categories/editor/templatetags/admin_tree_list.py b/categories/editor/templatetags/admin_tree_list.py index 61ff5dd..658bd41 100644 --- a/categories/editor/templatetags/admin_tree_list.py +++ b/categories/editor/templatetags/admin_tree_list.py @@ -12,8 +12,14 @@ from django.utils.encoding import smart_unicode, force_unicode from django.utils.html import escape, conditional_escape from django.utils.safestring import mark_safe +from categories.editor import settings + register = Library() +TREE_LIST_RESULTS_TEMPLATE = 'admin/editor/tree_list_results.html' +if settings.IS_GRAPPELLI_INSTALLED: + TREE_LIST_RESULTS_TEMPLATE = 'admin/editor/grappelli_tree_list_results.html' + def items_for_tree_result(cl, result, form): """ @@ -145,4 +151,4 @@ def result_tree_list(cl): from django.contrib.admin.templatetags.admin_list import result_hidden_fields result['result_hidden_fields'] = list(result_hidden_fields(cl)) return result -result_tree_list = register.inclusion_tag("admin/editor/tree_list_results.html")(result_tree_list) +result_tree_list = register.inclusion_tag(TREE_LIST_RESULTS_TEMPLATE)(result_tree_list) diff --git a/categories/editor/tree_editor.py b/categories/editor/tree_editor.py index bb43ac4..87855e7 100644 --- a/categories/editor/tree_editor.py +++ b/categories/editor/tree_editor.py @@ -104,10 +104,15 @@ class TreeEditor(admin.ModelAdmin): self.list_display.remove('action_checkbox') opts = self.model._meta + + grappelli_prefix = "" + if settings.IS_GRAPPELLI_INSTALLED: + grappelli_prefix = "grappelli_" + self.change_list_template = [ - 'admin/%s/%s/editor/tree_editor.html' % (opts.app_label, opts.object_name.lower()), - 'admin/%s/editor/tree_editor.html' % opts.app_label, - 'admin/editor/tree_editor.html', + 'admin/%s/%s/editor/%stree_editor.html' % (opts.app_label, opts.object_name.lower(), grappelli_prefix), + 'admin/%s/editor/%stree_editor.html' % (opts.app_label, grappelli_prefix), + 'admin/editor/%stree_editor.html' % grappelli_prefix, ] def get_changelist(self, request, **kwargs):