What's Changed
- docs: Fix readme links by @fsbraun in #7896
- chore: Merge back release/4.1.x by @fsbraun in #7899
- build(deps): bump amannn/action-semantic-pull-request from 5.4.0 to 5.5.2 by @dependabot in #7897
- chore: Use static Discord URLs in docs by @macolo in #7908
- chore: Port forward of #7910 by @fsbraun in #7911
- build(deps): bump jinja2 from 3.1.3 to 3.1.4 in /docs by @dependabot in #7912
- docs: Explain how to route requests from an apphook back to the CMS by @jrief in #7878
- fix: Set toolbar direction based on toolbar language by @fsbraun in #7902
- fix: Allow viewing page settings even if page cannot be changed by @fsbraun in #7921
- docs: Update 01-install.rst to include MariaDB by @robertsilen in #7922
- fix: Versioning-safe implementation of placeholder inheritance by @fsbraun in #7924
- build(deps): bump requests from 2.28.1 to 2.32.0 in /docs by @dependabot in #7925
- fix: Only switch to structure endpoint on viewport breakpoint if in edit mode by @fsbraun in #7920
- feat: Reintroduce
default_plugins
setting by @fsbraun in #7919 - fix: #7859: allow special characters in page title by @jrief in #7868
- fix: Correct regression introduced in #7920 (structure board breakpoint) by @fsbraun in #7928
- feat: Re-introduce page-level publish permission just as in v4.0 by @fsbraun in #7837
- docs: Improve explanation on how to use templates with django CMS by @fsbraun in #7929
- build(deps): bump tornado from 6.2 to 6.4.1 in /docs by @dependabot in #7932
- build(deps): bump urllib3 from 1.26.18 to 1.26.19 in /docs by @dependabot in #7938
- docs: Update 02-templates_placeholders.rst by @rcooke in #7935
- docs: fix typo "crating" -> "creating" by @ls-app in #7939
- chore: Prepare develop-4 for Django CMS 4.2 by @fsbraun in #7913
- build(deps): bump amannn/action-semantic-pull-request from 5.5.2 to 5.5.3 by @dependabot in #7946
- build(deps): bump certifi from 2022.12.7 to 2024.7.4 in /docs by @dependabot in #7949
- build(deps): bump pygments from 2.13.0 to 2.15.0 in /docs by @dependabot in #7944
- feat: Performant permission calculation for pages by @fsbraun in #7943
- feat: merge page with node tree by @jrief in #7947
- chore: Fix pre-commit config file extension by @marksweb in #7958
- fix: Show pages titles using fallback languages in pagetree by @fsbraun in #7955
- fix: Fail silently when rendering a placeholder on a missing toolbar object by @fsbraun in #7954
- fix: Invalidate permissions cache if group assignment of user changes by @fsbraun in #7963
- fix: PermissionDenied error when adding page by @jrief in #7965
- docs: Update compatibility table by @jgadelange in #7950
- feat: Headless readiness by @fsbraun in #7850
- fix:
edit_mode_active
was a property, not cached property by @fsbraun in #7971 - fix: template tag
get_admin_url_for_language
did not return the latest page content by @fsbraun in #7967 - docs: add documentation for search by @filipweidemann in #7972
- chore: fix some comments by @jianghuyiyuan in #7975
- docs: Remove merge markers from Update 3.11.4.rst by @fsbraun in #7959
- fix: Refactor menus app: significant time saving (queries and cpu) by @fsbraun in #7956
- fix: Inconsistent color codes for dark mode and
preferes-color-scheme: auto
by @fsbraun in #7979 - fix: Consistent labels and help texts for page content model and page content forms by @fsbraun in #7968
- fix: Also clear menu cache if page permissions are changed by @fsbraun in #7988
- refactor: Replace PageAdmin.delete_view by two smaller methods by @jrief in #7995
- chore: Improve pagecontent caching in page admin (esp. page tree) by @fsbraun in #8002
- build(deps): bump body-parser from 1.20.2 to 1.20.3 by @dependabot in #8007
- build(deps-dev): bump elliptic from 6.5.4 to 6.5.7 by @dependabot in #8009
- fix: Respect ContentAdminManager pattern for frontend-editable models by @fsbraun in #7998
- chore: Django 5.2-compatible test fixtures by @fsbraun in #8008
- docs: add kapa ai bot by @macolo in #8010
- ci: upgrade testing infrastructure by @vinitkumar in #8015
- fix: Consistent toolbar mode by @fsbraun in #8011
- fix: Accept legacy action names for page permission check by @fsbraun in #8021
- build(deps): bump cookie and socket.io by @dependabot in #8026
- build(deps): bump serve-static and browser-sync by @dependabot in #8027
- build(deps): bump starlette from 0.38.5 to 0.40.0 in /docs by @dependabot in #8034
- fix: Sitemap: Return a QuerySet in CMSSitemap.items() by @MacLake in #8031
- fix: Improve UX when page content is missing in selected language by @jrief in #8033
- docs: Add guide on contributing a code patch by @mrbazzan in #8039
- fix: X frame options added to page settings form by @theShinigami in #8041
- docs: documentation update on PageContent by @weshy007 in #8043
- fix: Language tabs didn't show existing content due to caching issue by @filipweidemann in #8046
- chore: Added tests for GetAdminUrlForLanguage template tag by @filipweidemann in #8049
- build(deps-dev): bump elliptic from 6.5.7 to 6.6.0 by @dependabot in #8051
- fix: In rare situations the page tree preview button did not view the latest version by @MacLake in #8050
- fix: Issue 7997 remove edit page dialog by @jrief in #7999
- fix: added redirect message when in editing a redirect toolbar object by @theShinigami in #8056
- chore: Fixed randomly failing Postgres tests by @fsbraun in #8060
- feat: Updated welcome page by @fsbraun in #8057
- chore: Removed django-app-manage dependency by updating
./manage.py
by @fsbraun in #8061 - fix: Handle cms command raising error by @mrbazzan in #8054
- fix: Fall back to class name when app name is None by @halitcelik in #8059
- docs: Update LTS info and overview on supported plugins by @fsbraun in #8065
- fix: Sites menu was empty in the page tree by @fsbraun in #8064
- fix: Grouper admin raised AttributeError when used outside the admin views by @fsbraun in #8067
- feat: Add
FrontendEditableAdminMixin
endpoint to plugins by @fsbraun in #8062 - fix: XSS vulnerability for page title by @fsbraun in #8075
- chore: Create security policy by @marksweb in #8077
- fix: Replaced
languages
field fromPage
which used to become inconsistent by @fsbraun in #8080 - chore: Linting issues brought by ruff update, remove unused imports by @fsbraun in #8086
- feat: Improved delete page confirmation message by @fsbraun in #8070
- fix: Ensure plugin class properties are available to the Django template engine by @fsbraun in #8071
- fix: Remove
Page
object from admin index (introduced by #7995) by @fsbraun in #8066 - build(deps): bump django from 4.2.16 to 4.2.17 in /docs by @dependabot in #8090
- fix: Resolve incorrect example in django CMS API reference documentation by @JaeHyuckSa in #8079
- fix: Correct ContentRenderer logic for toolbar and page content handling by @fsbraun in #8092
- fix: Adjust tests for updated django 5.2 admin templates by @fsbraun in #8095
- docs: Update template tutorial section to be in line with current django-cms-quickstart project by @fsbraun in #8096
- docs: Fix markup error by @fsbraun in #8097
- docs: Update LTS definitions as per board decision Dec 2024 by @fsbraun in #8103
- fix: Fallback page names were not escaped by @fsbraun in #8113
- feat: Don't show plugin selector if only one plugin can be selected by @fsbraun in #8105
- chore: Replace removed Django API for Django 6.0 by @fsbraun in #8116
- feat: add placeholder-level error handling by @fsbraun in #8118
- fix: Placeholder page getter failed for unpublished pages by @fsbraun in #8115
- fix: Use correct
changed_date
of page content in sitemap by @jrief in #8122 - fix: Added the new delete confirmation for pages also to delete translation by @fsbraun in #8111
- feat: Optimize DB queries for edit and structure endpoints by @fsbraun in #8120
- build(deps): bump jinja2 from 3.1.4 to 3.1.5 in /docs by @dependabot in #8129
- docs: Add a note to 18-extending_page_contents.rst in which file to p… by @stefanheinen in #8127
- build(deps): bump django from 4.2.17 to 4.2.18 in /docs by @dependabot in #8110
- fix: Respect setting CMS_ DEFAULT_IN_NAVIGATION by @fsbraun in #8094
- fix: #7904 -
manage.py cms fixtree
did not fix PageUrl model by @jrief in #7905 - fix: Allow frontend editing of page title fields by @fsbraun in #8131
- feat: Allow for CSP - remove inline scripts from edit endpoint markup by @fsbraun in #8109
- docs: How to add a model to an existing plugin (w/o model) by @fsbraun in #8130
- fix: Django 5.2 tried to adding object tools to the page tree throwing an error by @fsbraun in #8133
- fix: Page menu disappeared in edit or structure endpoints when refreshing the toolbar by @fsbraun in #8137
- fix: Copy plugins was broken by @fsbraun in #8135
- fix: Replace inline script
done.html
redirect wizard by @fsbraun in #8142 - fix: accept custom template engines that inherit from DjangoTemplates by @earthcomfy in #8144
- build(deps-dev): bump elliptic from 6.6.0 to 6.6.1 by @dependabot in #8146
- fix: Creation of text plugins failed by @fsbraun in #8149
- feat: add django 5.2 to the test matrix by @vinitkumar in #8151
- fix: Async support and middleware update for django CMS 4.2+ by @fsbraun in #8147
- fix: ensures page content translations are created with the same temp… by @amandasavluchinske in #8145
- test: TEMPLATE_INHERITANCE_MAGIC respects page hierarchy by @amandasavluchinske in #8152
- feat: Better editor turn-around times by @fsbraun in #8140
- fix: respect object-level permissions in placeholder model by @earthcomfy in #8156
- feat: Improved editing response time by global caching of plugin restrictions by @fsbraun in #8157
- feat: Add
CMS_ALWAYS_REFRESH_CONTENT
setting and other fixes by @fsbraun in #8154 - fix: Add get_ancestors method to
CMSPlugin
by @fsbraun in #8159 - docs: Update changelog and release notes for 4.2.0a1 release by @fsbraun in #8160
- feat: Adds backwards migration of the
Page
/TreeNode
model merge by @fsbraun in #8163 - chore: Update deprecations to semantic version rules by @fsbraun in #8164
- feat: Port forward of automatic JS updates by @fsbraun in #8165
- docs: Autogenerate LTS table, core plugin list from the ecosystem repo by @fsbraun in #8166
- fix: deleting users cascaded to deleting PageUser or PageUserGroup by @fsbraun in #8167
- ci: Update publishing to use trusted publishing by @marksweb in #8168
- chore: Merging back 5.0.0a1 build by @fsbraun in #8169
- fix: backward migration flattened page tree by @fsbraun in #8170
- build(deps): bump jinja2 from 3.1.5 to 3.1.6 in /docs by @dependabot in #8171
- build(deps): bump django from 4.2.18 to 4.2.20 in /docs by @dependabot in #8174
- fix: Preview did not show the redirect page by @fsbraun in #8175
- fix: add a check for parent/child relationship by @earthcomfy in #8173
- feat: CONTINUE cms.views - set request language according to request.LANGUAGE_CODE by @amandasavluchinske in #8172
- fix:
CMS_TOOLBAR_HIDE
broke endpoints in django CMS 4+ by @fsbraun in #8176 - fix: Complete #8176 by @fsbraun in #8178
- fix: child restrictions cached despite children have cache_parent_classes set to False by @fsbraun in #8181
- fix: Missing docstrings for cms_perms decorated functions e.g. in django.admin.admindocs by @fsbraun in #8179
- chore: Minor fixes for django CMS 5.0.0a1 by @fsbraun in #8182
- fix: Plugin tree update incomplete after move plugin action by @fsbraun in #8184
- docs: Documentation only changes index.rst by @MehrazRumman in #8187
- fix: Remove need for timeout to close modal by @fsbraun in #8183
- fix: Browser reloaded when clearing placeholder by @fsbraun in #8188
- fix: Added back jQuery and $ to the window object for plugin change forms by @fsbraun in #8191
- fix: removed deprecated JavaScript in cms.modal.js by @jrief in #8192
- fix: Grouper models must not assume language grouper by @fsbraun in #8194
- fix: Update cms_tags.py to handle NoReverseMatch by @baravkareknath in #8186
- docs: Fix code errors and add an example for using class based views in using placeholders outside the CMS by @protoroto in #8204
- docs(introduction): updated "Adding django CMS to an existing Django project" section to make it work in copy-paste by @Grosskopf in #8206
- build(deps): bump h11 from 0.14.0 to 0.16.0 in /docs by @dependabot in #8205
- build(deps-dev): bump eazy-logger from 4.0.1 to 4.1.0 by @dependabot in #8210
- build(deps): bump tar-fs and puppeteer by @dependabot in #8209
- build(deps): bump ws and socket.io-adapter by @dependabot in #8211
- docs: Fix instructions on setting editor permissions by @shundread in #8208
- docs: Update coding styles by @fsbraun in #8212
- fix: Slug uniqueness not checked when moving page by @amandasavluchinske in #8185
- fix:
CMS_PLACEHOLDER_CONF
needs to also affect allowed child plugins by @fsbraun in #8215 - ci: Stale action by @marksweb in #8218
- fix: Remove text decorations in page tree introduced by django 5.2 by @fsbraun in #8214
- chore: Add test for
_recalculate_plugin_positions
by @fsbraun in #8217 - fix: Remove more text decorations in page tree introduced by django 5.2 by @fsbraun in #8219
- build(deps): bump django from 4.2.20 to 4.2.21 in /docs by @dependabot in #8221
- chore: Merge back django CMS 5.0.0 build by @fsbraun in #8220
New Contributors
- @robertsilen made their first contribution in #7922
- @rcooke made their first contribution in #7935
- @ls-app made their first contribution in #7939
- @filipweidemann made their first contribution in #7972
- @jianghuyiyuan made their first contribution in #7975
- @mrbazzan made their first contribution in #8039
- @theShinigami made their first contribution in #8041
- @weshy007 made their first contribution in #8043
- @JaeHyuckSa made their first contribution in #8079
- @stefanheinen made their first contribution in #8127
- @earthcomfy made their first contribution in #8144
- @amandasavluchinske made their first contribution in #8145
- @MehrazRumman made their first contribution in #8187
- @baravkareknath made their first contribution in #8186
- @Grosskopf made their first contribution in #8206
- @shundread made their first contribution in #8208
Full Changelog: 4.1.1...5.0.0