1=========
2Changelog
3=========
4
5
63.7.1 (2019-11-26)
7==================
8
9* Added code of conduct reference file to the root directory
10* Moved contributing file to the root directory
11* Added better templates for new issue requests
12* Fixed a bug where creating a page via the ``cms.api.create_page`` ignores
13  left/right positions.
14* Fixed documentation example for ``urls.py`` when using multiple languages.
15* Mark public static placeholder dirty when published.
16* Fixed a bug where ``request.current_page`` would always be the public page,
17  regardless of the toolbar status (draft / live). This only affected custom
18  urls from an apphook.
19* Fixed a bug where the menu would render draft pages even if the page on
20  the request was a public page. This happens when a user without change
21  permissions requests edit mode.
22* Fixed the 'urls.W001' warning with custom apphook urls
23* Prevent non-staff users to login with the django CMS toolbar
24* Added missing ``{% trans %}`` to toolbar shortcuts.
25* Fixed branch and release policy.
26* Improved and simplified permissions documentation.
27* Improved apphooks documentation.
28* Improved CMSPluginBase documentation.
29* Improved documentation related to nested plugins.
30* Updated installation tutorial.
31* Fixed a simple typo in the docstring for ``cms.utils.helpers.normalize_name``.
32
33
343.7.0 (2019-09-25)
35==================
36
37* Introduced Django 2.2 support.
38* Introduced Python 3.7 support.
39* Fixed test suite.
40* Fixed override ``urlconf_module`` so that Django system checks don't crash.
41
42
433.6.0 (2019-01-29)
44==================
45
46* Removed the ``cms moderator`` command.
47* Dropped Django < 1.11 support.
48* Removed the translatable content get / set methods from ``CMSPlugin`` model.
49* Removed signal handlers for ``Page``, ``Title``, ``Placeholder`` and ``CMSPlugin`` models.
50* Moved ``Title.meta_description`` length restriction from model to form
51  and increased its max length to 320 characters.
52* Added ``page_title`` parameter for ``cms.api.create_page()`` and ``cms.api.create_title()``.
53* Introduced Django 2.0 support.
54* Introduced Django 2.1 support.
55
56
573.5.3 (2018-11-20)
58==================
59
60* Fixed ``TreeNode.DoesNotExist`` exception raised when exporting
61  and loading database contents via ``dumpdata`` and ``loaddata``.
62* Fixed a bug where ``request.current_page`` would always be the public page,
63  regardless of the toolbar status (draft / live). This only affected custom
64  urls from an apphook.
65* Removed extra quotation mark from the sideframe button template
66* Fixed a bug where structureboard tried to preload markup when using legacy
67  renderer
68* Fixed a bug where updates on other tab are not correctly propagated if the
69  operation was to move a plugin in the top level of same placeholder
70* Fixed a bug where xframe options were processed by clickjacking middleware
71  when page was served from cache, rather then get this value from cache
72* Fixed a bug where cached page permissions overrides global permissions
73* Fixed a bug where plugins that are not rendered in content wouldn't be
74  editable in structure board
75* Fixed a bug with expanding static placeholder by clicking on "Expand All" button
76* Fixed a bug where descendant pages with a custom url would lose the overwritten
77  url on save.
78* Fixed a bug where setting the ``on_delete`` option on ``PlaceholderField``
79  and ``PageField`` fields would be ignored.
80* Fixed a bug when deleting a modal from changelist inside a modal
81
82
833.5.2 (2018-04-11)
84==================
85
86* Fixed a bug where shortcuts menu entry would stop working after toolbar reload
87* Fixed a race condition in frontend code that could lead to sideframe being
88  opened with blank page
89* Fixed a bug where the direct children of the homepage would get a leading ``/``
90  character when the homepage was moved or published.
91* Fixed a bug where non-staff user would be able to open empty structure board
92* Fixed a bug where a static file from Django admin was referenced that no
93  longer existed in Django 1.9 and up.
94* Fixed a bug where the migration 0018 would fail under certain databases.
95
96
973.5.1 (2018-03-05)
98==================
99
100* Fixed a bug where editing pages with primary keys greater than 999 would throw an
101  exception.
102* Fixed a ``MultipleObjectsReturned`` exception raised on the page types migration
103  with multiple page types per site.
104* Fixed a bug which prevented toolbar js from working correctly when rendered
105  before toolbar.
106* Fixed a bug where CMS would incorrectly highlight plugin content when plugin
107  contains invisible elements
108* Fixed a regression where templates which inherit from a template using an ``{% extends %}``
109  tag with a default would raise an exception.
110
111
1123.5.0 (2018-01-31)
113==================
114
115* Fixed a bug which prevented users from seeing the welcome screen when debug is
116  turned off.
117* Introduced improved repr for ``Page``, ``Title``, ``Placeholder`` and ``CMSPlugin`` models.
118* Rename publish buttons to no longer reference "page"
119* Page rendering will now use the draft page instead of public page for logged in
120  users with change permissions, unless the ``preview`` GET parameter is used.
121* Fixed "Expand all / Collapse all" not reflecting real state of the placeholder tree
122* Fixed a bug where Aliased plugins would render if their host page was unpublished (and user was not on edit mode).
123* Fixed a bug where focusing inputs in modal would require 2 clicks in some browsers
124* Changed the language chooser to always show all configured languages to staff members
125  and public-only languages to anon users.
126* Introduced logic to copy pages to different sites from the admin.
127* Removed "View on Site" button when adding a page
128* Welcome page no longer uses multilingual URLs when not required.
129* Prevent users from passing a public page as parent in ``create_page`` api function
130
131
1323.4.5 (2017-10-12)
133==================
134
135* Introduced Django 1.11 compatibility
136* Fixed a bug where slug wouldn't be generated in the creation wizard
137* Fixed a bug where the add page endpoint rendered ``Change page`` as the html title.
138* Fixed an issue where non-staff users could request the wizard create endpoint.
139* Fixed an issue where the ``Edit page`` toolbar button wouldn't show on non-cms pages
140  with placeholders.
141* Fixed a bug where placeholder inheritance wouldn't work if the inherited placeholder
142  is cached in an ancestor page.
143* Fixed a regression where the code following a ``{% placeholder x or %}`` declaration,
144  was rendered before attempting to inherit content from parent pages.
145* Changed page/placeholder cache keys to use sha1 hash instead of md5 to be FIPS compliant.
146* Fixed a bug where the change of a slug would not propagate to all descendant pages
147* Fixed a ``ValueError`` raised when using ``ManifestStaticFilesStorage`` or similar for static files.
148  This only affects Django >= 1.10
149
150
1513.4.4 (2017-06-15)
152==================
153
154* Fixed a bug in which cancelling the publishing dialog wasn't respected.
155* Fixed a bug causing post-login redirection to an incorrect URL on single-language sites.
156* Changed the signature for internal ``cms.plugin_base.CMSPluginBase`` methods ``get_child_classes``
157  and ``get_parent_classes`` to take an optional ``instance`` parameter.
158* Fixed an error when retrieving placeholder label from configuration.
159* Fixed a bug which caused certain translations to display double-escaped text in the page
160  list admin view.
161* Adjusted the toolbar JavaScript template to escape values coming from the request.
162* Added Dropdown class to toolbar items
163* Replaced all custom markup on the ``admin/cms/page/includes/fieldset.html`` template
164  with an ``{% include %}`` call to Django's built-in ``fieldset.html`` template.
165* Fixed a bug which prevented a page from being marked as dirty when a placeholder was cleared.
166* Fixed an IntegrityError raised when publishing a page with no public version and whose publisher
167  state was pending.
168* Fixed an issue with JavaScript not being able to determine correct path to the async bundle
169* Fixed a ``DoesNotExist`` database error raised when moving a page marked as published, but whose public
170  translation did not exist.
171* Fixed a bug in which the menu rendered nodes using the site session variable (set in the admin),
172  instead of the current request site.
173* Fixed a race condition bug in which the database cache keys were deleted without syncing with the
174  cache server, and as a result old menu items would continue to be displayed.
175* Fixed a 404 raised when using the ``Delete`` button for a Page or Title extension on Django >= 1.9
176* Added "How to serve multiple languages" section to documentation
177* Fixed a performance issue with nested pages when using the ``inherit`` flag on the ``{% placeholder %}`` tag.
178* Removed the internal ``reset_to_public`` page method in favour of the ``revert_to_live`` method.
179* Fixed a bug in which the placeholder cache was not consistently cleared when a page was published.
180* Enhanced the plugin menu to not show plugins the user does not have permission to add.
181* Fixed a regression which prevented users from setting a redirect to the homepage.
182
183
1843.4.3 (2017-04-24)
185==================
186
187* Fixed a security vulnerability in the page redirect field which allowed users
188  to insert JavaScript code.
189* Fixed a security vulnerability where the ``next`` parameter for the toolbar login
190  was not sanitised and could point to another domain.
191
192
1933.4.2 (2017-01-23)
194==================
195
196* Escaped strings in ``close_frame`` JS template.
197* Fixed a bug with `text-transform` styles on inputs affecting CMS login
198* Fixed a typo in the confirmation message for copying plugins from a different
199  language
200* Fixed a bug which prevented certain migrations from running in a multi-db setup.
201* Fixed a regression which prevented the ``Page`` model from rendering correctly
202  when used in a ``raw_id_field``.
203* Fixed a regression which caused the CMS to cache the toolbar when ``CMS_PAGE_CACHE``
204  was set to ``True`` and an anonymous user had ``cms_edit`` set to ``True`` on their session.
205* Fixed a regression which prevented users from overriding content in an inherited
206  placeholder.
207* Added official support for Django 1.10.
208* Fixed a bug affecting Firefox for Macintosh users, in which use of the Command key later followed by Return would
209  trigger a plugin save.
210* Fixed a bug where template inheritance setting creates spurious migration (see #3479)
211* Fixed a bug which prevented the page from being marked as dirty (pending changes)
212  when changing the value of the overwrite url field.
213* Adjusted Ajax calls triggered when performing a placeholder operation (add plugin, etc..) to include
214  a GET query called cms_path. This query points to the path where the operation originates from.
215* Added a deprecation warning to method ``render_plugin()`` in class ``CMSPlugin``.
216* Since ``get_parent_classes()`` became a classmethod, do not instantiate plugin before invocation.
217* Fixed a bug where the page tree would not update correctly when a sibling page was moved
218  from left to right or right to left.
219* Improved the ``fix-tree`` command so that it also fixes non-root nodes (pages).
220* Removed the deprecated ``add_url()``, ``edit_url()``, ``move_url()``, ``delete_url()``, ``copy_url()`` properties of
221  CMSPlugin model.
222* Deprecated ``frontend_edit_template`` attribute of ``CMSPluginBase``.
223* Introduced placeholder operation signals.
224* The ``post_`` methods in ```PlaceholderAdminMixin`` have been deprecated in favor of
225  placeholder operation signals.
226* Re-introduced the "Revert to live" menu option.
227* Added support for django-reversion >= 2 (see #5830)
228* Rewrote manual installation how-to documentation
229
230
2313.4.1 (2016-10-04)
232==================
233
234* Fixed a regression when static placeholder was uneditable if it was present
235  on the page multiple times
236* Removed globally unique constraint for Apphook configs.
237* Fixed a bug when keyboard shortcuts were triggered when form fields were
238  focused
239* Fixed a bug when ``shift + space`` shortcut wouldn't correctly highlight a
240  plugin in the structure board
241* Fixed a bug when plugins that have top-level svg element would break
242  structure board
243* Fixed a bug where output from the ``show_admin_menu_for_pages`` template tag
244  was escaped in Django 1.9
245* Fixed a bug where plugins would be rendered as editable if toolbar was shown
246  but user was not in edit mode.
247* Fixed css reset issue with shortcuts modal
248
249
2503.4.0 (2016-09-14)
251==================
252
253* Changed the way CMS plugins are rendered. The div with `cms-plugin` class is
254  no longer rendered around every CMS plugin, instead a combination of `template`
255  tags and JavaScript is used to add event handlers and plugin data directly to
256  the plugin markup. This fixes most of the rendering issues that were present
257  because of the extra markup.
258* Changed cache-busting implementation, it is now handled by a path change,
259  not by GET parameter.
260* Added a possibility to copy pages in the Page Tree by drag'n'drop.
261* Make it possible to use multi-table inheritance for Page/Title extensions.
262* Refactored plugin rendering functionality to speed up loading time in both
263  structure and content mode.
264* Added ``Shift + Space`` shortcut that behaves similar to ``Space`` shortcut
265  but takes into account currently hovered plugin.
266* Improved keyboard navigation
267* Added help modal about available shortcuts
268* Added fuzzy matching to plugin picker
269* Changed the ``downcast_plugins`` utility to return a generator instead of a list
270* Fixed a bug that caused an aliased placeholder to show in structure mode.
271* Fixed a bug which prevented aliased content from showing correctly without
272  publishing the page first.
273* Added help text to an ``Alias`` plugin change form when attached to a page
274  to show the content editor where the content is aliased from.
275* Removed revision support from djangoCMS core.
276  As a result both ``CMS_MAX_PAGE_HISTORY_REVERSIONS`` and ``CMS_MAX_PAGE_PUBLISH_REVERSIONS``
277  settings are no longer supported, as well as the ``with_revision`` parameter
278  in ``cms.api.create_page`` and ``cms.api.create_title``.
279
280
2813.3.3 (unreleased)
282==================
283
284* Fixed a bug where where the plugin picker would display the plugin names
285  translated in the request language instead of the user's language.
286* Fixed a bug which raised an exception when the ``AdvancedSettingsForm``
287  failed validation on certain fields.
288* Fixed a bug with widgets not initialising correctly sometimes
289* Fixed a tree corruption when moving a published page under a published one.
290* Fixed a tree corruption caused by ``fix-tree`` when an unpublished page is parent
291  to a published page.
292* Fixed an error when publishing a page that has an unpublished child page who is
293  parent to a published page.
294* Fixed a bug where moving a published page under a page marked as pending publishing
295  is left as published instead of being marked as pending publishing.
296* Fixed AttributeError when using ``create_page`` in management command
297* Fixed a bug in getting the language from current request which can cause error 500
298* API functions are now atomic by design (use the @atomic decorator)
299* Fixed a bug where a ``Page`` was created with it's languages field set to ``None``.
300
301
3023.3.2 (2016-08-11)
303==================
304
305* Fixed a bug where it wasn't possible to scroll the toolbar menu if scroll
306  started on the disabled menu item on small screens.
307* Fixed a migration error (0014) that occurred under certain environments.
308* Fixed a regression when standalone CMS Widgets wouldn't work due to
309  non-existing JavaScript dependencies.
310* Fixed a possible recursion error when using the ``Alias`` plugin.
311* Fixed a regression where submit handlers for modal form wouldn't be executed
312  under certain circumstances
313
314
3153.3.1 (2016-07-13)
316==================
317
318* Added a warning for users who are leaving the page or closing the plugin
319  modal by pressing ESC to prevent accidental loss of content.
320* Fixed a bug when clicking inside sideframe didn't close toolbar dropdowns
321* Fixed a bug where saving errors wouldn't be shown in the modal window.
322* Fixed a misleading message when modal iframe contents couldn't be accessed.
323* Added a workaround for a bug when plugins couldn't be deleted in Firefox
324  with 1Password extension installed
325* Changed CMS JavaScript bundling from simple concatenation to webpack-based.
326  Using CMS JavaScript modules directly is no longer possible.
327* Fixed an issue where plugins that have no immediate DOM representation
328  wouldn't be editable or movable.
329* Fixed a regression in which plugins that defined ``parent_classes``
330  would not show up in the structure mode.
331* Introduced new logic to leverage Django's dynamic related name
332  functionality on ``CMSPlugin`` subclasses for the parent link field.
333* Backported a performance fix from Django to avoid extra queries when
334  plugins access their parent via the parent link field ``cmsplugin_ptr``.
335* Fixed typo in ``AdvancedSettingsForm`` error messages.
336* Fixed long standing bug that prevented apphook endspoints from being
337  CSRF exempt.
338* Changed default value for ``CMS_INTERNAL_IPS``.
339* Fixed an issue that prevented non superusers from copying all plugins
340  in a placeholder.
341* Fixed an issue where plugin permissions where not checked when clearing
342  a placeholder.
343* Fixed an issue where plugin permissions where not checked when deleting
344  a page or page translation.
345* Added support for tiered ``CMS_PLACEHOLDER_CONF``.
346* Fixed a useless placeholders edit permissions checking when not in edit
347  mode.
348* Fixed a bug where users with limited permissions could not interact with
349  page tree dropdowns.
350* Fixed a bug where Django Compressor could not be used on the sekizai ``js``
351  block.
352* Fixed an encoding error when running the ``publisher-publish`` command.
353* Fixed regression introduced in 3.3.0 when using the
354  ``render_plugin_toolbar_config`` template tag directly.
355* Fixed ``render_model`` template tags to work with models containing deferred
356  fields.
357* Fixed error in retrieving placeholder label from configuration.
358
359
3603.3.0 (2016-05-26)
361==================
362
363* Fixed regression in management commands
364* Fixed documentation typo
365* Added contribution policies documentation
366* Corrected documentation in numerous places
367* Corrected an issue where someone could see and use the internal placeholder plugin in the structure board
368* Fixed a regression where the first page created was not automatically published
369* Corrected the instructions for using the ``delete-orphaned-plugins`` command
370* Re-pinned django-treebeard to >=4.0.1
371* Added CMS_WIZARD_CONTENT_PLACEHOLDER setting
372* Renamed the CMS_WIZARD_* settings to CMS_PAGE_WIZARD_*
373* Deprecated the old-style wizard-related settings
374* Improved documentation further
375* Improved handling of uninstalled apphooks
376* Fixed toolbar placement when foundation is installed
377* Fixed an issue which could lead to an apphook without a slug
378* Fixed numerous frontend issues
379* Removed support for Django 1.6, 1.7 and python 2.6
380* Changed the default value of CMSPlugin.position to 0 instead of null
381* Refactored the language menu to allow for better integration with many languages
382* Refactored management commands completely for better consistency
383* Fixed "failed to load resource" for favicon on welcome screen
384* Changed behaviour of toolbar CSS classes: ``cms-toolbar-expanded`` class is only added now when toolbar is fully
385  expanded and not at the beginning of the animation. ``cms-toolbar-expanding`` and ``cms-toolbar-collapsing`` classes
386  are added at the beginning of their respective animations.
387* Added unit tests for CMS JavaScript files
388* Added frontend integration tests (written with Casper JS)
389* Removed frontend integration tests (written with Selenium)
390* Added the ability to declare cache expiration periods on a per-plugin basis
391* Improved UI of page tree
392* Improved UI in various minor ways
393* Added a new setting CMS_INTERNAL_IPS for defining a set of IP addresses for which
394  the toolbar will appear for authorized users. If left unset, retains the
395  existing behavior of allowing toolbar for authorized users at any IP address.
396* Changed behaviour of sideframe; is no longer resizable, opens to 90% of the screen or 100% on
397  small screens.
398* Removed some unnecessary reloads after closing sideframe.
399* Added the ability to make pagetree actions work on currently picked language
400* Removed deprecated CMS_TOOLBAR_SIMPLE_STRUCTURE_MODE setting
401* Introduced the method ``get_cache_expiration`` on CMSPluginBase to be used
402  by plugins for declaring their rendered content's period of validity.
403* Introduced the method ``get_vary_cache_on`` on CMSPluginBase to be used
404  by plugins for declaring ``VARY`` headers.
405* Improved performance of plugin moving; no longer saves all plugins inside the placeholder.
406* Fixed breadcrumbs of recently moved plugin reflecting previous position in
407  the tree
408* Refactored plugin adding logic to no longer create the plugin before the user submits the form.
409* Improved the behaviour of the placeholder cache
410* Improved fix-tree command to sort by position and path when rebuilding positions.
411* Fixed several regressions and tree corruptions on page move.
412* Added new class method on CMSPlugin ``requires_parent_plugin``
413* Fixed behaviour of ``get_child_classes``; now correctly calculates child classes when not
414  configured in the placeholder.
415* Removed internal ``ExtraMenuItems`` tag.
416* Removed internal ``PluginChildClasses`` tag.
417* Modified RenderPlugin tag; no longer renders the ``content.html`` template
418  and instead just returns the results.
419* Added a ``get_cached_template`` method to the ``Toolbar()`` main class to reuse loaded templates per request. It
420  works like Django's cached template loader, but on a request basis.
421* Added a new method ``get_urls()`` on the appbase class to get CMSApp.urls, to allow passing a page object to it.
422* Changed JavaScript linting from JSHint and JSCS to ESLint
423* Fixed a bug when it was possible to drag plugin into clipboard
424* Fixed a bug where clearing clipboard was closing any open modal
425
426
4273.2.5 (2016-04-27)
428==================
429
430- Fixed regression when page couldn't be copied if CMS_PERMISSION was False
431- Improved handling of uninstalled apphooks
432- Fix packaging problem with the wheel distribution
433
434
4353.2.4 (2016-04-26)
436==================
437
438- Fix cache settings
439- Fix user lookup for view restrictions/page permissions when using raw id field
440- Fixed regression when page couldn't be copied if CMS_PERMISSION was False
441- Fixes an issue relating to uninstalling a namespaced application
442- Adds "Can change page" permission
443- Fixes a number of page-tree issues the could lead data corruption under
444  certain conditions
445- Addresses security vulnerabilities in the `render_model` template tag that
446  could lead to escalation of privileges or other security issues.
447- Addresses a security vulnerability in the cms' usage of the messages framework
448- Fixes security vulnerabilities in custom FormFields that could lead to
449  escalation of privileges or other security issues.
450
451
4523.2.3 (2016-03-09)
453==================
454
455- Fix the display of hyphenated language codes in the page tree
456- Fix a family of issues relating to unescaped translations in the page tree
457
458
4593.2.2 (2016-03-02)
460==================
461
462- Substantial improvements to the page tree and significant reduction of reloads
463- Update jsTree version to 3.2.1 with slight adaptions to the Pagetree
464- Documentation improvements
465- Improve the display and useability of the language menu, especially in cases
466  where there are many languages.
467- Fix an issue relating to search fields in plugins
468- Fix an issue where the app-resolver would trigger locales into migrations
469- Fix cache settings
470- Fix ToolbarMiddleware.is_cms_request logic
471- Fix numerous Django 1.9 deprecations
472- Numerous other improvements to overall stability and code quality
473
474
4753.2.1 (2016-01-29)
476==================
477
478- Add support for Django 1.9 (with some deprecation warnings).
479- Add support for django-reversion 1.10+ (required by Django 1.9+).
480- Add placeholder name to the edit tooltip.
481- Add ``attr['is_page']=True`` to CMS Page navigation nodes.
482- Add Django and Python versions to debug bar info tooltip
483- Fix an issue with refreshing the UI when switching CMS language.
484- Fix an issue with sideframe urls not being remembered after reload.
485- Fix breadcrumb in page revision list.
486- Fix clash with Foundation that caused "Add plugin" button to be unusable.
487- Fix a tree corruption when pasting a nested plugin under another plugin.
488- Fix message with CMS version not showing up on hover in debug mode.
489- Fix messages not being positioned correctly in debug mode.
490- Fix an issue where plugin parent restrictions where not respected when pasting a plugin.
491- Fix an issue where "Copy all" menu item could have been clicked on empty placeholder.
492- Fix a bug where page tree styles didn't load from STATIC_URL that pointed to a different host.
493- Fix an issue where the side-frame wouldn't refresh under some circumstances.
494- Honor CMS_RAW_ID_USERS in GlobalPagePermissionAdmin.
495
496
4973.2.0 (2015-11-24)
498==================
499
500- Added new wizard to improve content creation
501- Added Aldryn Apphook Reload https://github.com/aldryn/aldryn-apphook-reload/ into core
502- Added database migration creating ``UrlconfRevision`` for apphook reload.
503- Added tooltips for certain user interaction elements
504- Added full touch support and optimisations for mobile devices
505- Added gulp.js for linting, compressing and bundling
506- Added YuiDocs for JavaScript documentation
507- Added ``CMS_TOOLBAR_SIMPLE_STRUCTURE_MODE`` to switch back to the old board rendering,
508  this will be deprecated in 3.3.0
509- Added ``request.toolbars.placeholder_list`` this will replace
510  ``request.toolbars.placeholders`` in 3.3.0
511- Added new installation screen with optimisation alongside the new content creation wizard
512- Added ``.editorconfig`` to the django-cms project
513- Added HTML rendering capabilities for the modal
514- Added browser history to the sideframe
515- Improved design for better touch support
516- Improved design for better accessibility support such as contrast ratio
517- Improved design to reflect latest responsive design standards such as the toolbar
518  menu which collapses to "More"
519- Improved UI for scrolling, saving and navigating through content
520  creation and editing such as ``CTRL + Enter`` for saving
521- Improved overall speed loading times and interaction response
522- Improved drag & drop experience
523- Improved structure board hierarchy to be displayed as tree elements instead of nested boxes
524- Improved clipboard to be integrated within the toolbar and structure board (copy & paste)
525- Improved modal UI and added significant speed improvements
526- Improved sideframe UI and reduced functionality
527- Improved messaging system within ``cms.messages.js``
528- Improved pagetree design and UI (soft-redesign) refactoring will follow in 3.3
529- Improved parent plugin restricts on frontend
530- Improved frontend code to comply with aldryn-boilerplate-bootstrap3
531- Improved folder structure for frontend related components such as JavaScript and SASS
532- Improved color and value variable declarations for Styles
533- Improved key mapping for actions such as saving, closing and switching across browsers
534- Switched from tabs to 4 spaces everywhere
535- Switched from ruby sass/compass to libsass/autoprefixer
536- Switched from sprite images to auto generated webfonts via gulp
537- Moved widgets.py javascript to ``static/cms/js/widgets``
538- Fixed an issue in which placeholder template tags ignored the ``lang`` parameter
539- Renamed cms_app, cms_menu, cms_toolbar to plural versions eg. ``cms_apps.py``
540  ``cms_menus.py``, ``cms_toolbars.py`` with backwards compatibility
541- Removed all id attributes on html elements in favour of classes
542- Removed 'develop.py' to replace with 'manage.py' (devs)
543- Removed Alias plugin from list of plugins (Create Alias still an option)
544- Added support for 3rd party admin themes
545- Update the toolbar tutorial
546- Update the 3rd party integration tutorial
547- Fixed an issue where dialogs can't be closed when activating prevent checkbox
548- Fixed edit and edit_off constants not being honoured in frontend code
549- Deprecate CMSPlugin.disable_child_plugin in favour of disable_child_plugins
550- Fixed an issue where ``allow_children`` and ``disable_child_plugins`` didn't work on dragitems
551
552
5533.1.8 (unreleased)
554==================
555
556- Removed html5lib from setup.py
557
558
5593.1.7 (2016-04-27)
560==================
561
562- Fix packaging problem with the wheel distribution
563
564
5653.1.6 (2016-04-26)
566==================
567
568- Fix cache settings
569- Fix user lookup for view restrictions/page permissions when using raw id field
570- Fixes an issue relating to uninstalling a namespaced application
571- Adds "Can change page" permission
572- Addresses security vulnerabilities in the `render_model` template tag that
573  could lead to escalation of privileges or other security issues.
574- Addresses a security vulnerability in the cms' usage of the messages framework
575- Fixes security vulnerabilities in custom FormFields that could lead to
576  escalation of privileges or other security issues.
577
578
5793.1.5 (2016-01-29)
580==================
581
582- Fixed a tree corruption when pasting a nested plugin under another plugin.
583- Improve CMSPluginBase.render documentation
584- Fix CMSEditableObject context generation which generates to errors with django-classy-tags 0.7.1
585- Fix error in toolbar when LocaleMiddleware is not used
586- Move templates validation in app.ready
587- Fix ExtensionToolbar when language is removed but titles still exists
588- Fix pages menu missing on fresh install 3.1
589- Fix incorrect language on placeholder text for redirect field
590- Fix PageSelectWidget JS syntax
591- Fix redirect when disabling toolbar
592- Fix CMS_TOOLBAR_HIDE causes 'WSGIRequest' object has no attribute 'toolbar'
593
594
5953.1.4 (2015-11-24)
596==================
597
598- Fixed a problem in ``0010_migrate_use_structure.py`` that broke some migration paths to Django 1.8
599- Fixed ``fix_tree`` command
600- Removed some warnings for Django 1.9
601- Fixed issue causing plugins to move when using scroll bar of plugin menu in Firefox & IE
602- Fixed JavaScript error when using ``PageSelectWidget``
603- Fixed whitespace markup issues in draft mode
604- Added plugin migrations layout detection in tests
605- Fixed some treebeard corruption issues
606
607
6083.1.3 (2015-09-01)
609==================
610
611- Add missing migration
612- Exclude PageUser manager from migrations
613- Fix check for template instance in Django 1.8.x
614- Fix error in PageField for Django 1.8
615- Fix some Page tree bugs
616- Declare Django 1.6.9 dependency in setup.py
617- Make sure cache version returned is an int
618- Fix issue preventing migrations to run on a new database (django 1.8)
619- Fix get User model in 0010 migration
620- Fix support for unpublished language pages
621- Add documentation for plugins datamigration
622- Fix getting request in _show_placeholder_for_page on Django 1.8
623- Fix template inheritance order
624- Fix xframe options inheritance order
625- Fix placeholder inheritance order
626- Fix language chooser template
627- Relax html5lib versions
628- Fix redirect when deleting a page
629- Correct South migration error
630- Correct validation on numeric fields in modal popups
631- Exclude scssc from manifest
632- Remove unpublished pages from menu
633- Remove page from menu items for performance reason
634- Fix reachability of pages with expired ancestors
635- Don't try to modify an immutable QueryDict
636- Only attempt to delete cache keys if there are some to be deleted
637- Update documentation section
638- Fix language chooser template
639- Cast to int cache version
640- Fix extensions copy when using duplicate page/create page type
641
642
6433.1.2 (2015-07-02)
644==================
645
646- Fix placeholder cache invalidation under some circumstances
647- Update translations
648
649
6503.1.1 (2015-06-27)
651==================
652
653- Add Django 1.8 support
654- Tutorial updates and improvements
655- Fix issue with causes menu classes to be duplicated in advanced settings
656- Fix issue with breadcrumbs not showing
657- Fix issues with show_menu templatetags
658- Minor documentation fixes
659- Revert whitespace cleanup on flash player to fix it
660- Correctly restore previous status of dragbars
661- Add copy_site command
662- Fix an issue related to "Empty all" Placeholder feature
663- Fix plugin sorting in py3
664- Fix language-related issues when retrieving page URL
665- Add setting to disable toolbar for anonymous users
666- Fix search results number and items alignment in page changelist
667- Preserve information regarding the current view when applying the CMS decorator
668- Fix errors with toolbar population
669- Fix error with watch_models type
670- Fix error with plugin breadcrumbs order
671- Change the label "Save and close" to "Save as draft"
672- Fix X-Frame-Options on top-level pages
673- Fix order of which application urls are injected into urlpatterns
674- Fix delete non existing page language
675- Fix language fallback for nested plugins
676- Fix render_model template tag doesn't show correct change list
677- Fix Scanning for placeholders fails on include tags with a variable as an argument
678- Fix handling of plugin position attribute
679- Fix for some structureboard issues
680- Add setting to hide toolbar when a URL is not handled by django CMS
681- Add editorconfig configuration
682- Make shift tab work correctly in submenu
683- Fix get_language_from_request if POST and GET exists
684- Fix an error in placeholder cache
685- Fix language chooser template
686
687
6883.1.0 (2015-04-20)
689==================
690
691- Remove django-mptt in favor of django-treebeard
692- Remove compatibility with Django 1.4 / 1.5
693- General code cleanup
694- Simplify loading of view restrictions in the menu
695- South is not marked as optional; to use south on Django 1.6 install django-cms[south]
696- Add system_plugin attribute to CMSPluginBase that allow the plugin to override any configured restriction
697- Change placeholder language fallback default to True
698- Remove plugin table naming compatibility layer
699- Remove deprecated cms.context_processors.media context processor
700- Add templatetag render_plugin_block
701- Add templatetag render_model_add_block
702- Add "Structure mode" permission
703
704
7053.0.17 (unreleased)
706==================
707
708- Addresses security vulnerabilities in the `render_model` template tag that could
709  lead to escalation of privileges or other security issues.
710- Fix ExtensionToolbar when language is removed but titles still exists…
711- Fix PageSelectWidget JS syntax
712- Fix cache settings
713
714
7153.0.16 (2015-11-24)
716==================
717
718- Fixed JavaScript error when using ``PageSelectWidget``
719- Fixed whitespace markup issues in draft mode
720- Added plugin migrations layout detection in tests
721
722
7233.0.15 (2015-09-01)
724==================
725
726- Relax html5lib versions
727- Fix redirect when deleting a page
728- Correct South migration error
729- Correct validation on numeric fields in modal popups
730- Exclude scssc from manifest
731- Remove unpublished pages from menu
732- Remove page from menu items for performance reason
733- Fix reachability of pages with expired ancestors
734- Don't try to modify an immutable QueryDict
735- Only attempt to delete cache keys if there are some to be deleted
736- Update documentation section
737- Fix language chooser template
738- Cast to int cache version
739- Fix extensions copy when using duplicate page/create page type
740
741
7423.0.14 (2015-06-27)
743==================
744
745- Fixed an issue where privileged users could be tricked into performing actions without their knowledge via a CSRF vulnerability
746- Fixed an issue related to "Empty all" Placeholder feature
747- Fix issue with causes menu classes to be duplicated in advanced settings
748- Fix issue with breadcrumbs not showing
749- Fix issues with show_menu templatetags
750- Fix plugin sorting in py3
751- Fix search results number and items alignment in page changelist
752- Fix X-Frame-Options on top-level pages
753- Preserve information regarding the current view when applying the CMS decorator
754- Fix render_model template tag doesn't show correct change list
755- Fix language fallback for nested plugins
756- Fix order of which application urls are injected into urlpatterns
757- Fix delete non existing page language
758- Fix Scanning for placeholders fails on include tags with a variable as an argument
759- Minor documentation fixes
760- Pin South version to 1.0.2
761- Pin Html5lib version to 0.999 until a current bug is fixed
762- Fix language chooser template
763
764
7653.0.13 (2015-04-15)
766==================
767
768- Numerous documentation including installation and tutorial updates
769- Numerous improvements to translations
770- Improves reliability of apphooks
771- Improves reliabiliy of Advanced Settings on page when using apphooks
772- Allow page deletion after template removal
773- Improves upstream caching accuracy
774- Improves CMSAttachMenu registration
775- Improves handling of mistyped URLs
776- Improves redirection as a result of changes to page slugs, etc.
777- Improves performance of "watched models"
778- Improves frontend performance relating to resizing the sideframe
779- Corrects an issue where items might not be visible in structue mode menus
780- Limits version of django-mptt used in CMS for 3.0.x
781- Prevent accidental upgrades to Django 1.8, which is not yet supported
782
783
7843.0.12 (2015-03-06)
785==================
786
787- Fixed a typo in JavaScript which prevents page tree from working
788
789
7903.0.11 (2015-03-05)
791==================
792
793- Core support for multiple instances of the same apphook'ed application
794- Fixed the template tag `render_model_add`
795- Fixed an issue with reverting to Live
796- Fixed a missing migration issue
797- Fixed an issue when using the PageField widget
798- Fixed an issue where duplicate page slugs is not prevented in some cases
799- Fixed an issue where copying a page didn't copy its extensions
800- Fixed an issue where translations where broken when operating on a page
801- Fixed an edge-case SQLite issue under Django 1.7
802- Fixed an issue with confirmation dialog
803- Fixed an issue with deprecated 'mimetype'
804- Fixed an issue where `cms check`
805- Documentation updates
806
807
8083.0.10 (2015-02-14)
809==================
810
811- Improved Py3 compatibility
812- Improved the behavior when changing the operator's language
813- Numerous documentation updates
814- Revert a change that caused an issue with saving plugins in some browsers
815- Fix an issue where urls were not refreshed when a page slug changes
816- Fix an issue with FR translations
817- Fixed an issue preventing the correct rendering of custom contextual menu items for plugins
818- Fixed an issue relating to recovering deleted pages
819- Fixed an issue that caused the uncached placeholder tag to display cached content
820- Fixed an issue where extra slashed would appear in apphooked URLs when APPEND_SLASH=False
821- Fixed issues relating to the logout function
822
823
8243.0.9 (2015-01-11)
825==================
826
827- Revert a change that caused a regression in toolbar login
828- Fix an error in a translated phrase
829- Fix error when moving items in the page tree
830
831
8323.0.8 (2015-01-11)
833==================
834
835- Add require_parent option to CMS_PLACEHOLDER_CONF
836- Fix django-mptt version depenency to be PEP440 compatible
837- Fix some Django 1.4 compatibility issues
838- Add toolbar sanity check
839- Fix behavior with CMSPluginBase.get_render_template()
840- Fix issue on django >= 1.6 with page form fields.
841- Resolve jQuery namespace issues in admin page tree and changeform
842- Fix issues for PageField in Firefox/Safari
843- Fix some Python 3.4 compatibility issue when using proxy modles
844- Fix corner case in plugin copy
845- Documentation fixes
846- Minor code cleanups
847
848
8493.0.7 (2014-11-27)
850==================
851
852- Complete Django 1.7 support
853- Numerous updates to the documentation
854- Numerous updates to the tutorial
855- Updates to better support South 1.0
856- Adds some new, user-facing documentation
857- Fixes an issue with placeholderadmin permissions
858- Numerous fixes for minor issues with the frontend UI
859- Fixes issue where the CMS would not reload pages properly if the URL contained a # symbol
860- Fixes an issue relating to 'limit_choices_to' in forms.MultiValueFields
861- Fixes PageField to work in Django 1.7 environments
862- Updates to community and project governance documentation
863- Added list of retired core developers
864- Added branch policy documentaion
865
866
8673.0.6 (2014-10-07)
868==================
869
870- Experimental full Django 1.7 migrations support
871- Add CMSPlugin.get_render_model to get the plugin model at render time
872- Add simplified API to handle toolbar for page extensions
873- Extended custom user model support
874- Added option to publish all the pages in a language / site in publisher_publish command
875- Fixed a few frontend glitches
876- Fixed menu when hide untranslated is set to False
877- Fix sitemap ordering
878- Fix plugin table name generation fixes
879
880
8813.0.5 (2014-08-20)
882==================
883
884- Fixes 2 regressions introduced in 3.0.4
885- apphook and plugins can now be registered via decorator
886
887
8883.0.4 (2014-08-16)
889==================
890
891- Removed file cms/utils/compat/type_checks.py, use django.utils.six module instead
892- Removed file cms/utils/compat/string_io.py, use django.utils.six module instead
893- Removed file cms/utils/compat/input.py, use django.utils.six module instead
894- Use PY3 from django.utils.six instead of PY2 from cms.utils.compat to check Python version
895- Staticplaceholders have not their own permissions
896- Apphooks support now nested namespaces
897- Apphooks can now exclude module for page permission checking
898- fixed the permissions for plugins on apphook pages
899- Allow the use of custom admin sites that do not reside under the 'admin' namespace
900- Added django 1.7 migrations
901- updated docs
902- slots for placeholders can now be 255 characters long
903- Plugin pool initialises incorrectly if database is down during first request
904- some refactoring and simplifications
905
906
9073.0.3 (2014-07-07)
908==================
909
910- Added an alias plugin for referencing plugins and placeholders
911- Added an api to change the context menus of plugins and placeholders from plugins
912- Apphooks respect the page permissions
913- Decorator for views with page permissions
914- #3266 - api.create_page respects site
915- Fixed how permissions are checked for static placeholder.
916- Reduced queries on placeholder.clear by 60%
917- auto-detect django-suit instead of using explicit setting
918- Added the ability to mark (Sub)Menu's 'active'.
919- fallback language fixes for pages
920- Implemented transaction.atomic in django 1.4/1.5 way
921- Added a automatic dynamic template directory for page templates
922
923
9243.0.2 (2014-05-21)
925==================
926
927- Add 'as' form to render_placeholder templatetag to save the result in context
928- Added changeable strings for "?edit", "?edit_off" and "?build" urls
929- utils.page_resolver was optimized. get_page_from_path() api changed
930
931
9323.0.1 (2014-04-30)
933==================
934
935- Renamed NamespaceAllreadyRegistered to NamespaceAlreadyRegistered in menus/exceptions.py
936- Frontend editor UI fixes
937- Fix in cms fix-mptt command
938
939
9403.0.0 (2014-04-08)
941==================
942
943- Plugins are only editable in frontend
944- PluginEditor has been removed in backend
945- New frontend editing
946- New Toolbar
947- Plugin API for creating new plugins and moving has changed
948- render_to_response replaced with TemplateResponse in cms.views
949- CMS_SEO_FIELDS removed and seo fields better integrated
950- meta_keywords field removed as not relevant anymore
951- CMS_MENU_TITLE_OVERWRITE default changed to True
952- Toolbar has language switcher built in
953- User settings module added for saving the language of the user so when he switches languages the toolbar/interface
954  keeps the language.
955- language_chooser templatetag now only displays public languages, even when you are logged in as staff.
956- undo and redo functionality added in toolbar if django-reversion is installed.
957- page admin split in 3 different for basic, advanced and permissions
958- New show_editable_page_title templatetag to edit page title from the frontend
959- Removed PLACEHOLDER_FRONTEND_EDITING setting
960- Removed CMS_URL_OVERWRITE setting. Always enabled.
961- Removed CMS_MENU_TITLE_OVERWRITE settings. Always enabled.
962- Removed CMS_REDIRECTS. Always enabled.
963- Removed CMS_SOFTROOT. Always enabled.
964- Removed CMS_SHOW_START_DATE. Always enabled.
965- Removed CMS_SHOW_END_DATE. Always enabled.
966- Added (optional) language fallback for placeholders.
967- moved apphooks from title to page model so we need to add them only once.
968- request.current_app has been removed.
969- added a namespace field, reverse_id is not used anymore for apphook namespaces.
970- PlaceholderAdmin is deprecated and available as mixin class renamed to PlaceholderAdminMixin.
971- PlaceholderAdmin does not have LanguageTabs anymore. It only has a PluginAPI now.
972- PageAdmin uses the same Plugin API as PlaceholderAdmin
973- Toolbar API for your own apps added
974- twitter plugin removed
975- file plugin removed
976- flash plugin removed
977- googlemap plugin removed
978- inherit plugin removed
979- picture plugin removed
980- teaser plugin removed
981- video plugin removed
982- link plugin removed
983- snippet plugin removed
984- Object level permission support for Placeholder
985- Configuration for plugin custom modules and labels in the toolbar UI
986- Added copy-lang subcommand to copy content between languages
987- Added static_placeholder templatetag
988- Moved render_placeholder from placeholder_tags to cms_tags
989- django 1.6 support added
990- Frontedit editor for Django models
991- Extending the page & title model API
992- Placeholders can be configured to have plugins automatically added.
993- Publishing is now language independent and the tree-view has been updated to reflect this
994- Removed the plugin DB-name magic and added a compatibility layer
995- urls_need_reloading signal added when an apphook change is detected.
996- CMS_PAGE_CACHE, CMS_PLACEHOLDER_CACHE and CMS_PLUGIN_CACHE settings and functionality added. Default is True
997- Detect admin object creation and changes via toolbar and redirect to them.
998- Added support for custom user models
999- Added PageTypes
1000- Added CMS_MAX_PAGE_HISTORY_REVERSIONS and changed default of CMS_MAX_PAGE_PUBLISH_REVERSIONS
1001- Added option to {% static_placeholder %} to render only on the current site.
1002
1003
10042.4.2 (2013-05-29)
1005==================
1006
1007- Apphook edit mode bugfix
1008- Added option to render_placeholder tag to set language
1009- Huge permission cache invalidation speed up
1010- Doc improvements
1011- css cleanup in PlaceholderAdmin
1012- Log change of page status done via AJAX
1013- Use --noinput convention for delete_orphaned_plugins command
1014- added Testing docs
1015- fixed more issues with only one language
1016- locales updated
1017
1018
10192.4.1 (2013-04-22)
1020==================
1021
1022- USE_I18N=False fixed
1023- some frontend css stuff fixed
1024- check_copy_relations fixed for abstract classes
1025- non public frontend languages fixed
1026
1027
10282.4.0 (2013-04-17)
1029==================
1030
1031Please see Install/2.4 release notes *before* attempting to upgrade to version 2.4.
1032
1033- Compatibility with Django 1.4 and 1.5 (1.3 support dropped)
1034- Support for Python 2.5 dropped
1035- CMS_MAX_PAGE_PUBLISH_REVERSIONS has been added
1036- Reversion integration has changed to limit DB size
1037- CMS_LANGUAGE setting has changed
1038- CMS_HIDE_UNTRANSLATED setting removed
1039- CMS_LANGUAGE_FALLBACK setting removed
1040- CMS_LANGUAGE_CONF setting removed
1041- CMS_SITE_LANGUAGES setting removed
1042- CMS_FRONTEND_LANGUAGES setting removed
1043- MultilingualMiddleware has been removed
1044- CMS_FLAT_URLS has been removed
1045- CMS_MODERATOR has been removed and replaced with simple publisher.
1046- PlaceholderAdmin has now language tabs and has support for django-hvad
1047- Added `cms.middleware.language.LanguageCookieMiddleware`
1048- Added CMS_RAW_ID_USERS
1049
1050
10512.3.4 (2012-11-09)
1052==================
1053
1054- Fixed WymEditor
1055- Fixed Norwegian translations
1056- Fixed a bug that could lead to slug clashes
1057- Fixed page change form (jQuery and permissions)
1058- Fixed placeholder field permission checks
1059
1060
10612.3.3 (2012-09-21)
1062==================
1063
1064 - fixed an incompatibility with Python 2.5
1065
1066
10672.3.2 (2012-09-19)
1068==================
1069
1070- MIGRATION: 0036_auto__add_field_cmsplugin_changed_date.py - new field changed_date on CMSPlugin
1071- CMS_FRONTEND_LANGUAGES limits django languages as well during language selection
1072- Wymeditor updated to 1.0.4a
1073- icon_url escape fixed
1074- Ukranian translation added
1075- Fixed wrong language prefix handling for form actions and admin preview
1076- Admin icons in django 1.4 fixed
1077- Added requirements.txt for pip and testing in test_requirements
1078- Google map plugin with height and width properties. Migrations will set default values on not-null fields.
1079- Docs fixes
1080- Code cleanup
1081- Switched html5lib to HTML serializer
1082- Removed handling of iterables in plugin_pool.register_plugin
1083- Performance and reduced queries
1084- Link has target support
1085- Made the PageAttribute templatetag an 'asTag'
1086- JQuery namespace fixes in admin
1087
1088
10892.3.1 (2012-08-22)
1090==================
1091
1092- pinned version of django-mptt to 0.5.1 or 0.5.2
1093
1094
10952.3.0 (2012-06-29)
1096==================
1097
1098- Compatibility with Django 1.3.1 and 1.4 (1.2 support dropped)
1099- Lazy admin page tree loading
1100- Toolbar JS isolation
1101- Destructive plugin actions fixed (cancel button, moving plugins)
1102- Refactored tests
1103- Fixed or clause of placeholder tag
1104- Fixed double escaping of icon sources for inline plugins
1105- Fixed order of PageSelectWidget
1106- Fixed invalid HTML generated by file plugin
1107- Fixed migration order of plugins
1108- Fixed internationalized strings in JS not being escaped
1109- django-reversion dependency upgraded to 1.6
1110- django-sekizai dependency upgraded to 0.6.1 or higher
1111- django-mptt dependency upgraded to 0.5.1 or higher
1112
1113
11142.2.0 (2011-09-10)
1115==================
1116
1117- Replaced the old plugin media framework with django-sekizai. (This changed some plugin templates which might cause problems with your CSS styling).
1118- Made django-mptt a proper dependency
1119- Removed support for django-dbgettext
1120- Google Maps Plugin now defaults to use HTTPS.
1121- Google Maps Plugin now uses the version 3 of their API, no longer requiring an API Key.
1122
1123
11242.1.4 (2011-08-24)
1125==================
1126
1127- Fixed a XSS issue in Text Plugins
1128
1129
11302.1.3 (2011-02-22)
1131==================
1132
1133- Fixed a serious security issue in PlaceholderAdmin
1134- Fixed bug with submenus showing pages that are not 'in_navigation' (#716, thanks to Iacopo Spalletti for the patch)
1135- Fixed PlaceholderField not respecting limits in CMS_PLACEHOLDER_CONF (thanks to Ben Hockey for reporting this)
1136- Fixed the double-monkeypatch check for url reversing (thanks to Benjamin Wohlwend for the patch)
1137
1138
11392.1.2 (2011-02-16)
1140==================
1141
1142- Fixed issues with the CSRF fix from 2.1.1.
1143- Updated translation files from transifex.
1144
1145
11462.1.1 (2011-02-09)
1147==================
1148
1149- Fixed CMS AJAX requests not being CSRF protected, thus not working in Django 1.2.5
1150- Fixed toolbar CSS issues in Chrome/Firefox
1151
1152
11532.1.0 (2011-01-26)
1154==================
1155
1156- language namespaces for apphooks (reverse("de:myview"), reverse("en:myview"))
1157- video plugin switch to https://github.com/FlashJunior/OSFlashVideoPlayer
1158- frontediting added (cms.middlware.toolbar.ToolbarMiddleware)
1159- testsuite works now under sqlite and postgres
1160- orphaned text embed plugins get now deleted if not referenced in the text anymore
1161- placeholder templatetag: "theme" attribute removed in favor of "width" (backward incompatible change if theme was used)
1162- menu is its own app now
1163- menu modifiers (you can register menu modifiers that can change menu nodes or rearrange them)
1164- menus are now class based.
1165- apphooks are now class based and can bring multiple menus and urls.py with them.
1166- menus and apphooks are auto-discovered now
1167- example templates look a lot better now.
1168- languages are not a dropdown anymore but fancy tabs
1169- placeholderend templatetag added: {% placeholder "content" %}There is no content here{% endplaceholder %}
1170- plugins can now be used in other apps :) see cms/docs/placeholders.txt
1171- plugins can now be grouped
1172- a lot of bugfixes
1173- the cms now depends on the cms.middleware.media.PlaceholderMediaMiddleware middleware
1174- templatetags refactored: see cms/docs/templatetags.txt for new signatures.
1175- placeholder has new option: or and a endpalceholder templatetag
1176
1177
11782.0.2 (2009-12-14)
1179==================
1180
1181- testsuite working again
1182- changelog file added
1183
1184
11852.0.1 (2009-12-13)
1186==================
1187
1188- mostly bugfixes (18 tickets closed)
1189- docs updated
1190- permissions now working in multisite environment
1191- home is now graphically designated in tree-view
1192