2017-04-20 16:28:39 +02:00
===========================================
Wagtail 1.11 release notes - IN DEVELOPMENT
===========================================
.. contents ::
:local:
:depth: 1
What's new
==========
2017-05-13 22:51:40 +02:00
Explorer menu built with the admin API and React
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After more than a year of work, the new explorer menu has finally landed! It comes with the following improvements:
* View all pages - not just the ones with child pages.
* Better performance, no matter the number of pages or levels in the hierarchy.
* Navigate the menu via keyboard.
* View Draft pages, and go to page editing, directly from the menu.
Beyond features, the explorer is built with the new admin API and React components.
This will facilitate further evolutions to make it even faster and user-friendly.
This work is the product of `` 4 `` Wagtail sprints, and the efforts of `` 16 `` people, listed here by order of first involvement:
* Karl Hobley (Cape town sprint, admin API)
* Josh Barr (Cape town sprint, prototype UI)
* Thibaud Colas (Ede sprint, Reykjavík sprint)
* Janneke Janssen (Ede sprint, Reykjavík sprint, Wagtail Space sprint)
* Rob Moorman (Ede sprint, eslint-config-wagtail, ES6+React+Redux styleguide)
* Maurice Bartnig (Ede sprint, i18n and bug fixes)
* Jonny Scholes (code review)
* Matt Westcott (Reykjavík sprint, refactorings)
* Sævar Öfjörð Magnússon (Reykjavík sprint)
* Eirikur Ingi Magnusson (Reykjavík sprint)
* Harris Lapiroff (Reykjavík sprint, tab-accessible navigation)
* Hugo van den Berg (testing, Wagtail Space sprint)
* Olly Willans (UI, UX, Wagtail Space sprint)
* Andy Babic (UI, UX)
* Ben Enright (UI, UX)
* Bertrand Bordage (testing, documentation)
2017-04-20 16:28:39 +02:00
Other features
~~~~~~~~~~~~~~
2016-11-29 16:10:54 +01:00
* Optimised page URL generation by caching site paths in the request scope (Tobias McNulty, Matt Westcott)
2017-04-20 16:28:39 +02:00
Bug fixes
~~~~~~~~~
2017-04-20 17:58:05 +02:00
* Unauthenticated AJAX requests to admin views now return 403 rather than redirecting to the login page (Karl Hobley)
2017-01-27 03:48:19 +01:00
* `` TableBlock `` options `` afterChange `` , `` afterCreateCol `` , `` afterCreateRow `` , `` afterRemoveCol `` , `` afterRemoveRow `` and `` contextMenu `` can now be overridden (Loic Teixeira)
2017-04-20 17:58:05 +02:00
2017-04-20 16:28:39 +02:00
Upgrade considerations
======================
2017-05-13 22:51:40 +02:00
Browser requirements for the new explorer menu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The new explorer menu does not support IE8, IE9, and IE10. The fallback experience is a link pointing to the explorer pages.
2016-11-29 16:10:54 +01:00
Caching of site-level URL information throughout the request cycle
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The `` get_url_parts `` and `` relative_url `` methods on `` Page `` now accept an optional `` request `` keyword argument.
Additionally, two new methods have been added, `` get_url `` (analogous to the `` url `` property) and `` get_full_url ``
(analogous to the `` full_url `` ) property. Whenever possible, these methods should be used instead of the property
versions, and the request passed to each method. For example:
.. code-block :: python
page_url = my_page.url
would become:
.. code-block :: python
page_url = my_page.get_url(request=request)
This enables caching of underlying site-level URL information throughout the request cycle, thereby significantly
reducing the number of cache or SQL queries your site will generate for a given page load. A common use case for these
methods is any custom template tag your project may include for generating navigation menus. For more information,
please refer to :ref: `page_urls` .
Furthermore, if you have overridden `` get_url_parts `` or `` relative_url `` on any of your page models, you will need to
update the method signature to support this keyword argument; most likely, this will involve changing the line:
.. code-block :: python
def get_url_parts(self):
to:
.. code-block :: python
def get_url_parts(self, *args, * *kwargs):
and passing those through at the point where you are calling `` get_url_parts `` on `` super `` (if applicable).
See also: :meth: `wagtail.wagtailcore.models.Page.get_url_parts` , :meth: `wagtail.wagtailcore.models.Page.get_url` ,
:meth: `wagtail.wagtailcore.models.Page.get_full_url` , and :meth: `wagtail.wagtailcore.models.Page.relative_url`