Skip to content

docs: Update README features and documentation links#88

Merged
fsbraun merged 9 commits intodjango-cms:mainfrom
metaforx:docs/align-with-release
Dec 12, 2025
Merged

docs: Update README features and documentation links#88
fsbraun merged 9 commits intodjango-cms:mainfrom
metaforx:docs/align-with-release

Conversation

@metaforx
Copy link
Collaborator

@metaforx metaforx commented Dec 12, 2025

Refactored README to align with official documentation and support latest features.

  • Replaced emoji icons with standard bullets in Key Features -> let it look more official and serious
  • Updated Key Features with new descriptions -> align with doc
  • Added standalone Documentation section with links
  • Reorganized sections (Requirements, Installation, Documentation, Headless Mode, FAQ, etc.)
  • Condensed Headless Mode section
  • Updated API Endpoints table
  • Consolidated FAQ sections
  • Updated Requirements with version ranges from project tests
  • Simplified sample JSON responses -> is covered in detail in docs and via swagger

Summary by Sourcery

Update the README to better describe djangocms-rest, its headless capabilities, and how to use it with updated endpoints and docs links.

Documentation:

  • Revise the README introduction and key features to align with the current functionality and positioning of djangocms-rest.
  • Add a dedicated Documentation section with links to the official guides and API reference.
  • Update and reorganize sections for requirements, installation, usage, headless mode, and FAQ for clearer structure and readability.
  • Refresh the API endpoints table and descriptions, including new navigation and search endpoints, and streamline JSON response examples.

@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Dec 12, 2025

Reviewer's Guide

Refactors the README to present djangocms-rest as the primary package, updates feature/requirements/API information to match current capabilities, and restructures content to rely on external documentation instead of verbose in-file guides and examples.

File-Level Changes

Change Details Files
Reframed project introduction and key features to match current positioning and capabilities.
  • Renamed main heading from 'django CMS Headless Mode' to 'djangocms-rest' and updated the introductory description to emphasize DRF and OpenAPI 3 support.
  • Replaced emoji-based feature list with a concise bullet list highlighting integration, REST API usage, typed endpoints, plugin serialization, multi-site/i18n support, preview/drafts, permissions, navigation, and caching.
  • Standardized terminology (e.g., 'frontend', DRF naming) and removed overly marketing-style phrasing.
README.md
Updated requirements, installation, and basic usage instructions to reflect current supported versions and recommended setup.
  • Added explicit version ranges for Python, Django, and Django CMS based on project tests.
  • Updated installation instructions to use pip install djangocms-rest instead of a Git URL, and clarified that rest_framework does not need to be in INSTALLED_APPS unless used directly.
  • Clarified URL configuration for including djangocms_rest.urls and added guidance on API base path selection.
  • Simplified the caching example by removing inline cache configuration from the README.
  • Adjusted usage instructions to reference the DRF browsable API at the /api/ path with an existing page setup.
README.md
Introduced a dedicated Documentation section and reduced in-README how-to content in favor of external docs.
  • Added a 'Documentation' section with links to Getting Started, OpenAPI support, how-to guides, and API reference on readthedocs.
  • Replaced detailed OpenAPI/drf-spectacular setup instructions with a short summary and pointer to external documentation.
  • Removed verbose JSON response examples and full schema configuration in favor of relying on generated docs and Swagger UI.
README.md
Reorganized conceptual and FAQ content for headless mode and frontend integration.
  • Replaced ‘What is djangocms-rest?’ and ‘What is headless mode?’ with clearer sections: a high-level intro, 'Headless Mode', 'Benefits', and 'Considerations'.
  • Condensed benefits/drawbacks sections into focused bullet lists, adding notes on apphooks, structure mode usage, and decoupled rendering responsibilities.
  • Consolidated multiple FAQ-style headings into a single 'FAQ' section using level-3 questions for JS packages, custom plugins, default plugin support, RTE JSON output, and alias-based content areas.
README.md
Updated and expanded the API Endpoints overview to align with current implementation and navigation features.
  • Simplified the introductory text for public API usage and removed advice that overlaps with external docs.
  • Rewrote the public API endpoints table with clearer descriptions and added new endpoints such as page_search, menu, submenu, breadcrumbs, and placeholder HTML rendering via ?html=1.
  • Appended a short note pointing reviewers to the external API reference for full request/response schema and authentication details.
  • Left preview/private API explanations but removed redundant verbose examples, shortening JSON plugin payloads (e.g., using "json": { ... }).
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@metaforx metaforx requested a review from fsbraun December 12, 2025 13:37
@codecov
Copy link

