-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
Summary
This proposal suggests several enhancements to improve the maintainability and usability of djangocms-versioning—particularly for managing old or unused versions and improving workflow efficiency on the page tree level.
Proposed Features
1. Management Command to Delete Unpublished / Archived Versions
-
Goal: Provide a management command to automatically remove old versions that are no longer relevant (e.g., unpublished, archived, or expired).
-
Use Case:
- Reduce database clutter in long-running CMS projects.
- Automate cleanup tasks in CI/CD or scheduled cron jobs.
-
Example:
python manage.py delete_old_versions --states unpublished archived --older-than 90
2. Additional State: “Mark for Deletion”
-
Goal: Introduce a new transitional version state for content that is pending deletion but requires review or confirmation before removal.
-
Details:
- Acts as a soft-delete marker.
- Useful for workflows where deletion must be approved (e.g., via moderation or audit trail).
-
Suggested Workflow:
draft → published → unpublished → mark_for_deletion → deleted
3. Versioning Commands on Page Tree Level
-
Goal: Enable versioning operations (e.g., publish, unpublish, archive, revert, mark for deletion) to be executed at the page tree level rather than individual pages.
-
Benefits:
- Bulk operations for hierarchical content structures.
- Ensures consistency when managing multi-level page hierarchies.
Additional Considerations
- Permissions integration for bulk operations.
- Logging and reporting for cleanup and deletion actions.
- Optional dry-run mode for management commands.
Expected Outcomes
- Simplified maintenance of large CMS installations.
- More robust and transparent version lifecycle management.
- Enhanced usability for content managers and administrators.
Metadata
Metadata
Assignees
Labels
No labels