Skip to content

Releases: wagtail/wagtail

1.2

12 Nov 16:57
Compare
Choose a tag to compare
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 and min_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 and latest_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 the serve 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) and PageManager.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

02 Nov 16:31
Compare
Choose a tag to compare
1.2rc1 Pre-release
Pre-release
  • 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 and min_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 and latest_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 the serve 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) and PageManager.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

16 Sep 15:43
Compare
Choose a tag to compare

(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

16 Sep 14:58
Compare
Choose a tag to compare
  • 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

15 Sep 12:50
Compare
Choose a tag to compare
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, and value 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 as prefetch_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

04 Sep 14:21
Compare
Choose a tag to compare
1.1rc1 Pre-release
Pre-release
  • 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 the update_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, and value 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 as prefetch_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

16 Jul 09:17
Compare
Choose a tag to compare
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 and LOGIN_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 as sender and the document as instance
  • 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 and register_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 to construct_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 the six 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

03 Jul 11:21
Compare
Choose a tag to compare
1.0rc2 Pre-release
Pre-release

Changes since 1.0rc1:

  • Added missing translations
  • Adjusted deprecation warnings for features deprecated in 1.0, to indicate that they will be removed in 1.2
  • Added StreamField support to the wagtailapi module

0.8.8

18 Jun 15:48
Compare
Choose a tag to compare
  • 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

17 Jun 16:34
Compare
Choose a tag to compare
1.0rc1 Pre-release
Pre-release

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 the six 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