django CMS Frontend is a plugin bundle which builds on from & improves the architecture of djangocms-bootstrap4. Its objective is to provide a set of popular frontend components independent of the currently used frontend framework such as Bootstrap, or its specific version.
- Support of Bootstrap 5, django CMS 3 and 4.
- Separation of plugins from css framework, i.e. no need to rebuild you site's plugin tree if css framework is changed in the future, e.g. from Bootstrap 5 to a future version.
- New link plugin allowing to link to internal pages provided by other applications, such as djangocms-blog.
- Nice and well-arranged admin frontend of djangocms-bootstrap4
- A management command to migrate from djangocms-bootstrap4. This
command automatically migrates all
djangocms-bootstrap4
plugins todjangocms-frontend
. - Extensible within the project and with separate project (e.g. a theme app)
- Accordion plugin
The plugins are framework agnostic and the framework can be changed by adapting your project's settings. Also, it is designed to avoid having to rebuild your CMS plugin tree when upgrading e.g. from one version of your frontend framework to the next.
django CMS Frontend uses django-entangled by Jacob Rief to avoid bloating your project's database with css framework-dependent tables. Instead all design parameters are stored in a common JSON field and future releases of improved frontend features will not require to rebuild your full plugin tree.
The link plugin has been rewritten to not only allow internal links to other CMS pages, but also to other django models such as, e.g., posts of djangocms-blog.
This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de
Also, all contributions are welcome.
This is a an open-source project. We'll be delighted to receive your feedback in the form of issues and pull requests. Before submitting your pull request, please review our contribution guidelines.
We're grateful to all contributors who have helped create and maintain this package. Contributors are listed at the contributors section.
One of the easiest contributions you can make is helping to translate this addon on Transifex.
See REQUIREMENTS
in the setup.py
file for additional dependencies:
- django-cms, version 3.7 or later
- django-filer, version 1.7 or later
- djangocms-attributes-field, version 1.0 or later
- djangocms-text-ckeditor, version 3.1 or later
- django-select2
- django-entangled
Make sure django Filer and django CMS Text CKEditor are installed and configured appropriately.
For a manual install:
run
pip install djangocms-frontend
add the following entries to your
INSTALLED_APPS
:'easy_thumbnails', 'djangocms_frontend', 'djangocms_frontend.contrib.accordion', 'djangocms_frontend.contrib.alert', 'djangocms_frontend.contrib.badge', 'djangocms_frontend.contrib.card', 'djangocms_frontend.contrib.carousel', 'djangocms_frontend.contrib.collapse', 'djangocms_frontend.contrib.content', 'djangocms_frontend.contrib.grid', 'djangocms_frontend.contrib.image', 'djangocms_frontend.contrib.jumbotron', 'djangocms_frontend.contrib.link', 'djangocms_frontend.contrib.listgroup', 'djangocms_frontend.contrib.media', 'djangocms_frontend.contrib.tabs', 'djangocms_frontend.contrib.utilities',
run
python manage.py migrate
If you use Django < 3.2 please also add django-jsonfield-backport
to
your requirements.txt
and django_jsonfield_backport
to your
INSTALLED_APPS
list.
djangocms-frontend has a weak dependencies on djangocms-icon you can install separately or by adding an option:
pip install djangocms-frontend[djangocms-icon] # Installs djangocms-icon for icon support in links
See readthedocs for the documentation.