codecov bot commented Dec 12, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.98%. Comparing base (0387baa) to head (49a81e6).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #88   +/-   ##
=======================================
  Coverage   91.98%   91.98%           
=======================================
  Files          19       19           
  Lines         886      886           
  Branches      100      100           
=======================================
  Hits          815      815           
  Misses         44       44           
  Partials       27       27           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes - here's some feedback:

  • The README now suggests that rest_framework does not need to be in INSTALLED_APPS, but the Usage section still references DRF’s browsable API—consider clarifying that rest_framework must be added to INSTALLED_APPS if users want the browsable API UI.
  • The README uses different localhost ports (8080 vs 8000) in various sections; aligning these to a single default port will reduce confusion for new users following the setup flow.
  • The new API endpoints table now documents menu-related endpoints, so it might be worth double-checking that the Headless Mode considerations section doesn’t still imply menus are unavailable or only partially supported.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The README now suggests that `rest_framework` does not need to be in `INSTALLED_APPS`, but the Usage section still references DRF’s browsable API—consider clarifying that `rest_framework` must be added to `INSTALLED_APPS` if users want the browsable API UI.
- The README uses different localhost ports (`8080` vs `8000`) in various sections; aligning these to a single default port will reduce confusion for new users following the setup flow.
- The new API endpoints table now documents menu-related endpoints, so it might be worth double-checking that the Headless Mode considerations section doesn’t still imply menus are unavailable or only partially supported.

## Individual Comments

### Comment 1
<location> `README.md:22` </location>
<code_context>
+- **Multi-Site Support** – Serve multiple websites from a single instance with isolated API responses
+- **Multi-language Content** – Use the robust i18n integration of Django CMS in your frontend
+- **Preview & Draft Access** – Fetch unpublished or draft content in your frontend for editing previews
+- **Permissions & Authentication** – Uses DRF- and Django-permissions for secure access control
+- **Menus & Breadcrumbs** – Exposes the built-in navigation handlers from Django CMS
+- **Caching & Performance** – Works with Django cache backends like Redis and Memcached
</code_context>

<issue_to_address>
**suggestion (typo):** Clarify phrasing around DRF and Django permissions and remove unnecessary hyphenation.

The phrase `Uses DRF- and Django-permissions` is awkward and the hyphen is misplaced. Consider wording it as `Uses DRF and Django permissions for secure access control` (or similar) to improve clarity and fix the hyphenation.

```suggestion
- **Permissions & Authentication** – Uses DRF and Django permissions for secure access control
```
</issue_to_address>

### Comment 2
<location> `README.md:113` </location>
<code_context>
-## Are there js packages for drop-in support of frontend editing in the javascript framework of my choice?
+## FAQ
+
+### Are there js packages for drop-in support of frontend editing in the javascript framework of my choice?

 The good news first: django CMS headless mode is fully backend supported and works independently
</code_context>

<issue_to_address>
**suggestion (typo):** Capitalize "JS"/"JavaScript" in this heading for correct spelling.

In this heading, both instances are lowercase. To align with standard usage and the rest of the document, please change them to “JavaScript.”

```suggestion
### Are there JavaScript packages for drop-in support of frontend editing in the JavaScript framework of my choice?
```
</issue_to_address>

### Comment 3
<location> `README.md:183` </location>
<code_context>
 Custom DRF serializers can be declared for custom plugins by setting its `serializer_class` property.

-## Does the TextPlugin (Rich Text Editor, RTE) provide a json representation of the rich text?
+### Does the TextPlugin (Rich Text Editor, RTE) provide a json representation of the rich text?

 Yes, djangocms-text has both HTML blob and structured JSON support for rich text.
</code_context>

<issue_to_address>
**nitpick (typo):** Use "JSON" instead of "json" for consistency with standard capitalization.

Elsewhere in the README (e.g., "REST/JSON API") you use the capitalized form. For consistency, update "json representation" here to "JSON representation."

```suggestion
### Does the TextPlugin (Rich Text Editor, RTE) provide a JSON representation of the rich text?
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

fsbraun and others added 7 commits December 12, 2025 14:50
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Copy link
Member

@fsbraun fsbraun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM: Only one 8080 reference I noticed.

@fsbraun fsbraun merged commit 8e3ec95 into django-cms:main Dec 12, 2025
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments