mptt_admin 0.2 (jstree для админки django)

Новая опция tree_display(list_display) — позволяет показывать в дереве дополнительные поля.

Из-за особенностей реализации туда можно вставлять фильтры(cм.пример).
Если не заданы tree_title_field и tree_display теперь выводится __unicode__, а переименовывание недоступно. Если задан только tree_display — tree_title_field берется из первого поля tree_display.
Также добавил проверку прав пользователя на удаление/изменение узлов, а в дереве недоступные пользователю команды становятся серыми. Ну и исправлено несколько багов.

from app1.models import Category

from mpttadmin import MpttAdmin

class CategoryAdmin(MpttAdmin):
tree_title_field = 'name'
tree_display = ('name','slug','created|date') #name тут указывать необязательно

class Meta:
model = Category



hg clone http://code.tabed.org/mptt_admin/
Add post to:   Delicious Reddit Slashdot Digg Technorati Google
Make comment

Pingbacks

20.04.2010 3:58 Отображение древовидных данных в админке. @softwaremaniacs.org
Вы не ту ссылку нашли;) http://tabed.org/blog/2010/02/12/mptt_admin-02-jstree-dlya-adminki-django/Вот оформленное в виде приложения, с примером проекта:hg clone http://code.tabed.org/mptt_admin/какая-то версия есть и на pypiСейчас есть гораздо более навороченная версия, в которой деревья могут состоять из

Comments

обалденное расширение. Спасибо! Критику принимаешь? точнее пожелания!

очень бы хотелось через admin.py уметь:

  • кастомайзить меню правой кнопки
  • для не конечных пунктов иметь возможность выбора как реагировать на нажатие левой кнопки (редактировать или открывать дерево)
  • кастомные картинки для треугольничков
  • не рисовать треугольнички для конечного пункта
  • отключабельность загрузки jQuery и ее частей. (например я корежу админку, но с помощью более новой версии jQuery)
  • иметь возможность запоминать открытую ветвь дерева в куках и открывать ее когда возвращаешься к “индексу” модели

могу еще накидать мыслей

кастомайзить меню правой кнопки чтобы там не было rename`а достаточно не задавать соотв. параметр; остальное это javascript и в admin.py ему делать нечего для не конечных пунктов иметь возможность выбора как реагировать на нажатие левой кнопки (редактировать или открывать дерево) ну да что-то такое можно сделать, но это и сейчас легко переопределить яваскриптов кастомные картинки для треугольничков что мешает их подменять сейчас? отключабельность загрузки jQuery и ее частей. (например я корежу админку, но с помощью более новой версии jQuery) jQuery можно несколько раз на странице подключать-ничего не сломается иметь возможность запоминать открытую ветвь дерева в куках и открывать ее когда возвращаешься к “индексу” модели слишком специфично чтобы включать в стандартную поставку, а вот сделать чтобы по #id в адресе открывались соотв ветки надо будет

Прикольная фича для админки — не знал, буду пользоваться.

Александр 15.08.2010 22:21

Здравствуйте… Пользуюсь вашим софтом, прекрасно работает, спасибо. Есть одно пожелание: в mptt для удобства сделаны такие методы как insert_at, move_to и так делее. Они по своей сути вызывают уже действенные методы insert_node, move_node соответственно. Удобно их перекрывать и, при необходимости, добавлять необходимую логику. В исходниках mptt_admin, к сожалению, вызываются именно действенные методы, как например в случае с перемещением узлов мышью:

def move_node(self,request): -> функция mptt_admin

….self.Meta.model.tree.move_node(node,target,position) -> функция mptt

В следствие чего, добавленная логика в перекрытые методы, например в move_to, игнорируется. По этому, думаю лучше будет сделать вот так:

def move_node(self,request): -> функция mptt_admin

….self.Meta.model.move_to(node,target,position) -> функция mptt

тогда добавленная логика будет распространяться и на действие — перемещение мышью узлов.

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image