Releases: wagtail/wagtail
Releases · wagtail/wagtail
1.2
- Added
wagtail.contrib.settings
, a module to allow administrators to edit site-specific settings - Core templatetags (pageurl, image, wagtailuserbar, etc) are now compatible with Jinja2
- Redirects can now be created for specific sites
- The Page.get_latest_revision_as_page method now returns the live page object if there are no draft changes to the page
- Image and document models now provide a
search
method on their QuerySets - Search methods now accept an
operator
argument to determine whether multiple terms are ORed or ANDed together - Search methods now accept an
order_by_relevance
argument, which can be set to False to preserve the original QuerySet ordering - InlinePanel now accepts
max_num
andmin_num
arguments to limit the number of inline items - 'Add' button on inline panels is disabled when
max_num
is reached (Salvador Faria) - StreamField blocks now provide a
get_context
method for passing additional variables to the block template - Wagtail API now incorporates the browsable front-end provided by Django REST Framework
- Python 3.5 support
- WagtailRedirectMiddleware can now ignore the query string if there is no redirect that exactly matches it (Michael Cordover)
- Order of URL parameters now ignored by redirect middleware (Michael Cordover)
- Added SQL Server compatibility to image migration (Timothy Allen)
- Added classnames to Wagtail rich text editor buttons to aid custom styling (Rob Shelton)
- Simplified body_class in default homepage template (Josh Barr)
- page_published signal now called with the revision object that was published (Josh Barr)
- Added an overrideable favicon to the admin interface
- Added spinner animations to long-running form submissions
- The EMBEDLY_KEY setting has been renamed to WAGTAILEMBEDS_EMBEDLY_KEY (Anurag Sharma)
- StreamField blocks are now added automatically, without showing the block types menu, if only one block type exists (Alex Gleason)
- Wagtail admin now standardises on a single thumbnail image size, to reduce the overhead of creating multiple renditions
- The
first_published_at
andlatest_revision_created_at
fields on page models are now available as filter fields on search queries - Rich text fields now strip out HTML comments
- Page editor form now sets enctype="multipart/form-data" as appropriate, allowing FileField to be used on page models (Petr Vacha)
- Explorer navigation menu on a completely empty page tree now takes you to the root level, rather than doing nothing
- Added animation and fixed display issues when focusing a rich text field (Alex Gleason)
- Added a system check to warn if Pillow is compiled without JPEG / PNG support
- Page chooser now prevents users from selecting the root node where this would be invalid
- New translations for Dutch (Netherlands), Georgian, Swedish and Turkish (Turkey)
- Fix: Page slugs are no longer auto-updated from the page title if the page is already published
- Fix: Deleting a page permission from the groups admin UI does not immediately submit the form
- Fix: Wagtail userbar is shown on pages that do not pass a
page
variable to the template (e.g. because they override theserve
method) - Fix: request.site now set correctly on page preview when the page is not in the default site
- Fix: Project template no longer raises a deprecation warning (Maximilian Stauss)
- Fix:
PageManager.sibling_of(page)
andPageManager.not_sibling_of(page)
now default to inclusive (i.e.page
is considered a sibling of itself), for consistency with other sibling methods - Fix: The "view live" button displayed after publishing a page now correctly reflects any changes made to the page slug (Ryan Pineo)
- Fix: API endpoints now accept and ignore the
_
query parameter used by jQuery for cache-busting - Fix: Page slugs are no longer cut off when Unicode characters are expanded into multiple characters (Sævar Öfjörð Magnússon)
- Fix: Searching a specific page model while filtering it by either ID or tree position no longer raises an error (Ashia Zawaduk)
- Fix: Scrolling an over-long explorer menu no longer causes white background to show through (Alex Gleason)
- Fix: Removed jitter when hovering over StreamField blocks (Alex Gleason)
- Fix: Non-ASCII email addresses no longer throw errors when generating Gravatar URLs (Denis Voskvitsov, Kyle Stratis)
- Fix: Dropdowns for ForeignKeys are now styled consistently (Ashia Zawaduk)
- Fix: Date choosers now appear on top of StreamField menus (Sergey Nikitin)
- Fix: Fixed a migration error that was raised when block-updating from 0.8 to 1.1+
- Fix: Page copy no longer breaks on models with a ClusterTaggableManager or ManyToManyField
- Fix: Validation errors when inserting an embed into a rich text area are now reported back to the editor
1.2rc1
- Added
wagtail.contrib.settings
, a module to allow administrators to edit site-specific settings - Core templatetags (pageurl, image, wagtailuserbar, etc) are now compatible with Jinja2
- Redirects can now be created for specific sites
- The Page.get_latest_revision_as_page method now returns the live page object if there are no draft changes to the page
- Image and document models now provide a
search
method on their QuerySets - Search methods now accept an
operator
argument to determine whether multiple terms are ORed or ANDed together - Search methods now accept an
order_by_relevance
argument, which can be set to False to preserve the original QuerySet ordering - InlinePanel now accepts
max_num
andmin_num
arguments to limit the number of inline items - 'Add' button on inline panels is disabled when
max_num
is reached (Salvador Faria) - StreamField blocks now provide a
get_context
method for passing additional variables to the block template - Wagtail API now incorporates the browsable front-end provided by Django REST Framework
- WagtailRedirectMiddleware can now ignore the query string if there is no redirect that exactly matches it (Michael Cordover)
- Order of URL parameters now ignored by redirect middleware (Michael Cordover)
- Added SQL Server compatibility to image migration (Timothy Allen)
- Added classnames to Wagtail rich text editor buttons to aid custom styling (Rob Shelton)
- Simplified body_class in default homepage template (Josh Barr)
- page_published signal now called with the revision object that was published (Josh Barr)
- Added an overrideable favicon to the admin interface
- Added spinner animations to long-running form submissions
- The EMBEDLY_KEY setting has been renamed to WAGTAILEMBEDS_EMBEDLY_KEY (Anurag Sharma)
- StreamField blocks are now added automatically, without showing the block types menu, if only one block type exists (Alex Gleason)
- Wagtail admin now standardises on a single thumbnail image size, to reduce the overhead of creating multiple renditions
- The
first_published_at
andlatest_revision_created_at
fields on page models are now available as filter fields on search queries - Rich text fields now strip out HTML comments
- Page editor form now sets enctype="multipart/form-data" as appropriate, allowing FileField to be used on page models (Petr Vacha)
- Explorer navigation menu on a completely empty page tree now takes you to the root level, rather than doing nothing
- Added animation and fixed display issues when focusing a rich text field (Alex Gleason)
- Added a system check to warn if Pillow is compiled without JPEG / PNG support
- Page chooser now prevents users from selecting the root node where this would be invalid
- New translations for Dutch (Netherlands), Georgian, Swedish and Turkish (Turkey)
- Fix: Page slugs are no longer auto-updated from the page title if the page is already published
- Fix: Deleting a page permission from the groups admin UI does not immediately submit the form
- Fix: Wagtail userbar is shown on pages that do not pass a
page
variable to the template (e.g. because they override theserve
method) - Fix: request.site now set correctly on page preview when the page is not in the default site
- Fix: Project template no longer raises a deprecation warning (Maximilian Stauss)
- Fix:
PageManager.sibling_of(page)
andPageManager.not_sibling_of(page)
now default to inclusive (i.e.page
is considered a sibling of itself), for consistency with other sibling methods - Fix: The "view live" button displayed after publishing a page now correctly reflects any changes made to the page slug (Ryan Pineo)
- Fix: API endpoints now accept and ignore the
_
query parameter used by jQuery for cache-busting - Fix: Page slugs are no longer cut off when Unicode characters are expanded into multiple characters (Sævar Öfjörð Magnússon)
- Fix: Searching a specific page model while filtering it by either ID or tree position no longer raises an error (Ashia Zawaduk)
- Fix: Scrolling an over-long explorer menu no longer causes white background to show through (Alex Gleason)
- Fix: Removed jitter when hovering over StreamField blocks (Alex Gleason)
- Fix: Non-ASCII email addresses no longer throw errors when generating Gravatar URLs (Denis Voskvitsov, Kyle Stratis)
- Fix: Dropdowns for ForeignKeys are now styled consistently (Ashia Zawaduk)
- Fix: Date choosers now appear on top of StreamField menus (Sergey Nikitin)
- Fix: Fixed a migration error that was raised when block-updating from 0.8 to 1.1+
- Fix: Page copy no longer breaks on models with a ClusterTaggableManager or ManyToManyField
- Fix: Validation errors when inserting an embed into a rich text area are now reported back to the editor
0.8.10
(re-release of 0.8.9 due to packaging issues)
- When copying a page, IDs of child objects within page revision records were not remapped to the new objects; this would cause those objects to be lost from the original page when editing the new one
- Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
- Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
0.8.9
- When copying a page, IDs of child objects within page revision records were not remapped to the new objects; this would cause those objects to be lost from the original page when editing the new one
- Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
- Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
1.1
Major features:
- specific() method on PageQuerySet
- "Promoted search results" has moved into its own module
- Atomic rebuilding of Elasticsearch indexes
- The wagtail.contrib.wagtailapi module now uses Django REST Framework
- Permissions fixes in the admin interface
- Searchable snippets
Minor features:
- Implemented deletion of form submissions
- Implemented pagination in the page chooser modal
- Changed INSTALLED_APPS in project template to list apps in precedence order
- The
{% image %}
tag now supports filters on the image variable, e.g.{% image primary_img|default:secondary_img width-500 %}
- Moved the style guide menu item into the Settings sub-menu
- Search backends can now be specified by module (e.g.
wagtail.wagtailsearch.backends.elasticsearch
), rather than a specific class (wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch
) - Added
descendant_of
filter to the API - Added optional directory argument to "wagtail start" command
- Non-superusers can now view/edit/delete sites if they have the correct permissions
- Image file size is now stored in the database, to avoid unnecessary filesystem lookups
- Page URL lookups hit the cache/database less often
- Updated URLs within the admin backend to use namespaces
- The
update_index
task now indexes objects in batches of 1000, to indicate progress and avoid excessive memory use - Added database indexes on PageRevision and Image to improve performance on large sites
- Search in page chooser now uses Wagtail's search framework, to order results by relevance
PageChooserPanel
now supports passing a list (or tuple) of accepted page types- The snippet type parameter of
SnippetChooserPanel
can now be omitted, or passed as a model name string rather than a model class - Added aliases for the
self
template variable to accommodate Jinja as a templating engine:page
for pages,field_panel
for field panels / edit handlers, andvalue
for blocks - Added signposting text to the explorer to steer editors away from creating pages at the root level unless they are setting up new sites
- "Clear choice" and "Edit this page" buttons are no longer shown on the page field of the group page permissions form
- Altered styling of stream controls to be more like all other buttons
- Added ability to mark page models as not available for creation using the flag
is_creatable
; pages that are abstract Django models are automatically made non-creatable - New translations for Norwegian Bokmål and Icelandic
Bug fixes:
- Text areas in the non-default tab of the page editor now resize to the correct height
- Tabs in "insert link" modal in the rich text editor no longer disappear (Tim Heap)
- H2 elements in rich text fields were accidentally given a click() binding when put insite a collapsible multi field panel
- The
wagtailimages
module is now compatible with remote storage backends that do not allow reopening closed files - Search no longer crashes when auto-indexing a model that doesn't have an
id
field - The
wagtailfrontendcache
module's HTTP backend has been rewritten to reliably direct requests to the configured cache hostname - Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
- The queryset returned from
search
operations when using the database search backend now correctly preserves additional properties of the original query, such asprefetch_related
/select_related
- Responses from the external image URL generator are correctly marked as streaming and will no longer fail when used with Django's cache middleware
- Page copy now works with pages that use multiple inheritance
- Form builder pages now pick up template variables defined in the
get_context
method - When copying a page, IDs of child objects within page revision records were not remapped to the new objects; this would cause those objects to be lost from the original page when editing the new one
- Newly added redirects now take effect on all sites, rather than just the site that the Wagtail admin backend was accessed through
- Add user form no longer throws a hard error on validation failure
1.1rc1
- Implemented the
specific()
method on PageQuerySet, to return pages as their most specific type - "Promoted search results" has moved into its own module
- Elasticsearch backend now supports an experimental
ATOMIC_REBUILD
flag to keep the existing index available while theupdate_index
task is running - The wagtailapi module has been refactored to use Django REST Framework (Tom Christie)
- A number of permissions fixes have been made to the Wagtail admin interface. See release notes for a list of specific changes made.
- Snippets that inherit from
wagtail.wagtailsearch.index.Indexed
now appear as searchable within the Wagtail admin - Implemented deletion of form submissions (Kyungil Choi)
- Implemented pagination in the page chooser modal
- Changed INSTALLED_APPS in project template to list apps in precedence order (Piet Delport)
- The
{% image %}
tag now supports filters on the image variable, e.g.{% image primary_img|default:secondary_img width-500 %}
- Moved the style guide menu item into the Settings sub-menu
- Search backends can now be specified by module (e.g.
wagtail.wagtailsearch.backends.elasticsearch
), rather than a specific class (wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch
) - Added
descendant_of
filter to the API (Michael Fillier) - Added optional directory argument to "wagtail start" command (Mitchel Cabuloy)
- Non-superusers can now view/edit/delete sites if they have the correct permissions
- Image file size is now stored in the database, to avoid unnecessary filesystem lookups
- Page URL lookups hit the cache/database less often (Michael van Tellingen)
- Updated URLs within the admin backend to use namespaces
- The
update_index
task now indexes objects in batches of 1000, to indicate progress and avoid excessive memory use - Added database indexes on PageRevision and Image to improve performance on large sites
- Search in page chooser now uses Wagtail's search framework, to order results by relevance
PageChooserPanel
now supports passing a list (or tuple) of accepted page types- The snippet type parameter of
SnippetChooserPanel
can now be omitted, or passed as a model name string rather than a model class (Joss Ingram) - Added aliases for the
self
template variable to accommodate Jinja as a templating engine:page
for pages,field_panel
for field panels / edit handlers, andvalue
for blocks - Added signposting text to the explorer to steer editors away from creating pages at the root level unless they are setting up new sites
- "Clear choice" and "Edit this page" buttons are no longer shown on the page field of the group page permissions form
- Altered styling of stream controls to be more like all other buttons
- Added ability to mark page models as not available for creation using the flag
is_creatable
; pages that are abstract Django models are automatically made non-creatable - New translations for Norwegian Bokmål and Icelandic
- Fix: Text areas in the non-default tab of the page editor now resize to the correct height
- Fix: Tabs in "insert link" modal in the rich text editor no longer disappear (Tim Heap)
- Fix: H2 elements in rich text fields were accidentally given a click() binding when put insite a collapsible multi field panel
- Fix: The wagtailimages module is now compatible with remote storage backends that do not allow reopening closed files
- Fix: Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
- Fix: The
wagtailfrontendcache
module's HTTP backend has been rewritten to reliably direct requests to the configured cache hostname - Fix: Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
- Fix: The queryset returned from
search
operations when using the database search backend now correctly preserves additional properties of the original query, such asprefetch_related
/select_related
- Fix: Responses from the external image URL generator are correctly marked as streaming and will no longer fail when used with Django's cache middleware
- Fix: Page copy now works with pages that use multiple inheritance (Jordi Joan)
- Fix: Form builder pages now pick up template variables defined in the
get_context
method (Christoph Lipp) - Fix: When copying a page, IDs of child objects within page revision records were not remapped to the new objects; this would cause those objects to be lost from the original page when editing the new one
- Fix: Newly added redirects now take effect on all sites, rather than just the site that the Wagtail admin backend was accessed through
- Fix: Add user form no longer throws a hard error on validation failure
1.0
Major features:
- StreamField, a model field for freeform page content
- Wagtail API, a module for creating a RESTful API for your content
- MySQL support
- Django 1.8 support
Minor features:
- Removed dependency on libsass (Tim Heap)
- Users without usernames can now be created and edited in the admin interface (Tim Heap)
- Added update notifications
- Javascript includes in the admin backend have been moved to the HTML header, to accommodate form widgets that render inline scripts that depend on libraries such as jQuery
- Improvements to the layout of the admin menu footer.
- Menu items of custom apps are now highlighted when being used (Josh Barr)
- Added thousands separator for counters on dashboard
- Added contextual links to admin notification messages
- When copying pages, it is now possible to specify a place to copy to (Timo Rieber)
- FieldPanel now accepts an optional 'widget' parameter to override the field's default form widget (Alejandro Giacometti)
- Page URL paths can now be longer than 255 characters
- Dropped Django 1.6 support
- Dropped Python 2.6 and 3.2 support
- Dropped Elasticsearch 0.90.x support
- Serving documents will now use django-sendfile if it's configured (Jordi Joan)
- Documents are now served with correct mime-type (Jordi Joan, Damian Moore)
- Support for If-Modified-Since HTTP header (Jordi Joan)
- Search view accepts "page" GET parameter in line with pagination
- Reversing
django.contrib.auth.admin.login
will no longer lead to Wagtails login view (making it easier to have front end views) - Removed dependency on
LOGIN_URL
andLOGIN_REDIRECT_URL
settings - Password reset view names namespaced to wagtailadmin
- Removed the need to add permission check on admin views (now automated)
- Added cache-control headers to all admin views
- Page model fields without a FieldPanel are no longer displayed in the form
- No longer need to specify the base model on InlinePanel definitions
- The project template Vagrantfile now listens on port 8000
- The external link chooser in rich text areas now accepts URLs of the form '/some/local/path', to allow linking to non-Wagtail-controlled URLs within the local site (Eric Drechsel)
- SCSS files in wagtailadmin now use absolute imports, to permit overriding by user stylesheets (Martin Sanders)
- Bare text entered in rich text areas is now automatically wrapped in a paragraph element
- Added pagination to the snippets listing and chooser (Martin Sanders)
- Page / document / image / snippet choosers now include a link to edit the chosen item
- The
document_served
signal now correctly passes the Document class assender
and the document asinstance
- Image/Document edit page no longer throws OSError when the original image is missing
- Page classes can specify an edit_handler property to override the default Content / Promote / Settings tabbed interface
- The Page model now records the date/time that a page was first published, as the field
first_published_at
- Increased the maximum length of a page slug from 50 to 255 characters
- Plain text fields in the page editor now use auto-expanding text areas
- Date / time pickers now consistently use times without seconds, to prevent Javascript behaviour glitches when focusing / unfocusing fields
- Added hooks
register_rich_text_embed_handler
andregister_rich_text_link_handler
for customising link / embed handling within rich text fields - Added hook
construct_homepage_summary_items
for customising the site summary panel on the admin homepage - No longer automatically tries to use Celery for sending notification emails
- Added "Add child page" button to admin userbar (Eric Drechsel)
- Renamed the
construct_wagtail_edit_bird
hook toconstruct_wagtail_userbar
- 'static' template tags are now used throughout the admin templates, in place of STATIC_URL
- Added a new decorator-based syntax for RoutablePage, compatible with Django 1.8
- Collapsible blocks stay open on any form error (Salvador Faria)
- Document upload modal no longer switches tabs on form errors (Salvador Faria)
- Added
AUTO_UPDATE
flag to search backend settings to enable/disable automatically updating the search index on model changes - Made the built-in project template follow the Django one, with several Wagtail-specific additions. The template comes with two apps (home and search)
with_metaclass
is now imported from Django's bundled copy of thesix
library, to avoid errors on Mac OS X from an outdated system copy of the library being imported- Added new translations for Croatian, Finnish and Hebrew (Israel)
1.0rc2
0.8.8
- Fix: Formbuilder no longer raises TypeError when submitting unchecked boolean field
- Fix: Image upload form no longer breaks when using i10n thousand separators
- Fix: Multiple image uploader now escapes HTML in filenames
- Fix: Retrieving an individual item from a sliced BaseSearchResults object now properly takes the slice offset into account
- Fix: Removed dependency on unicodecsv which fixes a crash on Python 3
- Fix: Submitting unicode text in form builder form no longer crashes with UnicodeEncodeError on Python 2
- Fix: Creating a proxy model from a Page class no longer crashes in the system check
- Fix: Unrecognised embed URLs passed to the |embed filter no longer cause the whole page to crash with an EmbedNotFoundException
- Fix: Underscores no longer get stripped from page slugs
1.0rc1
Changes since Beta 2:
- StreamField design updates
- Users without usernames can now be created and edited in the admin interface (Tim Heap)
- Added update notifications
- Page URL paths can now be longer than 255 characters
- Added
AUTO_UPDATE
flag to search backend settings to enable/disable automatically updating the search index on model changes - Made the built-in project template follow the Django one, with several Wagtail-specific additions. The template comes with two apps (home and search)
with_metaclass
is now imported from Django's bundled copy of thesix
library, to avoid errors on Mac OS X from an outdated system copy of the library being imported- Added new translations for Croatian and Finnish
- Fix: Retrieving an individual item from a sliced BaseSearchResults object now properly takes the slice offset into account
- Fix: Removed dependency on unicodecsv which fixes a crash on Python 3
- Fix: Submitting unicode text in form builder form no longer crashes with UnicodeEncodeError on Python 2
- Fix: Creating a proxy model from a Page class no longer crashes in the system check (Nar Chhantyal)
- Fix: Unrecognised embed URLs passed to the |embed filter no longer cause the whole page to crash with an EmbedNotFoundException
- Fix: Underscores no longer get stripped from page slugs