v0.19.0 release notes
=====================


Bug fixes
---------

* Support custom image models by correctly using  ``WAGTAILIMAGES_IMAGE_MODEL``
  versus hard-coding ``wagtailimages.Image``.

* Fix custom CSS class and Google Maps API key in Google Map block.

* ``coderedcms start`` now pins the version of CodeRed CMS in the generated
  ``requirements.txt`` file.


New features
------------

* Upgraded to Wagtail 2.9

* Upgraded to Bootstrap 4.5 and jQuery 3.5.1

* Button and Link blocks can now link to fragments. See new :doc:`block
  documentation </features/blocks/index>`.

* ``coderedcms start`` no longer creates a boilerplate Dockerfile. This has
  been replaced with a more thorough guide: :doc:`/how_to/docker`.

* The boilerplate ``.scss`` files created when starting a new SASS project have
  been simplified. See upgrade considerations below if you'd like to simplify
  your ``.scss`` files created from an older version of CodeRed CMS.

* As of 0.19, we will no longer maintain separate versions of docs for each
  release. The single stable docs will contain notes for each feature if that
  feature is changed, added, or removed in a particular release.


Documentation
-------------

See the following new guides!

* :doc:`/how_to/headers_and_footers`

* :doc:`/how_to/docker`

* :doc:`/how_to/use_custom_image_model`

* :doc:`/how_to/convert_image_model`


Upgrade considerations
----------------------

* For Wagtail 2.9 ``SiteMiddleware`` and ``request.site`` are deprecated.
  Custom code in your project should be updated as so:

  * In python, replace ``request.site`` with ``Site.find_for_request(request)``.

  * In Python, to load a site setting, replace
    ``Setting.for_site(request.site)`` with ``Setting.for_request(request)``.

  * In HTML templates, replace ``request.site`` with:

    .. code-block:: html

      {% load wagtailcore_tags %}
      {% wagtail_site as site %}

      <p>Your site name is: {{site.site_name}}</p>

  * Following these changes, you should then remove
    ``wagtail.core.middleware.SiteMiddleware`` from the Django ``MIDDLEWARE``
    (in ``settings/base.py``)

* If you have overridden ``coderedcms/pages/base.html``, you may need to update
  references to ``jquery-3.4.1`` to ``jquery-3.5.1``.

* If using SASS, you may need to update your ``custom.scss`` and/or
  ``_variables.scss`` files accordingly to support Bootstrap 4.5. To see what
  you might need to change, see `the files from our sass starter project`_. Or
  to continue using Bootstrap 4.3, `download a copy of the Bootstrap 4.3
  sources`_ and change the references in your ``custom.scss`` to use these
  files.

* It is assumed that all CodeRed CMS sites prior to 0.19 are using the built-in
  Wagtail Image model, as this was previously hard-coded in CodeRed CMS. If (and
  only if) you plan to switch to a custom image model, a custom data migration
  will be necessary. This migration would follow the same process as any other
  Wagtail installation; there is nothing unique relating to CodeRed CMS.

* You may need to run ``python manage.py makemigrations website`` and
  ``python manage.py migrate`` after upgrading.


.. _the files from our sass starter project: https://github.com/coderedcorp/coderedcms/tree/dev/coderedcms/project_template/sass/website/static/website/src
.. _download a copy of the Bootstrap 4.3 sources: https://getbootstrap.com/docs/4.3/getting-started/download/


Thank you!
----------

Thanks to everyone who contributed to `0.19.0 on GitHub <https://github.com/coderedcorp/coderedcms/milestone/26?closed=1>`_.
