Feincms3

Latest version: v4.6.0

Safety actively analyzes 630450 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 11

0.27

~~~~~~~~~~~~~~~~~~~~

- Fixed the CKEditor plugin script to resize the widget to fit the width
of the content editor area.
- Added configuration for easily running prettier and ESLint on the
frontend code.
- Dropped Python 2 compatibility, again. The first attempt was made
almost 30 months ago.
- Changed the subrenderer to use yielding instead of returning
fragments.

0.26

~~~~~~~~~~~~~~~~~~~~

- Removed tree fields when loading applications.
- Stopped mentioning the ``AppsMixin`` in the reference documentation.
- Fixed a few typos and converted more string quotes in the docs.
- Changed the docs to use allow/deny instead of black/white.
- Changed ``feincms3.plugins`` do not hide import errors from our own
modules anymore (again).
- Added a cloning functionality to copy the values of individual fields
and also of the pages' content onto other pages.
- Fixed a problem where ``Snippet.__str__`` would unexpectedly (for
Django) return lazy strings.
- Changed the type of ``RedirectMixin.redirect_to_page`` to
``TreeNodeForeignKey`` so that the hierarchy is shown in the dropdown.
- Added more careful detection of chain redirects and improved the error
messages a bit.
- Made it clearer that ``AbstractPage.position``'s value should probably
be greater than zero. Thanks to Hannah Cushman for the contribution!

0.25

~~~~~~~~~~~~~~~~~~~~

- **BACKWARDS INCOMPATIBLE** Removed the imports of plugins into
``feincms3.plugins``. Especially with the image plugins it could be
non-obvious whether the plugin uses django-imagefield or
django-versatileimagefield. Instead, the modules are imported so that
classes and functions can be referenced using e.g.
``plugins.image.Image`` instead of ``plugins.Image`` as before.
- Moved the documentation from autodoc to a more guide-oriented format.
- Changed ``TemplatePluginRenderer.render_plugin_in_context`` to raise a
specific ``PluginNotRegistered`` exception upon encountering
unregistered plugins instead of a generic ``KeyError``.
- Made it possible to pass fixed strings (not callables) to
``TemplatePluginRenderer.register_string_renderer``.
- Added an incubator in ``feincms3.incubator`` for experimental modules
with absolutely no compatibility guarantees.
- Changed the ``TreeAdmin.move_view`` to return a redirect to the admin
index page instead of a 404 for missing nodes (as the Django admin's
views also do since Django 1.11).
- Fixed an edge case in ``apps_urlconf`` which would generate a few
nonsensical URLs if no language is activated currently.
- Made it an error to add redirects to a page which is already the
target of a different redirect. Adding redirects to a page which
itself already redirects was already an error.

0.24

~~~~~~~~~~~~~~~~~~~~

- Fixed one use of removed API.
- Fixed a bug where the move form "Save" button wasn't shown with Django
2.1.
- Made overriding the ``Regions`` type used in
``TemplatePluginRenderer`` less verbose.
- Modified the documentation to produce several pages. Completed the
guide for building your own CMS and added a section about customizing
rendering using ``Regions`` subclasses.

0.23

~~~~~~~~~~~~~~~~~~~~

- Switched the preferred quote to ``"`` and started using `black
<https://pypi.org/project/black/>`_ to automatically format Python
code.

Switched to a new library for recursive common table expressions
----------------------------------------------------------------

django-tree-queries_ supports more database engines, which means that
the PostgreSQL_-only days of feincms3 are gone.

Incompatible differences are few:

- The attributes on page objects are named ``tree_depth`` and ``tree_path``
now instead of ``depth`` and ``cte_path``. If you're using ``WHERE``
clauses on your querysets change ``depth`` to ``__tree.tree_depth``
(or only ``tree_depth``). Properties for backward compatibility have
been added to the ``AbstractPage`` class, but of course those cannot
be used in database queries.
- django-tree-queries_ uses the correct definition of node depth where
root nodes have a depth of ``0``, not ``1``.
- django-tree-queries_ does not add the CTE by default to all queries,
instead, users are expected to call ``.with_tree_fields()`` themselves
if they want to use the CTE attributes. For the time being, the
``AbstractPageManager`` always returns querysets with tree fields.

0.22

~~~~~~~~~~~~~~~~~~~~

- Fixed a problem in ``MoveForm`` where invalid move targets would crash
because of missing form fields to attach the error to instead of
showing the underlying problem.
- Made it possible to override the list of apps processed in
``apps_urlconf``.
- Converted the apps middleware into a function, now named
``apps_middleware``. The old name ``AppsMiddleware`` will stay
available for some undefined time.
- Made the path clash check less expensive by running less SQL queries.
- Made page saving a bit less expensive by only saving descendants when
``is_active`` or ``path`` changed.

Page 7 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.