forked from wagtail/wagtail
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
693 lines (599 loc) · 50.4 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
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
Changelog
=========
1.6 (xx.xx.xxxx) - IN DEVELOPMENT
~~~~~~~~~~~~~~~~
* Page slugs now allow unicode on Django >= 1.9 (Behzad Nategh)
* Image upload form in image chooser now performs client side validation so that the selected file is not lost in the submission (Jack Paine)
1.5 (31.05.2016)
~~~~~~~~~~~~~~~~
* Added wagtail.contrib.modeladmin, an app for configuring arbitrary Django models to be edited through the Wagtail admin (Andy Babic)
* Added TableBlock, a StreamField block for table-based content (Moritz Pfeiffer, David Seddon, Brad Busenius)
* The "dynamic serve view" for images has been greatly improved. See release notes for details
* Moved lesser-user actions in the page explorer into a 'More' dropdown
* Added a hook `register_page_listing_buttons` for adding action buttons to the page explorer
* Added the ability to edit existing links in the rich text editor (Loic Teixeira)
* Rich text fields now show link destinations as tooltips (Loic Teixeira)
* Password reset email now reminds the user of their username (Matt Westcott)
* Added 'revisions' action to pages list (Roel Bruggink)
* Added jinja2 support for the ``settings`` template tag (Tim Heap)
* Added a hook `insert_global_admin_js` for inserting custom JavaScript throughout the admin backend (Tom Dyson)
* Recognise instagram embed URLs with `www` prefix (Matt Westcott)
* The type of the ``search_fields`` attribute on ``Page`` models (and other searchable models) has changed from a tuple to a list (Tim Heap)
* Use `PasswordChangeForm` when user changes their password, requiring the user to enter their current password (Matthijs Melissen)
* Highlight current day in date picker (Jonas Lergell)
* Eliminated the deprecated `register.assignment_tag` on Django 1.9 (Josh Schneier)
* Increased size of Save button on site settings (Liam Brenner)
* Optimised Site.find_for_request to only perform one database query (Matthew Downey)
* Notification messages on creating / editing sites now include the site name if specified (Chris Rogers)
* Added `--schema-only` option to `update_index` management command
* Added meaningful default icons to `StreamField` blocks (Benjamin Bach)
* Added title text to action buttons in the page explorer (Liam Brenner)
* Changed project template to explicitly import development settings via `settings.dev` (Tomas Olander)
* Improved L10N and I18N for revisions list (Roel Bruggink)
* The multiple image uploader now displays details of server errors (Nigel Fletton)
* Added `WAGTAIL_APPEND_SLASH` setting to determine whether page URLs end in a trailing slash (Andrew Tork Baker)
* Added auto resizing text field, richtext field, and snippet chooser to styleguide (Liam Brenner)
* Support field widget media inside `StreamBlock` blocks (Karl Hobley)
* Spinner was added to Save button on site settings (Liam Brenner)
* Added success message after logout from Admin (Liam Brenner)
* Added `get_upload_to` method to `AbstractRendition` which, when overridden, allows control over where image renditions are stored (Rob Moggach and Matt Westcott)
* Added a mechanism to customise the add / edit user forms for custom user models (Nigel Fletton)
* Added internal provision for swapping in alternative rich text editors (Karl Hobley)
* Fix: The currently selected day is now highlighted only in the correct month in date pickers (Jonas Lergell)
* Fix: Fixed crash when an image without a source file was resized with the "dynamic serve view"
* Fix: Registered settings admin menu items now show active correctly (Matthew Downey)
* Fix: Direct usage of `Document` model replaced with `get_document_model` function in `wagtail.contrib.wagtailmedusa` and in `wagtail.contrib.wagtailapi`
* Fix: Failures on sending moderation notification emails now produce a warning, rather than crashing the admin page outright (Matt Fozard)
* Fix: All admin forms that could potentially include file upload fields now specify `multipart/form-data` where appropriate (Tim Heap)
* Fix: REM units in Wagtailuserbar caused incorrect spacing (Vincent Audebert)
* Fix: Explorer menu no longer scrolls with page content (Vincent Audebert)
* Fix: `decorate_urlpatterns` now uses `functools.update_wrapper` to keep view names and docstrings (Mario César)
* Fix: StreamField block controls are no longer hidden by the StreamField menu when prepending a new block (Vincent Audebert)
* Fix: Removed invalid use of `__` alias that prevented strings getting picked up for translation (Juha Yrjölä)
* Fix: Routable pages without a main view no longer raise a `TypeError` (Bojan Mihelac)
* Fix: Fixed UnicodeEncodeError in wagtailforms when downloading a CSV for a form containing non-ASCII field labels on Python 2 (Mikalai Radchuk)
* Fix: Server errors during search indexing on creating / updating / deleting a model are now logged, rather than causing the overall operation to fail (Karl Hobley)
* Fix: Objects are now correctly removed from search indexes on deletion (Karl Hobley)
1.4.5 (19.05.2016)
~~~~~~~~~~~~~~~~~~
* Fix: Paste / drag operations done entirely with the mouse are now correctly picked up as edits within the rich text editor (Matt Fozard)
* Fix: Logic for cancelling the "unsaved changes" check on form submission has been fixed to work cross-browser (Stephen Rice)
* Fix: The "unsaved changes" confirmation was erroneously shown on IE / Firefox when previewing a page with validation errors (Matt Westcott)
* Fix: The up / down / delete controls on the "Promoted search results" form no longer trigger a form submission (Matt Westcott)
* Fix: Opening preview window no longer performs user-agent sniffing, and now works correctly on IE11 (Matt Westcott)
* Fix: Tree paths are now correctly assigned when previewing a newly-created page underneath a parent with deleted children (Matt Westcott)
* Fix: Added BASE_URL setting back to project template
* Fix: Clearing the search box in the page chooser now returns the user to the browse view (Matt Westcott)
* Fix: The above fix also fixed an issue where Internet Explorer got stuck in the search view upon opening the page chooser (Matt Westcott)
1.4.4 (10.05.2016)
~~~~~~~~~~~~~~~~~~
* New translation for Slovenian (Mitja Pagon)
* Fix: The `wagtailuserbar` template tag now gracefully handles situations where the `request` object is not in the template context (Matt Westcott)
* Fix: Meta classes on StreamField blocks now handle multiple inheritance correctly (Tim Heap)
* Fix: Now user can upload images / documents only into permitted collection from choosers
* Fix: Keyboard shortcuts for save / preview on the page editor no longer incorrectly trigger the "unsaved changes" message (Jack Paine, Matt Westcott)
* Fix: Redirects no longer fail when both a site-specific and generic redirect exist for the same URL path (Nick Smith, João Luiz Lorencetti)
* Fix: Wagtail now checks that Group is registered with the Django admin before unregistering it (Jason Morrison)
* Fix: Previewing inaccessible pages no longer fails with `ALLOWED_HOSTS = ['*']` (Robert Rollins)
* Fix: The submit button 'spinner' no longer activates if the form has client-side validation errors (Jack Paine, Matt Westcott)
* Fix: Overriding `MESSAGE_TAGS` in project settings no longer causes messages in the Wagtail admin to lose their styling (Tim Heap)
* Fix: Border added around explorer menu to stop it blending in with StreamField block listing; also fixes invisible explorer menu in Firefox 46 (Alex Gleason)
1.4.3 (04.04.2016)
~~~~~~~~~~~~~~~~~~
* Fixed regression introduced in 1.4.2 which caused Wagtail to query the database during a system check (Tim Heap)
1.4.2 (31.03.2016)
~~~~~~~~~~~~~~~~~~
* Fix: Streamfields no longer break on validation error
* Fix: Number of validation errors in each tab in the editor is now correctly reported again
* Fix: Userbar now opens on devices with both touch and mouse (Josh Barr)
* Fix: `wagtail.wagtailadmin.wagtail_hooks` no longer calls `static` during app load, so you can use `ManifestStaticFilesStorage` without calling the `collectstatic` command
* Fix: Fixed crash on page save when a custom `Page` edit handler has been specified using the `edit_handler` attribute (Tim Heap)
1.4.1 (17.03.2016)
~~~~~~~~~~~~~~~~~~
* Fix: Fixed erroneous rendering of up arrow icons (Rob Moorman)
1.4 (16.03.2016)
~~~~~~~~~~~~~~~~
* Added support for viewing previous revisions of pages, and previewing or rolling back to earlier versions
* Introduced collections, for image / document organisation
* The Wagtail userbar on the frontend has been redesigned, and no longer depends on an iframe (Thomas Winter, Gareth Price).
* The page editor now produces a warning if the user navigates away without saving changes
* 'Add document' interface now supports uploading multiple documents at once
* The `Document` model can now be overridden using the new `WAGTAILDOCS_DOCUMENT_MODEL` setting (Alex Gleason)
* Wagtail no longer depends on django-compressor
* The page search interface now searches all fields instead of just the title (Kait Crawford)
* Snippets now support a custom `edit_handler` property (Mikalai Radchuk)
* Date/time pickers now respect the locale's 'first day of week' setting (Peter Quade)
* Refactored the way forms are constructed for the page editor, to allow custom forms to be used
* Notification message on publish now indicates whether the page is being published now or scheduled for publication in future (Chris Rogers)
* Server errors when uploading images / documents through the chooser modal are now reported back to the user (Nigel Fletton)
* Added a hook `insert_global_admin_css` for inserting custom CSS throughout the admin backend (Tom Dyson)
* Added a hook `construct_explorer_page_queryset` for customising the set of pages displayed in the page explorer
* Page models now perform field validation, including testing slugs for uniqueness within a parent page, at the model level on saving
* Page slugs are now auto-generated at the model level on page creation if one has not been specified explicitly
* The `Page` model now has two new methods `get_site()` and `get_url_parts()` to aid with customising the page URL generation logic
* Upgraded jQuery to 2.2.1 (Charlie Choiniere)
* Multiple homepage summary items (`construct_homepage_summary_items` hook) now better vertically spaced (Nicolas Kuttler)
* Email notifications can now be sent in HTML format (Mike Dingjan)
* `StreamBlock` now has provision for throwing non-field-specific validation errors
* Wagtail now works with Willow 0.3, which supports auto-correcting the orientation of images based on EXIF data
* New translations for Hungarian, Swedish (Sweden) and Turkish
* Fix: Custom page managers no longer raise an error when used on an abstract model
* Fix: Wagtail's migrations are now all reversible (Benjamin Bach)
* Fix: Deleting a page content type now preserves existing pages as basic Page instances, to prevent tree corruption
* Fix: The `Page.path` field is now explicitly given the "C" collation on PostgreSQL to prevent tree ordering issues when using a database created with the Slovak locale
* Fix: Wagtail's compiled static assets are now put into the correct directory on Windows (Aarni Koskela)
* Fix: `ChooserBlock` now correctly handles models with primary keys other than `id` (alexpilot11)
* Fix: Fixed typo in Wistia oEmbed pattern (Josh Hurd)
* Fix: Added more accurate help text for the Administrator flag on user accounts (Matt Fozard)
* Fix: Tags added on the multiple image uploader are now saved correctly
* Fix: Documents created by a user are no longer deleted when the user is deleted
* Fix: Fixed a crash in `RedirectMiddleware` when a middleware class before `SiteMiddleware` returns a response (Josh Schneier)
* Fix: Fixed error retrieving the moderator list on pages that are covered by multiple moderator permission records (Matt Fozard)
* Fix: Ordering pages in the explorer by reverse 'last updated' time now puts pages with no revisions at the top
* Fix: WagtailTestUtils now works correctly on custom user models without a ``username`` field (Adam Bolfik)
* Fix: Logging in to the admin as a user with valid credentials but no admin access permission now displays an error message, rather than rejecting the user silently
* Fix: StreamBlock HTML rendering now handles non-ASCII characters correctly on Python 2 (Mikalai Radchuk)
* Fix: Fixed a bug preventing pages with a OneToOneField from being copied (Liam Brenner)
* Fix: SASS compilation errors during Wagtail development no longer cause exit of Gulp process, instead throws error to console and continues (Thomas Winter)
* Fix: Explorer page listing now uses specific page models, so that custom URL schemes defined on Page subclasses are respected
* Fix: Made settings menu clickable again in Firefox 46.0a2 (Juha Kujala)
* Fix: User management index view no longer assumes the presence of `username`, `first_name`, `last_name` and `email` fields on the user model (Eirik Krogstad)
1.3.1 (05.01.2016)
~~~~~~~~~~~~~~~~~~
* Fix: Applied workaround for failing wagtailimages migration on Django 1.8.8 / 1.9.1 with Postgres (see <https://code.djangoproject.com/ticket/26034>)
1.3 (23.12.2015)
~~~~~~~~~~~~~~~~
* Django 1.9 support
* Support for indexing fields across relations in Elasticsearch
* Added toolbar to cross-link between different search areas, and `register_admin_search_area` hook to register new areas (Ben Kerle)
* Added `WagtailPageTests`, a helper module to simplify writing tests for Wagtail sites
* Added system checks to check the `subpage_types` and `parent_page_types` attributes of page models
* Added `WAGTAIL_PASSWORD_RESET_ENABLED` setting to allow password resets to be disabled independently of the password management interface (John Draper)
* Submit for moderation notification emails now include the editor name (Denis Voskvitsov)
* 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
* Added keyboard shortcuts for preview and save in the page editor
* Added `Page` methods `can_exist_under`, `can_create_at`, `can_move_to` for customising page type business rules
* `wagtailadmin.utils.send_mail` now passes extra keyword arguments to Django's `send_mail` function (Matthew Downey)
* `page_unpublish` signal is now fired for each page that was unpublished by a call to `PageQuerySet.unpublish()`
* Add `get_upload_to` method to `AbstractImage`, to allow overriding the default image upload path (Ben Emery)
* Notification emails are now sent per user (Matthew Downey)
* Added the ability to override the default manager on Page models
* Added an optional human-friendly `site_name` field to sites (Timo Rieber)
* Added a system check to warn developers who use a custom Wagtail build but forgot to build the admin css
* Added success message after updating image from the image upload view (Christian Peters)
* Added a `request.is_preview` variable for templates to distinguish between previewing and live (Denis Voskvitsov)
* Added support for chaining multiple image operations on the `{% image %}` tag (Christian Peters)
* New translations for Arabic, Latvian and Slovak
* 'Pages' link on site stats dashboard now links to the site homepage when only one site exists, rather than the root level
* Fix: Images and page revisions created by a user are no longer deleted when the user is deleted (Rich Atkinson)
* Fix: HTTP cache purge now works again on Python 2 (Mitchel Cabuloy)
* Fix: Locked pages can no longer be unpublished (Alex Bridge)
* Fix: Site records now implement `get_by_natural_key`
* Fix: Creating pages at the root level (and any other instances of the base `Page` model) now properly respects the `parent_page_types` setting
* Fix: Settings menu now opens correctly from the page editor and styleguide views
* Fix: `subpage_types` / `parent_page_types` business rules are now enforced when moving pages
* Fix: Multi-word tags on images and documents are now correctly preserved as a single tag (LKozlowski)
* Fix: Changed verbose names to start with lower case where necessary (Maris Serzans)
* Fix: Invalid images no longer crash the image listing (Maris Serzans)
* Fix: `MenuItem` `url` parameter can now take a lazy URL (Adon Metcalfe, rayrayndwiga)
* Fix: Added missing translation tag to InlinePanel 'Add' button (jnns)
* Fix: Added missing translation tag to 'Signing in...' button text (Eugene MechanisM)
* Fix: Restored correct highlighting behaviour of rich text toolbar buttons
* Fix: Rendering a missing image through ImageChooserBlock no longer breaks the whole page (Christian Peters)
* Fix: Filtering by popular tag in the image chooser now works when using the database search backend
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.