Skip to main content

Unofficial extra for Django Unfold Admin. Supports django-parler and django-cms.

Project description

Django Unfold Extra

Unofficial extension for Django Unfold Admin. Adds support for django-parler and django-cms to the modern and clean Django Unfold admin interface.

Overview

Django Unfold Extra enhances the beautiful Django Unfold admin interface with additional functionality for:

  • django-parler: Multilingual support for your Django models
  • django-cms: Integration with Django CMS 5.0

img.png img.png

This package maintains the clean, modern aesthetic of Django Unfold while adding specialized interfaces for these popular Django packages.

It uses CSS overrides where possible. As Django CMS uses many '!important' flags, I had to rebuild pagetree.css to remove some conflicting style definitions.

Note: Work in progress. Django CMS support is working but not yet fully integrated. Use at your own risk.

Installation

  1. Install the package via pip:

    pip install django-unfold-extra
    
  2. Add to your INSTALLED_APPS in settings.py:

INSTALLED_APPS = [
   # Unfold theme
   'unfold',
   'unfold_extra',
   'unfold_extra.contrib.cms',  # if extra packages
   'unfold_extra.contrib.parler',
   'unfold_extra.contrib.auth'  # you likely want to use your own implementation
   'unfold_extra.contrib.sites'

   # Your apps
   # ...
]

Make sure you've set up Django Unfold according to its documentation. https://github.com/unfoldadmin/django-unfold

Usage

django-parler Support

  • UnfoldTranslatableAdminMixin
  • UnfoldTranslatableStackedAdminMixin
  • UnfoldTranslatableTabularAdminMixin
  • TranslatableStackedInline, TranslatableTabularInline

Example use:

class TranslatableAdmin(UnfoldTranslatableAdminMixin, BaseTranslatableAdmin):
   """custom translatable admin implementation"""

   # ... your code


class MyInlineAdmin(TranslatableStackedInline):
   model = MyModel
   tab = True  # Unfold inline settings
   extra = 0  # django inline settings

django-cms Support

  • Theme integration in django admin (partial support in frontend)
  • Pagetree
  • PageUser, PageUserGroup, GlobalPagePermission
  • Versioning (partial support)
  • Modal support
  • Not supported: Filer

Support is automatically applied. Currently, it does not support customization besides compiling your own unfold_extra styles.

Frontend django CMS support

Add unfold_extra_tags to your base HTML template to after loading all CSS styles. This adds additional styles to hide unfold admin like header in the django cms, for example, for page settings etc.

{% load cms_tags sekizai_tags unfold_extra_tags%}
<head>
   ...
   {% render_block "css" %}
   {% unfold_extra_styles %}
   ...
</head>

Custom compilation via npm/pnpm (see src/package.json)

{
   "name": "django-unfold-extra",
   "description": "Enhancing Django Unfold to support additional packages",
   "scripts": {
      "update:unfold-deps": "curl -s https://raw.githubusercontent.com/unfoldadmin/django-unfold/main/package.json | jq -r '[\"tailwindcss@\" + .dependencies.tailwindcss, \"@tailwindcss/typography@\" + .devDependencies[\"@tailwindcss/typography\"]] | join(\" \")' | xargs npm install --save-dev",
      "update:unfold-css": "curl -o css/styles.css https://raw.githubusercontent.com/unfoldadmin/django-unfold/main/src/unfold/styles.css",
      "update:unfold": "npm run update:unfold-deps && npm run update:unfold-config",
      "tailwind:build": "npx @tailwindcss/cli -i css/unfold_extra.css -o ../static/unfold_extra/css/styles.css --minify",
      "tailwind:watch": "npx @tailwindcss/cli -i css/unfold_extra.css -o ../static/unfold_extra/css/styles.css --watch --minify"
   },
   "devDependencies": {
      "@tailwindcss/cli": "^4.1.7",
      "@tailwindcss/typography": "^0.5.16",
      "tailwindcss": "^4.1.7"
   }
}

Change colors for Django CMS

Currently, you have to manually update src/css/unfold_extra.css and compile a new styles.css extending unfold styles.

  1. Fetch the latest Unfold version using update:unfold-deps and update:unfold-css
  2. Update config update:unfold
  3. Add changes tailwind:watch and tailwind:build
html:root {
   --dca-light-mode: 1;
   --dca-dark-mode: 0;
   --dca-white: theme('colors.white');
   --dca-black: theme('colors.black');
   --dca-shadow: theme('colors.base.950');
   --dca-primary: theme('colors.primary.600');
   --dca-gray: theme('colors.base.500');
   --dca-gray-lightest: theme('colors.base.100');
   --dca-gray-lighter: theme('colors.base.200');
   --dca-gray-light: theme('colors.base.400');
   --dca-gray-darker: theme('colors.base.700');
   --dca-gray-darkest: theme('colors.base.800');
   --dca-gray-super-lightest: theme('colors.base.50');

   --active-brightness: 0.9;
   --focus-brightness: 0.95;
}


html.dark {
   --dca-light-mode: 0;
   --dca-dark-mode: 1;
   --dca-white: theme('colors.base.900');
   --dca-black: theme('colors.white');
   --dca-primary: theme('colors.primary.500');
   --dca-gray: theme('colors.base.300') !important;
   --dca-gray-lightest: theme('colors.base.700');
   --dca-gray-lighter: theme('colors.base.600');
   --dca-gray-light: theme('colors.base.400');
   --dca-gray-darker: theme('colors.base.200');
   --dca-gray-darkest: theme('colors.base.100');
   --dca-gray-super-lightest: theme('colors.base.800');

   --active-brightness: 2;
   --focus-brightness: 1.5;
}

Versatile Image Support

  • Improved unfold integration via CSS only.

Django Auth, Sites

  • Add Unfolds standard settings to django.contrib.auth,django.contrib.sites.

This is for personal use. You likely want to customize this.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_unfold_extra-0.1.3a0.tar.gz (300.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_unfold_extra-0.1.3a0-py3-none-any.whl (311.3 kB view details)

Uploaded Python 3

File details

Details for the file django_unfold_extra-0.1.3a0.tar.gz.

File metadata

  • Download URL: django_unfold_extra-0.1.3a0.tar.gz
  • Upload date:
  • Size: 300.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for django_unfold_extra-0.1.3a0.tar.gz
Algorithm Hash digest
SHA256 11776a2d958b37e79a8d12577358d5ab560c36f5e8a538817f0e71d882ef2c9d
MD5 3f6967546e787873a70ed69b3cb58248
BLAKE2b-256 58e90e74f92660241edf8cce1ec5589a14187293285f90a4a304ffd1aa95de2a

See more details on using hashes here.

File details

Details for the file django_unfold_extra-0.1.3a0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_unfold_extra-0.1.3a0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8b94dd77ec1bd8f8ebb69eaebfbe53eb782e1a746e47beedc6ae3124633ee38
MD5 42896f402566ba1793fdad4a471722f2
BLAKE2b-256 0812f977298dffbd9615066970cec8c7a59e7221fae6d23274aa4b08375f3d78

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page