v0.24.0 release notes ===================== This release is focused primarily on resolving internal tech debt. This translates to improved reliability and improved developer experience. New features ------------ * Navbars and footers are now orderable and support multi-site. This is configured under **Settings > Layout**. * Supports Django 4.0. Upgrade considerations ---------------------- * Template tag ``codered_settings`` has been renamed ``crx_settings``. You should find/replace this in any of your HTML or other Django template files. * Django settings beginning with ``CODERED_*`` have been renamed to ``CRX_*``. You should find/replace these in your Django settings files. * ``wagtail-import-export`` has been removed as a dependency. You should remove this from ``INSTALLED_APPS`` in your Django settings. As a result, import/export from JSON files has been removed. However we have preserved the ability to import Pages from CSV files. See :doc:`/features/import_export`. * Behavior of Navbars and Footers has changed. If your navbar and footer does not look correct after upgrading, you may need to synchronize your customizations to ``navbar.html`` and ``footer.html`` with the `stock versions which can be found here `_. Supported software ------------------ * Python 3.7, 3.8, 3.9, 3.10 * Django 3.2, 4.0 Internal changes ---------------- The following changes are not publicly documented APIs, but have changed. Most sites should not be using any of these APIs and therefore can ignore this section. In case your site deeply hooks into the package, these are here for reference. * ``wagtailcrx.settings.cr_settings`` has been replaced with ``wagtailcrx.settings.crx_settings`` which is no longer a dictionary, but an object which behaves exactly like the Django settings. This object will first retrieve a Django setting, and if it does not exist, will then load a CRX default. * Internal uses of Wagtail ``StreamField`` on concrete models have been replaced with ``CoderedStreamField`` which will not generate migrations based on block changes. This effectively eliminites most of our historic migration problems. As a result, all past migrations have been hand-edited to reflect this change. No action is required in client sites. Client sites can freely use ``wagtailcrx.fields.CoderedStreamField`` in place of Wagtail's ``StreamField`` to eliminate the giant migrations problem inherent to Wagtail. However this API is not publicly documented at this time. * Choice fields on internal concrete models have been replaced with a lazy-loading mechanism to load choices and defaults at runtime. This further eliminates historic migration problems. Thank you! ---------- Thanks to everyone who contributed to `0.24.0 on GitHub `_.