forked from wagtail/wagtail
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
490 lines (424 loc) · 34.3 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
Changelog
=========
1.3 (xx.xx.xxxx)
~~~~~~~~~~~~~~~~
* Added `WAGTAIL_PASSWORD_RESET_ENABLED` setting to allow password resets to be disabled independently of the password management interface (John Draper)
* Updated fonts for more comprehensive Unicode support
* Added `.alt` attribute to image renditions
* The default `src`, `width`, `height` and `alt` attributes can now be overridden by attributes passed to the `{% image %}` tag
* Fix: HTTP cache purge now works again on Python 2 (Mitchel Cabuloy)
* Fix: Locked pages can no longer be unpublished (Alex Bridge)
1.2 (12.11.2015)
~~~~~~~~~~~~~~~~
* 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.1 (15.09.2015)
~~~~~~~~~~~~~~~~
* 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.07.2015)
~~~~~~~~~~~~~~~~
* Added StreamField, a model field for freeform page content
* Added Wagtail API, a module for creating a RESTful API for your content
* MySQL support
* Django 1.8 support
* 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 and Finnish
0.8.10 (16.09.2015)
~~~~~~~~~~~~~~~~~~~
* 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: Search no longer crashes when auto-indexing a model that doesn't have an id field (Scot Hacker)
* Fix: Resizing single pixel images with the "fill" filter no longer raises "ZeroDivisionError" or "tile cannot extend outside image"
0.8.9 (16.09.2015)
~~~~~~~~~~~~~~~~~~
[release withdrawn due to packaging issues]
0.8.8 (18.06.2015)
~~~~~~~~~~~~~~~~~~
* Fix: Formbuilder no longer raises TypeError when submitting unchecked boolean field (Arne Schauf)
* Fix: Image upload form no longer breaks when using i10n thousand separators (@signalkraft)
* Fix: Multiple image uploader now escapes HTML in filenames (Mac Chapman)
* 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
0.8.7 (29.04.2015)
~~~~~~~~~~~~~~~~~~
* Fix: wagtailfrontendcache no longer tries to purge pages that are not in a site
* Fix: The contents of <div> elements in the rich text editor were not being whitelisted
* Fix: Due to the above issue, embeds/images in a rich text field would sometimes be saved into the database in their editor representation
* Fix: RoutablePage now prevents subpage_urls from being defined as a property, which would cause a memory leak
* Fix: Added validation to prevent pages being created with only whitespace characters in their title fields (Frank Wiles)
* Fix: Prevent logout on changing password when SessionAuthenticationMiddleware is in use
* Fix: Work around a Python / Django issue that prevented documents with certain non-ASCII filenames from being served
0.8.6 (10.03.2015)
~~~~~~~~~~~~~~~~~~
* Translations updated, including new translations for Czech, Italian and Japanese
* The "fixtree" command can now delete orphaned pages
* 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)
* Fix: Fixed a bug that caused children of a deleted page to not be deleted if they had a different type
0.8.5 (17.02.2015)
~~~~~~~~~~~~~~~~~~
* Fix: On adding a new page, the available page types are ordered by the displayed verbose name
* Fix: Active admin submenus were not properly closed when activating another
* Fix: get_sitemap_urls is now called on the specific page class so it can now be overridden (Jerel Unruh)
* Fix: (Firefox and IE) Fixed preview window hanging and not refocusing when "Preview" button is clicked again
* Fix: Storage backends that return raw ContentFile objects are now handled correctly when resizing images (@georgewhewell)
* Fix: Punctuation characters are no longer stripped when performing search queries
* Fix: When adding tags where there were none before, it is now possible to save a single tag with multiple words in it
* Fix: richtext template tag no longer raises TypeError if None is passed into it (Alejandro Varas)
* Fix: Serving documents now uses a streaming HTTP response and will no longer break Django's cache middleware
* Fix: User admin area no longer fails in the presence of negative user IDs (as used by django-guardian's default settings)
* Fix: Password reset emails now use the ``BASE_URL`` setting for the reset URL
* Fix: BASE_URL is now included in the project template's default settings file
0.8.4 (04.12.2014)
~~~~~~~~~~~~~~~~~~
* Fix: It is no longer possible to have the explorer and settings menu open at the same time
* Fix: Page IDs in page revisions were not updated on page copy, causing subsequent edits to be committed to the original page instead
* 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)
* Fix: Prevent a race condition when creating Filter objects
0.8.3 (18.11.2014)
~~~~~~~~~~~~~~~~~~
* Fix: Added missing jQuery UI sprite files, causing collectstatic to throw errors (most reported on Heroku)
* Fix: Page system check for on_delete actions of ForeignKeys was throwing false positives when page class decends from an abstract class (Alejandro Giacometti)
* Fix: Page system check for on_delete actions of ForeignKeys now only raises warnings, not errors
* Fixed a regression where form builder submissions containing a number field would fail with a JSON serialisation error
* Fix: Resizing an image with a focal point equal to the image size would result in a divide-by-zero error
* Fix: Focal point indicator would sometimes be positioned incorrectly for small or thin images
* Fix: Focal point chooser background colour changed to grey to make working with transparent images easier
* 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
* Fixed a TypeError when previewing pages that use RoutablePageMixin
* Fix: Rendering image with missing file in rich text no longer crashes the entire page
* Fix: IOErrors thrown by underlying image libraries that are not reporting a missing image file are no longer caught
* Fix: Minimum Pillow version bumped to 2.6.1 to work around a crash when using images with transparency
* Fix: Images with transparency are now handled better when being used in feature detection
0.8.2 (18.11.2014)
~~~~~~~~~~~~~~~~~~
[release withdrawn due to packaging issues]
0.8.1 (05.11.2014)
~~~~~~~~~~~~~~~~~~
* Fixed a regression where images would fail to save when feature detection is active
0.8 (05.11.2014)
~~~~~~~~~~~~~~~~
* Added logging for page operations
* The save button on the page edit page now redirects the user back to the edit page instead of the explorer
* Signal handlers for ``wagtail.wagtailsearch`` and ``wagtail.contrib.wagtailfrontendcache`` are now automatically registered when using Django 1.7 or above. (Tim Heap)
* 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
* Improved error reporting on image upload, including ability to set a maximum file size via a new setting WAGTAILIMAGES_MAX_UPLOAD_SIZE
* 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
* Added Dutch translation
* Fix: Replaced references of .username with .get_username() on users for better custom user model support (John-Scott Atlakson)
* Fix: Unpinned dependency versions for six and requests to help prevent dependency conflicts
* Fix: Fixed TypeError when getting embed HTML with oembed on Python 3 (John-Scott Atlakson)
* Fix: Made HTML whitelisting in rich text fields more robust at catching disallowed URL schemes such as "jav\tascript:" (Tim Heap)
* Fix: created_at timestamps on page revisions were not being preserved on page copy, causing revisions to get out of sequence
* Fix: When copying pages recursively, revisions of sub-pages were being copied regardless of the copy_revisions flag
* Fix: Updated the migration dependencies within the project template to ensure that Wagtail's own migrations consistently apply first.
* Fix: The cache of site root paths is now cleared when a site is deleted.
* Fix: Search indexing now prevents pages from being indexed multiple times, as both the base Page model and the specific subclass
* Fix: Search indexing now avoids trying to index abstract models
* Fix: Fixed references to "username" in login form help text for better custom user model support (John-Scott Atlakson)
* Fix: Later items in a model's search_field list now consistently override earlier items, allowing subclasses to redefine rules from the parent
* Fix: Image uploader now accepts JPEG images that PIL reports as being in MPO format
* Fix: Multiple checkbox fields on form-builder forms did not correctly save multiple values
* Fix: Editing a page's slug and saving it without publishing could sometimes cause the URL paths of child pages to be corrupted
* Fix: 'latest_revision_created_at' was being cleared on page publish, causing the page to drop to the bottom of explorer listings
* 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")
0.7 (09.10.2014)
~~~~~~~~~~~~~~~~
* Added interface for choosing focal point on images
* Redesigned and reorganised navigation menu to include a 'Settings' submenu
* Added Groups administration area
* Added Sites administration area
* Added the ability to lock a page to (temporarily) prevent edits to that page
* Removed 'content_type' template filter from the project template, as the same thing can be accomplished with self.get_verbose_name|slugify
* Page copy operations now also copy the page revision history
* 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
* 'register_snippet' can now be invoked as a decorator
* Project template updated to Django 1.7
* 'boost' applied to the title field on searches reduced from 100 to 2
* The 'type' method of PageQuerySet (used to filter the queryset to a specific page type) now includes subclasses of the given page type.
* 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
* The 'fill' image resize method now supports an additional parameter defining the closeness of the crop
* Added support for invalidating Cloudflare caches
* Pages in the explorer can now be ordered by last updated time
* Fix: 'wagtail start' command now works on Windows
* Fix: The external image URL generator no longer stores generated images in Django's cache
* Fix: Elasticsearch backend can now search querysets that have been filtered with an 'in' clause of a non-list type (such as a ValuesListQuerySet)
* 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
* Fix: It is now easier to move pages to the beginning and end of their section
* Fix: Image rendering no longer creates erroneous duplicate Rendition records when the focal point is blank.
0.6 (11.09.2014)
~~~~~~~~~~~~~~~~
* Added 'wagtail start' command and project template
* Added Django 1.7 support
* Added {% routablepageurl %} template tag (Tim Heap)
* Added RoutablePageMixin (Tim Heap)
* MenuItems can now have bundled JavaScript
* Added the register_admin_menu_item hook for registering menu items at startup
* Added version indicator to the admin interface
* Renamed wagtailsearch.indexed to wagtailsearch.index
* Added Russian translation
* Fix: Page URL generation now returns correct URLs for sites that have the main 'serve' view rooted somewhere other than '/' (Nathan Brizendine)
* Fix: Search results in the page chooser now respect the page_type parameter on PageChooserPanel
* Fix: Rendition filenames are now prevented from going over 60 chars, even with a large focal_point_key
* 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
* Fix: (For Django 1.7 support) Do not import South when using Django 1.7 (thenewguy)
* Fix: Tags on images and documents are now committed to the search index immediately on saving
0.5 (01.08.2014)
~~~~~~~~~~~~~~~~
* Added multiple image uploader
* Added support for face and feature detection on images using the OpenCV library
* Added RoutablePage model to allow embedding Django-style URL routing within a page
* Added image/document/snippet usage stats
* Explorer nav now rendered separately and fetched with AJAX when needed
* Added decorator syntax for hooks
* Replaced lxml dependency with html5lib, to simplify installation
* Added page_unpublished signal
* Added mechanism to obtain external URLs to images, at any size
* Added Copy Page action to the explorer
* Fix: Updates to tag fields are now properly committed to the database when publishing directly from the page edit interface
0.4.1 (14.07.2014)
~~~~~~~~~~~~~~~~~~
* ElasticSearch backend now respects the backward-compatible URLS configuration setting, in addition to HOSTS
* Documentation fixes
0.4 (10.07.2014)
~~~~~~~~~~~~~~~~
* ElasticUtils/pyelasticsearch swapped for elasticsearch-py
* Python 3.2, 3.3 and 3.4 support
* Added scheduled publishing
* Added support for private (password-protected) pages
* Added frontend cache invalidator
* Added sitemap generator
* Added notification preferences
* Added a new way to configure searchable/filterable fields on models
* Added 'original' as a resizing rule supported by the 'image' tag
* Hallo.js updated to version 1.0.4
* Snippets are now ordered alphabetically
* Removed the "More" section from the admin menu
* Added pagination to page listings in admin
* Support for setting a subpage_types property on page models, to define which page types are allowed as subpages
* Added a new datetime picker widget
* Added styleguide (mainly for wagtail developers)
* Aesthetic improvements to preview experience
* 'image' tag now accepts extra keyword arguments to be output as attributes on the img tag
* Login screen redirects to dashboard if user is already logged in
* Renamed some template tag libraries
* Any extra arguments given to serve are now passed through to get_context and get_template
* Added an 'attrs' property to image rendition objects to output src, width, height and alt attributes all in one go
* Added 'construct_whitelister_element_rules' hook for customising the HTML whitelist used when saving rich text fields
* Added 'in_menu' and 'not_in_menu' methods to PageQuerySet
* Added 'get_next_siblings' and 'get_prev_siblings' to Page
* Added init_new_page signal
* Added page_published signal
* Added copy method to Page to allow copying of pages
* Added ``search`` method to ``PageQuerySet``
* Added ``get_indexed_objects`` allowing developers to customise which objects get added to the search index
* Major refactor of Elasticsearch backend
* Use ``match`` instead of ``query_string`` queries
* Fields are now indexed in Elasticsearch with their correct type
* Filter fields are no longer included in '_all' (in Elasticsearch)
* Fields with partial matching are now indexed together into '_partials'
* Fix: Animated GIFs are now coalesced before resizing
* Fix: Wand backend clones images before modifying them
* Fix: Admin breadcrumb now positioned correctly on mobile
* Fix: Page chooser breadcrumb now updates the chooser modal instead of linking to Explorer
* Fix: Embeds - Fixed crash when no HTML field is sent back from the embed provider
* Fix: Multiple sites with same hostname but different ports are now allowed
* Fix: No longer possible to create multiple sites with is_default_site = True
0.3.1 (03.06.2014)
~~~~~~~~~~~~~~~~~~
* 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.
* Fix: Ensure that url_path is populated when previewing a newly created page, to avoid unnecessarily taking the above fallback.
* 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.
0.3 (28.05.2014)
~~~~~~~~~~~~~~~~
* Added toolbar to allow logged-in users to add and edit pages from the site front-end
* Support for alternative image processing backends such as Wand, via the WAGTAILIMAGES_BACKENDS setting
* Added support for generating static sites using django-medusa
* Added custom Query set for Pages with some handy methods for querying pages
* Added 'wagtailforms' module for creating form pages on a site, and handling form submissions
* Editor's guide documentation
* Expanded developer documentation
* Editor interface now outputs form media CSS / JS, to support custom widgets with assets
* Migrations and user management now correctly handle custom AUTH_USER_MODEL settings
* Added 'slugurl' template tag to output the URL of a page with a given slug
* MultiFieldPanel definitions now accept a 'classname' attribute, including a special classname of 'collapsible' to allow showing / hiding them on click
* Added 'insert_editor_css' and 'insert_editor_js' hooks for passing in custom CSS / JS to the editor interface
* Made JPEG compression level configurable through the IMAGE_COMPRESSION_QUALITY setting, and increased default to 85
* Added document_served signal which gets fired when a document is downloaded
* Added translations for Portuguese Brazil and Traditional Chinese (Taiwan).
* Made compatible with Python 2.6
* 'richtext' template filter now wraps output in <div class="rich-text"></div>, to assist in styling
* Embeds now save author_name and provider_name if set by oEmbed provider
* Fix: non-ASCII characters in image filenames are now converted into ASCII equivalents rather than becoming all underscores
* Fix: paths to fonts and images within CSS are no longer hard-coded to /static/
* Fix: Localization files for the JQuery UI datepicker are stored locally and only imported when a localization is known to be available
* Fix: Page slugs are now validated on page edit
* Fix: Filter objects are cached to avoid a database hit every time an {% image %} tag is compiled
* Fix: Moving or changing a site root page no longer causes URLs for subpages to change to 'None'
* Fix: Eliminated raw SQL queries from wagtailcore / wagtailadmin, to ensure cross-database compatibility
* Fix: Snippets menu item is hidden for administrators if no snippet types are defined
* Fix: 'Upload' tab in image chooser now retains focus if submit action returns a form error.
* Fix: Search input now appears on image chooser after form validation error.
0.2 (11.03.2014)
~~~~~~~~~~~~~~~~
* SQLite support added
* Internationalisation of the admin backend
* Translations for Bulgarian, Catalan, Chinese, Galician, German, Greek, Polish, Romanian and Spanish. Partial translations for Basque and Mongolian.
* Stylesheets ported from Less to Sass, to eliminate dependency on an external CSS compiler
* Coffeescript replaced by vanilla Javascript
* OEmbed supported as an alternative backend for wagtailembeds, eliminating dependency on Embedly
* Database supported as an alternative search backend, eliminating dependency on ElasticSearch
* Background tasks now fall back on in-process handling if Celery is not available (also eliminating Redis as a dependency)
* Users decoupled from Django default user model, to allow custom user models
* Added explicit 'Can access Wagtail admin' permission, rather than treating all logged-in users as Wagtail users
* Date fields now work with USE_L10N=True
* "Your most recent edits" only shows the latest edit per page
* Unified search view configurable in urls.py
* Support for searching within a subtree
* Added initial documentation
* Added Ubuntu / Debian installation scripts
* Extensive tests and test runner infrastructure
* Numerous bugfixes
0.1 (07.02.2014)
~~~~~~~~~~~~~~~~
* Initial release.