Skip to content

"Disable Node" option for categories

Jérome Perrin requested to merge feat/category_disable_node into master

Since a89afa43 (Formulator: Support disabled items in all ItemWidget subclasses., 2014-04-02) we can include disabled items in listfields. This was used for example in erp5_crm to show the services with their hierarchy as disabled items and was useful to display the hierarchy.

In some fields, we don't want user to select "nodes" categories, but only select "leaves" categories (ie. select the most precise category). This always had a problem when using "Indented title" as display method for categories, because the user can not see the actual hierarchy. This is about making it possible to display hierarchy of categories in this case where we select only leaves, so that it displays like this:

screenshot of a category with disabled items for hierarchy

This required to:

  • introduce a new category API, disable_node, which is semantically very close to filter_node except that instead of filtering out node categories that are kept with None as related URL. Symmetrically, we also introduce disable_leave
  • make ParallelListField support disabled items. Even if this was properly supported in underlying fields, some parts in ParallelListField did not differentiate between None and ''.
  • modify several forms to use disable_node instead of filter_node

Merge request reports