-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: validate endpoint languages and redirect if not editable #7691
Merged
fsbraun
merged 6 commits into
django-cms:develop-4
from
fsbraun:feat/validate-endpoints
Nov 20, 2023
Merged
fix: validate endpoint languages and redirect if not editable #7691
fsbraun
merged 6 commits into
django-cms:develop-4
from
fsbraun:feat/validate-endpoints
Nov 20, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
marksweb
approved these changes
Nov 20, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 👍
fsbraun
added a commit
that referenced
this pull request
Dec 10, 2023
* ci: Merge back `release/4.1.x` (4.1.0rc4) into `develop-4` (#7640) * Fix: Debug toolbar action button has too low contrast in dark mode (#7642) * feat: django 5 support (#7648) * Support for Django 5.0 * Fix: test.yml and django Promise handling * Shorten github action names * Update test.yml * Update _cms.scss * Update setup.py * test: Run tests against django main branch (#7650) * ci: Add testing against django main branch * ci: Add dependabot github action updates * ci: Test all dbs on django main * Update postgres Co-authored-by: Fabian Braun <[email protected]> * Output django version Co-authored-by: Fabian Braun <[email protected]> * Output django version Co-authored-by: Fabian Braun <[email protected]> * ci: install requirements before django * Remove duplicate Co-authored-by: Fabian Braun <[email protected]> * Replace get_storage_class with import_string * Fix ruff * remove unused code from util. __init__.py * Fix incomplete property overwrite * Fix: Lazy choice field implementation was wrong. Added test coverage * Fix: Add `on-error-continue: true` to django-main-postgres and django-main-mysql github actions --------- Co-authored-by: Fabian Braun <[email protected]> * fix: When opening structure board page menu disappears or shows wrong page template (#7671) * Fix: add .current_page to request for structure board * Fix caching issue showing wrong selected page template * Fix: add .current_page to request for structure board * Fix caching issue showing wrong selected page template * Add tests * fix: Update RTD config (#7647) * Add comments --------- Co-authored-by: Mark Walker <[email protected]> * fix: #7662, add support for python 3.12 and upgrade github actions (#7680) * fix: #7662, add support for python 3.12 and upgrade github actions * fix: deprecations * fix: make some improvements to codespell and the tests for docs * fix: add updated reqs for docs * fix: code spell typos * fix: code spell typos for docs * fix: some more spell fixes * fix: pretty much all spelling mistakes * fix: some more spelling mistakes * fix: skiplist further * fix: issue with outdated deps at docs/requirements * fix: downgrade matplotlib to a version that also builds on python 3.8 * fix: 3.8 build * fix: try to fix some test failures * fix: drop 3.8 * fix: upgrade sphinxcontrib-spelling to 8.0.0 so that 3.12 builds * fix: no need to hardcode sphinx in test requirements * fix: get the tests passing for sqlite * fix: sqlite tests finally * fix: use furo theme for cms 4 as well : * fix: use cms 4 for building docs documentation * fix: same as in develop for cms 3.11.x * fix: abbreviation into full form to not confused codespell * fix: `.load` jQuery method erroneously replaced by `.on('load')` (#7679) * Fix: `.load` jQuery method erroneously replaced by `on('load')` * fix: Remove `can_publish` permission from django CMS 4 core (#7635) * Fix css glitch * Update translations source fill which was missing strings * Fix: Remove can_publish permission * Update _toolbar.scss * Fix: Use svg icons for boolean values in admin (present since Dango 1.11) * Fix: Update to use .format for icon base * Fix: missing alt attribute * fix: Port forward #7664 and #7657 (#7695) * fix: preserve `view_class` in decorated views (#7664) * Fix tests * Bugfix: avoid InvalidCacheKey (memcached) for key-length ~249 (fixes #7595) (#7657) * Remove docs test from test suite (since covered by separate github action) * Remove docs requirements from the django-main test * Add setuptools to requirements for python 3.12 * Add setuptools to requirements.txt * Fix: Test with current ckeditor * Undo unnecessary change * Fix tests for Django 5.1 * Fix: Missing output_field --------- Co-authored-by: Will Hoey <[email protected]> Co-authored-by: wfehr <[email protected]> * fix: validate endpoint languages and redirect if not editable (#7691) * Fix: align language settings for preview and edit endpoints * Rename to existing "is_editable" method. * Add "object_is_editable" to toolbar as a common interface to decide if an object is editable * Fix identation * fix: Add check for Django's i18n context processor needed for wizards to work (#7699) * Check for `django.template.context_processors.i18n` preprocessor in the i18n check (required for wizards to work) * Fix tests ;-) * feat: Add `djangocms` command to quickly start a project (#7702) * fix: Localization of permission checks on deleting (#7683) * Permission in the german version have sometimes german names. * change django-cms to cms * Remove specific German locale test * Update pageadmin.py * Undo renaming --------- Co-authored-by: wintergruen <[email protected]> Co-authored-by: Fabian Braun <[email protected]> * fix: django 5's choice widget is not lazy (#7707) * Support for Django 5.0 * Fix: test.yml and django Promise handling * Shorten github action names * Update test.yml * Update _cms.scss * Update setup.py * Fix: Django 5 choice widget is not lazy either * Add test * Fix: Swapped underscore * Deprecate SuperLazyIterator and LazyChoiceField * fix: Page Content Extension toolbar (#7708) * Fix: page content extension toolbar naming and use latest_content filter * Align page content extension menu with shown page content * Deprecate the use for more than one page content object * fix linting issue * Accommodate review feedback * Add some comments * Readability improvement `ruff format` * One more readability improvement * Doc-string update * Fix typo Co-authored-by: Jacob Rief <[email protected]> * fix: Language chooser options pointing to the same language (#7698) * Fix: Language chooser * Ensure page language uniqueness * Fix linter issue * Add edit mode and preview mode to language chooser * Add option to register grouper field for frontend-editable models * Undo changes to cms_toolbars to avoid code redundancy * Simplify toolbar utils. * Remove not util function * Remove unneeded imports * fix: allow for `EmptyPageContent` * Add CONTRIBUTING.rst and CODE_OF_CONDUCT.rst to develop-4 branch (#7713) --------- Co-authored-by: Mark Walker <[email protected]> Co-authored-by: Vinit Kumar <[email protected]> Co-authored-by: Will Hoey <[email protected]> Co-authored-by: wfehr <[email protected]> Co-authored-by: dwintergruen <[email protected]> Co-authored-by: wintergruen <[email protected]> Co-authored-by: Jacob Rief <[email protected]>
fsbraun
added a commit
to fsbraun/django-cms
that referenced
this pull request
Feb 7, 2024
…-cms#7691) * Fix: align language settings for preview and edit endpoints * Rename to existing "is_editable" method. * Add "object_is_editable" to toolbar as a common interface to decide if an object is editable * Fix identation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR ensures that content object endpoints are rendered in the language of the content object, if it has one defined (using its
language
property)./en/admin/placeholder/...
as path/it/admin/placeholder/..
as pathIt also completes the toolbar API by adding a
object_is_editable
method which checks if the toolbar object has ais_editable
property as set, e.g., by djangocms_versioning.The Page menu only offers edit page if the page content object is editable (prevents an undefined state as described in django-cms/djangocms-versioning#354).
The edit endpoint will redirect to the preview endpoint if a toolbar object is not editable, solving django-cms/djangocms-versioning#355 and django-cms/djangocms-versioning#337
Finally, optimizes the page rendering, preventing detecting the selected language multiple times.
Related resources
Checklist
develop-4