2
0

CHANGELOG.txt 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. Changelog
  2. =========
  3. 1.2 (12.11.2015)
  4. ~~~~~~~~~~~~~~~~
  5. * Added `wagtail.contrib.settings`, a module to allow administrators to edit site-specific settings
  6. * Core templatetags (pageurl, image, wagtailuserbar, etc) are now compatible with Jinja2
  7. * Redirects can now be created for specific sites
  8. * The Page.get_latest_revision_as_page method now returns the live page object if there are no draft changes to the page
  9. * Image and document models now provide a `search` method on their QuerySets
  10. * Search methods now accept an `operator` argument to determine whether multiple terms are ORed or ANDed together
  11. * Search methods now accept an `order_by_relevance` argument, which can be set to False to preserve the original QuerySet ordering
  12. * InlinePanel now accepts `max_num` and `min_num` arguments to limit the number of inline items
  13. * 'Add' button on inline panels is disabled when `max_num` is reached (Salvador Faria)
  14. * StreamField blocks now provide a `get_context` method for passing additional variables to the block template
  15. * Wagtail API now incorporates the browsable front-end provided by Django REST Framework
  16. * Python 3.5 support
  17. * WagtailRedirectMiddleware can now ignore the query string if there is no redirect that exactly matches it (Michael Cordover)
  18. * Order of URL parameters now ignored by redirect middleware (Michael Cordover)
  19. * Added SQL Server compatibility to image migration (Timothy Allen)
  20. * Added classnames to Wagtail rich text editor buttons to aid custom styling (Rob Shelton)
  21. * Simplified body_class in default homepage template (Josh Barr)
  22. * page_published signal now called with the revision object that was published (Josh Barr)
  23. * Added an overrideable favicon to the admin interface
  24. * Added spinner animations to long-running form submissions
  25. * The EMBEDLY_KEY setting has been renamed to WAGTAILEMBEDS_EMBEDLY_KEY (Anurag Sharma)
  26. * StreamField blocks are now added automatically, without showing the block types menu, if only one block type exists (Alex Gleason)
  27. * Wagtail admin now standardises on a single thumbnail image size, to reduce the overhead of creating multiple renditions
  28. * The `first_published_at` and `latest_revision_created_at` fields on page models are now available as filter fields on search queries
  29. * Rich text fields now strip out HTML comments
  30. * Page editor form now sets enctype="multipart/form-data" as appropriate, allowing FileField to be used on page models (Petr Vacha)
  31. * Explorer navigation menu on a completely empty page tree now takes you to the root level, rather than doing nothing
  32. * Added animation and fixed display issues when focusing a rich text field (Alex Gleason)
  33. * Added a system check to warn if Pillow is compiled without JPEG / PNG support
  34. * Page chooser now prevents users from selecting the root node where this would be invalid
  35. * New translations for Dutch (Netherlands), Georgian, Swedish and Turkish (Turkey)
  36. * Fix: Page slugs are no longer auto-updated from the page title if the page is already published
  37. * Fix: Deleting a page permission from the groups admin UI does not immediately submit the form
  38. * 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)
  39. * Fix: request.site now set correctly on page preview when the page is not in the default site
  40. * Fix: Project template no longer raises a deprecation warning (Maximilian Stauss)
  41. * 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
  42. * Fix: The "view live" button displayed after publishing a page now correctly reflects any changes made to the page slug (Ryan Pineo)
  43. * Fix: API endpoints now accept and ignore the `_` query parameter used by jQuery for cache-busting
  44. * Fix: Page slugs are no longer cut off when Unicode characters are expanded into multiple characters (Sævar Öfjörð Magnússon)
  45. * Fix: Searching a specific page model while filtering it by either ID or tree position no longer raises an error (Ashia Zawaduk)
  46. * Fix: Scrolling an over-long explorer menu no longer causes white background to show through (Alex Gleason)
  47. * Fix: Removed jitter when hovering over StreamField blocks (Alex Gleason)
  48. * Fix: Non-ASCII email addresses no longer throw errors when generating Gravatar URLs (Denis Voskvitsov, Kyle Stratis)
  49. * Fix: Dropdowns for ForeignKeys are now styled consistently (Ashia Zawaduk)
  50. * Fix: Date choosers now appear on top of StreamField menus (Sergey Nikitin)
  51. * Fix: Fixed a migration error that was raised when block-updating from 0.8 to 1.1+
  52. * Fix: Page copy no longer breaks on models with a ClusterTaggableManager or ManyToManyField
  53. * Fix: Validation errors when inserting an embed into a rich text area are now reported back to the editor
  54. 1.1 (15.09.2015)
  55. ~~~~~~~~~~~~~~~~
  56. * Implemented the `specific()` method on PageQuerySet, to return pages as their most specific type
  57. * "Promoted search results" has moved into its own module
  58. * Elasticsearch backend now supports an experimental `ATOMIC_REBUILD` flag to keep the existing index available while the `update_index` task is running
  59. * The wagtailapi module has been refactored to use Django REST Framework (Tom Christie)
  60. * A number of permissions fixes have been made to the Wagtail admin interface. See release notes for a list of specific changes made.
  61. * Snippets that inherit from `wagtail.wagtailsearch.index.Indexed` now appear as searchable within the Wagtail admin
  62. * Implemented deletion of form submissions (Kyungil Choi)
  63. * Implemented pagination in the page chooser modal
  64. * Changed INSTALLED_APPS in project template to list apps in precedence order (Piet Delport)
  65. * The `{% image %}` tag now supports filters on the image variable, e.g. `{% image primary_img|default:secondary_img width-500 %}`
  66. * Moved the style guide menu item into the Settings sub-menu
  67. * Search backends can now be specified by module (e.g. `wagtail.wagtailsearch.backends.elasticsearch`), rather than a specific class (`wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch`)
  68. * Added ``descendant_of`` filter to the API (Michael Fillier)
  69. * Added optional directory argument to "wagtail start" command (Mitchel Cabuloy)
  70. * Non-superusers can now view/edit/delete sites if they have the correct permissions
  71. * Image file size is now stored in the database, to avoid unnecessary filesystem lookups
  72. * Page URL lookups hit the cache/database less often (Michael van Tellingen)
  73. * Updated URLs within the admin backend to use namespaces
  74. * The `update_index` task now indexes objects in batches of 1000, to indicate progress and avoid excessive memory use
  75. * Added database indexes on PageRevision and Image to improve performance on large sites
  76. * Search in page chooser now uses Wagtail's search framework, to order results by relevance
  77. * `PageChooserPanel` now supports passing a list (or tuple) of accepted page types
  78. * The snippet type parameter of `SnippetChooserPanel` can now be omitted, or passed as a model name string rather than a model class (Joss Ingram)
  79. * 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
  80. * Added signposting text to the explorer to steer editors away from creating pages at the root level unless they are setting up new sites
  81. * "Clear choice" and "Edit this page" buttons are no longer shown on the page field of the group page permissions form
  82. * Altered styling of stream controls to be more like all other buttons
  83. * 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
  84. * New translations for Norwegian Bokmål and Icelandic
  85. * Fix: Text areas in the non-default tab of the page editor now resize to the correct height
  86. * Fix: Tabs in "insert link" modal in the rich text editor no longer disappear (Tim Heap)
  87. * Fix: H2 elements in rich text fields were accidentally given a click() binding when put insite a collapsible multi field panel
  88. * Fix: The wagtailimages module is now compatible with remote storage backends that do not allow reopening closed files
  89. * Fix: Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
  90. * Fix: The `wagtailfrontendcache` module's HTTP backend has been rewritten to reliably direct requests to the configured cache hostname
  91. * Fix: Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
  92. * 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`
  93. * 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
  94. * Fix: Page copy now works with pages that use multiple inheritance (Jordi Joan)
  95. * Fix: Form builder pages now pick up template variables defined in the `get_context` method (Christoph Lipp)
  96. * 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
  97. * Fix: Newly added redirects now take effect on all sites, rather than just the site that the Wagtail admin backend was accessed through
  98. * Fix: Add user form no longer throws a hard error on validation failure
  99. 1.0 (16.07.2015)
  100. ~~~~~~~~~~~~~~~~
  101. * Added StreamField, a model field for freeform page content
  102. * Added Wagtail API, a module for creating a RESTful API for your content
  103. * MySQL support
  104. * Django 1.8 support
  105. * Removed dependency on libsass (Tim Heap)
  106. * Users without usernames can now be created and edited in the admin interface (Tim Heap)
  107. * Added update notifications
  108. * 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
  109. * Improvements to the layout of the admin menu footer.
  110. * Menu items of custom apps are now highlighted when being used (Josh Barr)
  111. * Added thousands separator for counters on dashboard
  112. * Added contextual links to admin notification messages
  113. * When copying pages, it is now possible to specify a place to copy to (Timo Rieber)
  114. * FieldPanel now accepts an optional 'widget' parameter to override the field's default form widget (Alejandro Giacometti)
  115. * Page URL paths can now be longer than 255 characters
  116. * Dropped Django 1.6 support
  117. * Dropped Python 2.6 and 3.2 support
  118. * Dropped Elasticsearch 0.90.x support
  119. * Serving documents will now use django-sendfile if it's configured (Jordi Joan)
  120. * Documents are now served with correct mime-type (Jordi Joan, Damian Moore)
  121. * Support for If-Modified-Since HTTP header (Jordi Joan)
  122. * Search view accepts "page" GET parameter in line with pagination
  123. * Reversing `django.contrib.auth.admin.login` will no longer lead to Wagtails login view (making it easier to have front end views)
  124. * Removed dependency on `LOGIN_URL` and `LOGIN_REDIRECT_URL` settings
  125. * Password reset view names namespaced to wagtailadmin
  126. * Removed the need to add permission check on admin views (now automated)
  127. * Added cache-control headers to all admin views
  128. * Page model fields without a FieldPanel are no longer displayed in the form
  129. * No longer need to specify the base model on InlinePanel definitions
  130. * The project template Vagrantfile now listens on port 8000
  131. * 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)
  132. * SCSS files in wagtailadmin now use absolute imports, to permit overriding by user stylesheets (Martin Sanders)
  133. * Bare text entered in rich text areas is now automatically wrapped in a paragraph element
  134. * Added pagination to the snippets listing and chooser (Martin Sanders)
  135. * Page / document / image / snippet choosers now include a link to edit the chosen item
  136. * The `document_served` signal now correctly passes the Document class as `sender` and the document as `instance`
  137. * Image/Document edit page no longer throws OSError when the original image is missing
  138. * Page classes can specify an edit_handler property to override the default Content / Promote / Settings tabbed interface
  139. * The Page model now records the date/time that a page was first published, as the field `first_published_at`
  140. * Increased the maximum length of a page slug from 50 to 255 characters
  141. * Plain text fields in the page editor now use auto-expanding text areas
  142. * Date / time pickers now consistently use times without seconds, to prevent Javascript behaviour glitches when focusing / unfocusing fields
  143. * Added hooks `register_rich_text_embed_handler` and `register_rich_text_link_handler` for customising link / embed handling within rich text fields
  144. * Added hook `construct_homepage_summary_items` for customising the site summary panel on the admin homepage
  145. * No longer automatically tries to use Celery for sending notification emails
  146. * Added "Add child page" button to admin userbar (Eric Drechsel)
  147. * Renamed the `construct_wagtail_edit_bird` hook to `construct_wagtail_userbar`
  148. * 'static' template tags are now used throughout the admin templates, in place of STATIC_URL
  149. * Added a new decorator-based syntax for RoutablePage, compatible with Django 1.8
  150. * Collapsible blocks stay open on any form error (Salvador Faria)
  151. * Document upload modal no longer switches tabs on form errors (Salvador Faria)
  152. * Added `AUTO_UPDATE` flag to search backend settings to enable/disable automatically updating the search index on model changes
  153. * Made the built-in project template follow the Django one, with several Wagtail-specific additions. The template comes with two apps (home and search)
  154. * `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
  155. * Added new translations for Croatian and Finnish
  156. 0.8.10 (16.09.2015)
  157. ~~~~~~~~~~~~~~~~~~~
  158. * 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
  159. * Fix: Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
  160. * Fix: Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
  161. 0.8.9 (16.09.2015)
  162. ~~~~~~~~~~~~~~~~~~
  163. [release withdrawn due to packaging issues]
  164. 0.8.8 (18.06.2015)
  165. ~~~~~~~~~~~~~~~~~~
  166. * Fix: Formbuilder no longer raises TypeError when submitting unchecked boolean field (Arne Schauf)
  167. * Fix: Image upload form no longer breaks when using i10n thousand separators (@signalkraft)
  168. * Fix: Multiple image uploader now escapes HTML in filenames (Mac Chapman)
  169. * Fix: Retrieving an individual item from a sliced BaseSearchResults object now properly takes the slice offset into account
  170. * Fix: Removed dependency on unicodecsv which fixes a crash on Python 3
  171. * Fix: Submitting unicode text in form builder form no longer crashes with UnicodeEncodeError on Python 2
  172. * Fix: Creating a proxy model from a Page class no longer crashes in the system check (Nar Chhantyal)
  173. * Fix: Unrecognised embed URLs passed to the |embed filter no longer cause the whole page to crash with an EmbedNotFoundException
  174. * Fix: Underscores no longer get stripped from page slugs
  175. 0.8.7 (29.04.2015)
  176. ~~~~~~~~~~~~~~~~~~
  177. * Fix: wagtailfrontendcache no longer tries to purge pages that are not in a site
  178. * Fix: The contents of <div> elements in the rich text editor were not being whitelisted
  179. * Fix: Due to the above issue, embeds/images in a rich text field would sometimes be saved into the database in their editor representation
  180. * Fix: RoutablePage now prevents subpage_urls from being defined as a property, which would cause a memory leak
  181. * Fix: Added validation to prevent pages being created with only whitespace characters in their title fields (Frank Wiles)
  182. * Fix: Prevent logout on changing password when SessionAuthenticationMiddleware is in use
  183. * Fix: Work around a Python / Django issue that prevented documents with certain non-ASCII filenames from being served
  184. 0.8.6 (10.03.2015)
  185. ~~~~~~~~~~~~~~~~~~
  186. * Translations updated, including new translations for Czech, Italian and Japanese
  187. * The "fixtree" command can now delete orphaned pages
  188. * Fix: django-taggit library updated to 0.12.3, to fix a bug with migrations on SQLite on Django 1.7.2 and above (https://github.com/alex/django-taggit/issues/285)
  189. * Fix: Fixed a bug that caused children of a deleted page to not be deleted if they had a different type
  190. 0.8.5 (17.02.2015)
  191. ~~~~~~~~~~~~~~~~~~
  192. * Fix: On adding a new page, the available page types are ordered by the displayed verbose name
  193. * Fix: Active admin submenus were not properly closed when activating another
  194. * Fix: get_sitemap_urls is now called on the specific page class so it can now be overridden (Jerel Unruh)
  195. * Fix: (Firefox and IE) Fixed preview window hanging and not refocusing when "Preview" button is clicked again
  196. * Fix: Storage backends that return raw ContentFile objects are now handled correctly when resizing images (@georgewhewell)
  197. * Fix: Punctuation characters are no longer stripped when performing search queries
  198. * Fix: When adding tags where there were none before, it is now possible to save a single tag with multiple words in it
  199. * Fix: richtext template tag no longer raises TypeError if None is passed into it (Alejandro Varas)
  200. * Fix: Serving documents now uses a streaming HTTP response and will no longer break Django's cache middleware
  201. * Fix: User admin area no longer fails in the presence of negative user IDs (as used by django-guardian's default settings)
  202. * Fix: Password reset emails now use the ``BASE_URL`` setting for the reset URL
  203. * Fix: BASE_URL is now included in the project template's default settings file
  204. 0.8.4 (04.12.2014)
  205. ~~~~~~~~~~~~~~~~~~
  206. * Fix: It is no longer possible to have the explorer and settings menu open at the same time
  207. * Fix: Page IDs in page revisions were not updated on page copy, causing subsequent edits to be committed to the original page instead
  208. * Fix: Copying a page now creates a new page revision, ensuring that changes to the title/slug are correctly reflected in the editor (and also ensuring that the user performing the copy is logged)
  209. * Fix: Prevent a race condition when creating Filter objects
  210. 0.8.3 (18.11.2014)
  211. ~~~~~~~~~~~~~~~~~~
  212. * Fix: Added missing jQuery UI sprite files, causing collectstatic to throw errors (most reported on Heroku)
  213. * Fix: Page system check for on_delete actions of ForeignKeys was throwing false positives when page class decends from an abstract class (Alejandro Giacometti)
  214. * Fix: Page system check for on_delete actions of ForeignKeys now only raises warnings, not errors
  215. * Fixed a regression where form builder submissions containing a number field would fail with a JSON serialisation error
  216. * Fix: Resizing an image with a focal point equal to the image size would result in a divide-by-zero error
  217. * Fix: Focal point indicator would sometimes be positioned incorrectly for small or thin images
  218. * Fix: Focal point chooser background colour changed to grey to make working with transparent images easier
  219. * Fix: Elasticsearch configuration now supports specifying HTTP authentication parameters as part of the URL, and defaults to ports 80 (HTTP) and 443 (HTTPS) if port number not specified
  220. * Fixed a TypeError when previewing pages that use RoutablePageMixin
  221. * Fix: Rendering image with missing file in rich text no longer crashes the entire page
  222. * Fix: IOErrors thrown by underlying image libraries that are not reporting a missing image file are no longer caught
  223. * Fix: Minimum Pillow version bumped to 2.6.1 to work around a crash when using images with transparency
  224. * Fix: Images with transparency are now handled better when being used in feature detection
  225. 0.8.2 (18.11.2014)
  226. ~~~~~~~~~~~~~~~~~~
  227. [release withdrawn due to packaging issues]
  228. 0.8.1 (05.11.2014)
  229. ~~~~~~~~~~~~~~~~~~
  230. * Fixed a regression where images would fail to save when feature detection is active
  231. 0.8 (05.11.2014)
  232. ~~~~~~~~~~~~~~~~
  233. * Added logging for page operations
  234. * The save button on the page edit page now redirects the user back to the edit page instead of the explorer
  235. * Signal handlers for ``wagtail.wagtailsearch`` and ``wagtail.contrib.wagtailfrontendcache`` are now automatically registered when using Django 1.7 or above. (Tim Heap)
  236. * Added a Django 1.7 system check to ensure that foreign keys from Page models are set to on_delete=SET_NULL, to prevent inadvertent (and tree-breaking) page deletions
  237. * Improved error reporting on image upload, including ability to set a maximum file size via a new setting WAGTAILIMAGES_MAX_UPLOAD_SIZE
  238. * The external image URL generator now keeps persistent image renditions, rather than regenerating them on each request, so it no longer requires a front-end cache
  239. * Added Dutch translation
  240. * Fix: Replaced references of .username with .get_username() on users for better custom user model support (John-Scott Atlakson)
  241. * Fix: Unpinned dependency versions for six and requests to help prevent dependency conflicts
  242. * Fix: Fixed TypeError when getting embed HTML with oembed on Python 3 (John-Scott Atlakson)
  243. * Fix: Made HTML whitelisting in rich text fields more robust at catching disallowed URL schemes such as "jav\tascript:" (Tim Heap)
  244. * Fix: created_at timestamps on page revisions were not being preserved on page copy, causing revisions to get out of sequence
  245. * Fix: When copying pages recursively, revisions of sub-pages were being copied regardless of the copy_revisions flag
  246. * Fix: Updated the migration dependencies within the project template to ensure that Wagtail's own migrations consistently apply first.
  247. * Fix: The cache of site root paths is now cleared when a site is deleted.
  248. * Fix: Search indexing now prevents pages from being indexed multiple times, as both the base Page model and the specific subclass
  249. * Fix: Search indexing now avoids trying to index abstract models
  250. * Fix: Fixed references to "username" in login form help text for better custom user model support (John-Scott Atlakson)
  251. * Fix: Later items in a model's search_field list now consistently override earlier items, allowing subclasses to redefine rules from the parent
  252. * Fix: Image uploader now accepts JPEG images that PIL reports as being in MPO format
  253. * Fix: Multiple checkbox fields on form-builder forms did not correctly save multiple values
  254. * Fix: Editing a page's slug and saving it without publishing could sometimes cause the URL paths of child pages to be corrupted
  255. * Fix: 'latest_revision_created_at' was being cleared on page publish, causing the page to drop to the bottom of explorer listings
  256. * Fix: Searches on partial_match fields were wrongly applying prefix analysis to the search query as well as the document (causing e.g. a query for "water" to match against "wagtail")
  257. 0.7 (09.10.2014)
  258. ~~~~~~~~~~~~~~~~
  259. * Added interface for choosing focal point on images
  260. * Redesigned and reorganised navigation menu to include a 'Settings' submenu
  261. * Added Groups administration area
  262. * Added Sites administration area
  263. * Added the ability to lock a page to (temporarily) prevent edits to that page
  264. * Removed 'content_type' template filter from the project template, as the same thing can be accomplished with self.get_verbose_name|slugify
  265. * Page copy operations now also copy the page revision history
  266. * Page models now support a 'parent_page_types' property in addition to 'subpage types', to restrict the types of page they can be created under
  267. * 'register_snippet' can now be invoked as a decorator
  268. * Project template updated to Django 1.7
  269. * 'boost' applied to the title field on searches reduced from 100 to 2
  270. * The 'type' method of PageQuerySet (used to filter the queryset to a specific page type) now includes subclasses of the given page type.
  271. * The 'update_index' management command now updates all backends listed in WAGTAILSEARCH_BACKENDS, or a specific one passed on the command line, rather than just the default backend
  272. * The 'fill' image resize method now supports an additional parameter defining the closeness of the crop
  273. * Added support for invalidating Cloudflare caches
  274. * Pages in the explorer can now be ordered by last updated time
  275. * Fix: 'wagtail start' command now works on Windows
  276. * Fix: The external image URL generator no longer stores generated images in Django's cache
  277. * Fix: Elasticsearch backend can now search querysets that have been filtered with an 'in' clause of a non-list type (such as a ValuesListQuerySet)
  278. * Fix: Logic around the has_unpublished_changes flag has been fixed, to prevent issues with the 'View draft' button failing to show in some cases
  279. * Fix: It is now easier to move pages to the beginning and end of their section
  280. * Fix: Image rendering no longer creates erroneous duplicate Rendition records when the focal point is blank.
  281. 0.6 (11.09.2014)
  282. ~~~~~~~~~~~~~~~~
  283. * Added 'wagtail start' command and project template
  284. * Added Django 1.7 support
  285. * Added {% routablepageurl %} template tag (Tim Heap)
  286. * Added RoutablePageMixin (Tim Heap)
  287. * MenuItems can now have bundled JavaScript
  288. * Added the register_admin_menu_item hook for registering menu items at startup
  289. * Added version indicator to the admin interface
  290. * Renamed wagtailsearch.indexed to wagtailsearch.index
  291. * Added Russian translation
  292. * Fix: Page URL generation now returns correct URLs for sites that have the main 'serve' view rooted somewhere other than '/' (Nathan Brizendine)
  293. * Fix: Search results in the page chooser now respect the page_type parameter on PageChooserPanel
  294. * Fix: Rendition filenames are now prevented from going over 60 chars, even with a large focal_point_key
  295. * Fix: Child relations that are defined on a model's superclass (such as the base Page model) are now picked up correctly by the page editing form, page copy operations and the replace_text management command
  296. * Fix: (For Django 1.7 support) Do not import South when using Django 1.7 (thenewguy)
  297. * Fix: Tags on images and documents are now committed to the search index immediately on saving
  298. 0.5 (01.08.2014)
  299. ~~~~~~~~~~~~~~~~
  300. * Added multiple image uploader
  301. * Added support for face and feature detection on images using the OpenCV library
  302. * Added RoutablePage model to allow embedding Django-style URL routing within a page
  303. * Added image/document/snippet usage stats
  304. * Explorer nav now rendered separately and fetched with AJAX when needed
  305. * Added decorator syntax for hooks
  306. * Replaced lxml dependency with html5lib, to simplify installation
  307. * Added page_unpublished signal
  308. * Added mechanism to obtain external URLs to images, at any size
  309. * Added Copy Page action to the explorer
  310. * Fix: Updates to tag fields are now properly committed to the database when publishing directly from the page edit interface
  311. 0.4.1 (14.07.2014)
  312. ~~~~~~~~~~~~~~~~~~
  313. * ElasticSearch backend now respects the backward-compatible URLS configuration setting, in addition to HOSTS
  314. * Documentation fixes
  315. 0.4 (10.07.2014)
  316. ~~~~~~~~~~~~~~~~
  317. * ElasticUtils/pyelasticsearch swapped for elasticsearch-py
  318. * Python 3.2, 3.3 and 3.4 support
  319. * Added scheduled publishing
  320. * Added support for private (password-protected) pages
  321. * Added frontend cache invalidator
  322. * Added sitemap generator
  323. * Added notification preferences
  324. * Added a new way to configure searchable/filterable fields on models
  325. * Added 'original' as a resizing rule supported by the 'image' tag
  326. * Hallo.js updated to version 1.0.4
  327. * Snippets are now ordered alphabetically
  328. * Removed the "More" section from the admin menu
  329. * Added pagination to page listings in admin
  330. * Support for setting a subpage_types property on page models, to define which page types are allowed as subpages
  331. * Added a new datetime picker widget
  332. * Added styleguide (mainly for wagtail developers)
  333. * Aesthetic improvements to preview experience
  334. * 'image' tag now accepts extra keyword arguments to be output as attributes on the img tag
  335. * Login screen redirects to dashboard if user is already logged in
  336. * Renamed some template tag libraries
  337. * Any extra arguments given to serve are now passed through to get_context and get_template
  338. * Added an 'attrs' property to image rendition objects to output src, width, height and alt attributes all in one go
  339. * Added 'construct_whitelister_element_rules' hook for customising the HTML whitelist used when saving rich text fields
  340. * Added 'in_menu' and 'not_in_menu' methods to PageQuerySet
  341. * Added 'get_next_siblings' and 'get_prev_siblings' to Page
  342. * Added init_new_page signal
  343. * Added page_published signal
  344. * Added copy method to Page to allow copying of pages
  345. * Added ``search`` method to ``PageQuerySet``
  346. * Added ``get_indexed_objects`` allowing developers to customise which objects get added to the search index
  347. * Major refactor of Elasticsearch backend
  348. * Use ``match`` instead of ``query_string`` queries
  349. * Fields are now indexed in Elasticsearch with their correct type
  350. * Filter fields are no longer included in '_all' (in Elasticsearch)
  351. * Fields with partial matching are now indexed together into '_partials'
  352. * Fix: Animated GIFs are now coalesced before resizing
  353. * Fix: Wand backend clones images before modifying them
  354. * Fix: Admin breadcrumb now positioned correctly on mobile
  355. * Fix: Page chooser breadcrumb now updates the chooser modal instead of linking to Explorer
  356. * Fix: Embeds - Fixed crash when no HTML field is sent back from the embed provider
  357. * Fix: Multiple sites with same hostname but different ports are now allowed
  358. * Fix: No longer possible to create multiple sites with is_default_site = True
  359. 0.3.1 (03.06.2014)
  360. ~~~~~~~~~~~~~~~~~~
  361. * Fix: When constructing dummy requests for pages with no routable URL, fall back on a hostname from ALLOWED_HOSTS and finally 'localhost', to avoid 'Invalid HTTP_HOST header' errors on preview when DEBUG=False.
  362. * Fix: Ensure that url_path is populated when previewing a newly created page, to avoid unnecessarily taking the above fallback.
  363. * Fix: Deleting an item from an InlinePanel, then generating a validation error on saving, no longer causes the deleted item to confusingly reappear with an error of its own.
  364. 0.3 (28.05.2014)
  365. ~~~~~~~~~~~~~~~~
  366. * Added toolbar to allow logged-in users to add and edit pages from the site front-end
  367. * Support for alternative image processing backends such as Wand, via the WAGTAILIMAGES_BACKENDS setting
  368. * Added support for generating static sites using django-medusa
  369. * Added custom Query set for Pages with some handy methods for querying pages
  370. * Added 'wagtailforms' module for creating form pages on a site, and handling form submissions
  371. * Editor's guide documentation
  372. * Expanded developer documentation
  373. * Editor interface now outputs form media CSS / JS, to support custom widgets with assets
  374. * Migrations and user management now correctly handle custom AUTH_USER_MODEL settings
  375. * Added 'slugurl' template tag to output the URL of a page with a given slug
  376. * MultiFieldPanel definitions now accept a 'classname' attribute, including a special classname of 'collapsible' to allow showing / hiding them on click
  377. * Added 'insert_editor_css' and 'insert_editor_js' hooks for passing in custom CSS / JS to the editor interface
  378. * Made JPEG compression level configurable through the IMAGE_COMPRESSION_QUALITY setting, and increased default to 85
  379. * Added document_served signal which gets fired when a document is downloaded
  380. * Added translations for Portuguese Brazil and Traditional Chinese (Taiwan).
  381. * Made compatible with Python 2.6
  382. * 'richtext' template filter now wraps output in <div class="rich-text"></div>, to assist in styling
  383. * Embeds now save author_name and provider_name if set by oEmbed provider
  384. * Fix: non-ASCII characters in image filenames are now converted into ASCII equivalents rather than becoming all underscores
  385. * Fix: paths to fonts and images within CSS are no longer hard-coded to /static/
  386. * Fix: Localization files for the JQuery UI datepicker are stored locally and only imported when a localization is known to be available
  387. * Fix: Page slugs are now validated on page edit
  388. * Fix: Filter objects are cached to avoid a database hit every time an {% image %} tag is compiled
  389. * Fix: Moving or changing a site root page no longer causes URLs for subpages to change to 'None'
  390. * Fix: Eliminated raw SQL queries from wagtailcore / wagtailadmin, to ensure cross-database compatibility
  391. * Fix: Snippets menu item is hidden for administrators if no snippet types are defined
  392. * Fix: 'Upload' tab in image chooser now retains focus if submit action returns a form error.
  393. * Fix: Search input now appears on image chooser after form validation error.
  394. 0.2 (11.03.2014)
  395. ~~~~~~~~~~~~~~~~
  396. * SQLite support added
  397. * Internationalisation of the admin backend
  398. * Translations for Bulgarian, Catalan, Chinese, Galician, German, Greek, Polish, Romanian and Spanish. Partial translations for Basque and Mongolian.
  399. * Stylesheets ported from Less to Sass, to eliminate dependency on an external CSS compiler
  400. * Coffeescript replaced by vanilla Javascript
  401. * OEmbed supported as an alternative backend for wagtailembeds, eliminating dependency on Embedly
  402. * Database supported as an alternative search backend, eliminating dependency on ElasticSearch
  403. * Background tasks now fall back on in-process handling if Celery is not available (also eliminating Redis as a dependency)
  404. * Users decoupled from Django default user model, to allow custom user models
  405. * Added explicit 'Can access Wagtail admin' permission, rather than treating all logged-in users as Wagtail users
  406. * Date fields now work with USE_L10N=True
  407. * "Your most recent edits" only shows the latest edit per page
  408. * Unified search view configurable in urls.py
  409. * Support for searching within a subtree
  410. * Added initial documentation
  411. * Added Ubuntu / Debian installation scripts
  412. * Extensive tests and test runner infrastructure
  413. * Numerous bugfixes
  414. 0.1 (07.02.2014)
  415. ~~~~~~~~~~~~~~~~
  416. * Initial release.