…a was being ignored. This resulted in lots of UPDATE queries for unused ContentItems being generated every time a page was viewed when logged in.
…eved the chain of ancestors This has big effects on the number of queries produced due to the page_info context_processor, especially if the items in 'current_pages' have 'get_absolute_url' called (e.g. bread crumb).
PageManager.public_for_user: First, doing 'obj in qs' is *extremely* inefficient if, as in this case in the context processor, you are discarding the results of qs. Second, an additional query here was not helpful, since the objects had already been fully fetched from the database. An object-level method was therefore preferable, and since PageManager.public_for_user() was not used elsewhere, this was removed and replaced with Page.is_public_for_user() PageManager.shown_in_menu_for_user: Similar to above, in the context of show_menu, using this method just does additional unnecessary queries, when all the needed information has already been fetched. In addition, shown_in_menu_for_user() had a bug - for staff users it showed all Pages in the menu, even if they had 'show_in_menu = False', which surely was not intended. Since shown_in_menu_for_user was not used elsewhere, it was removed, and also PageManager since its only two methods have been removed.
…cript - currently this can be used to override the default CKEDITOR settings, by adding these variables (window.CKEDITOR_CONFIG_TOOLBAR, window.CKEDITOR_CONFIG_FORMAT_TAGS) in a custom admin-extra.js in a separate app which should be placed before 'fiber' in INSTALLED_APPS