Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Пара фич #38

Closed
wants to merge 14 commits into from
Closed

Пара фич #38

wants to merge 14 commits into from

Conversation

pws21
Copy link
Contributor

@pws21 pws21 commented Nov 29, 2011

Привет.
Мне понадобились пара фич в проекте. Может они достойны включения в sitetree? ;)

  1. autohide_branch
    У меня есть меню:
    Договора
    |--Поиск договора
    |--Новый договор

Мне нужно было, чтобы когда пользователь находит договор и переходит на его страницу меню становилось таким:
Договора
|-- Поиск договора
|-- Новый договор
|-- Договор № 12345
|------ Организация
|---------- Банковские атрибуты
|------ Технические характеристики
|---------- ....
|------ Финансы
|---------- Платежи
То есть мне нужно было, чтобы ветка отображалась, только когда я стаю на ее корне или потомке.
Можно было конечно в тупую написать в темплэйте if item.alias == "current-contract" and not item.in_current_branch then invisible, но похожих мест планируется как минимум три.

Да, кстати, я заменил
elif branch_id.isalnum():
на
else:
так как в алиасах очень хочется использовать имена с тире или нижнем подчеркиванием.

  1. атрибут has_visible_children
    Иногда хочется знать, не просто есть ли потомки у элемента, а есть ли у него потомки, которые будут реально отображены, например в меню. Причем хочется это знать, стоя на родительском элементе, до вызова sitetree_children.

@vosi
Copy link
Contributor

vosi commented Nov 29, 2011

по п 2 мой +1

@idlesign
Copy link
Owner

Приветствую, Павел,

Номер два действительно выглядит привлекательным, спасибо. На неделе погляжу поближе.

idlesign added a commit that referenced this pull request Dec 14, 2011
@idlesign
Copy link
Owner

Приглядевшись понял, что has_children должен как раз подразумевать has_visible_children.

@idlesign
Copy link
Owner

На заметку: слово «договор» во мн. ч. — это «договоры», а не «договора» %)

@pws21
Copy link
Contributor Author

pws21 commented Dec 14, 2011

Ну в общем да, хотя возможно для кого-то будет иметь значение наличие любых элементов.
А что думаешь насчет autohide_branch? Может есть альтернативный путь, но я его не увидел.
Спасибо за замечание, у мене было 3 по русская языка %)

@idlesign
Copy link
Owner

Про autohide_branch подумаю на досуге.

@idlesign
Copy link
Owner

Паш, по номеру 2 есть смысл в шаблоне ориентироваться по свойству resolved_url элемента дерева: если мы не стоим на нужной ветке в свойстве будет #unresolved, что можно считать сигналом к тому, что выводить ветку не нужно.

По мне так, если добавлять галку автоскрытия, то пусть она будет работать на скрытие неразресолвленных элементов — потенциально больше случаев использования.

Думаем дальше.

@pws21
Copy link
Contributor Author

pws21 commented Dec 20, 2011

Да, можно в шаблоне. Но дело не в том, что считать сигналом, а в том к каким элементам этот сигнал применить, а к каким нет. Меня интересуют не только элементы с параметрами.

Меня все чаще посещает мысль, что у некоторых проектов будет неизбежно возникать необходимость экстендить TreeItem one-to-one или one-to-many потому что нужно хранить разные характерные для приложения данные, связанные с конкретным элементом. Например, url иконки, признак автоскрытия, css class, тэги и др.
Как можно заэкстендить TreeItem так, чтобы я мог inline подставлять на страницу редактирования свои модели с дополнительными данными? Вот что наверное на самом деле нужно разъяснить мне и другим людям. Иначе периодически так и будут всплывать ветки, где в TreeItem добавляется какое-нибудь дополнительное поле, которое никому не нужно кроме коммитера.

@idlesign
Copy link
Owner

idlesign commented Feb 9, 2012

Закрываю эту тему как частично решённую и в пользу #47.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants