A jazzy skin for the Django Admin-Interface (official repository).

Overview

Django Grappelli

https://readthedocs.org/projects/django-grappelli/badge/?version=latest

A jazzy skin for the Django admin interface.

Grappelli is a grid-based alternative/extension to the Django administration interface.

Code

https://github.com/sehmaschine/django-grappelli

Website

http://www.grappelliproject.com

Documentation

http://readthedocs.org/docs/django-grappelli/

Releases

Grappelli is always developed against the latest stable Django release and is NOT tested with Django's master branch.

  • Grappelli 2.15.1 (April 22th, 2021): Compatible with Django 3.2 (LTS)
  • Grappelli 2.14.4 (April 15th, 2021): Compatible with Django 3.1
  • Grappelli 2.13.4 (February 10th, 2020): Compatible with Django 2.2 (LTS)
  • Grappelli 2.10.4 (November 1st, 2018): Compatible with Django 1.11 (LTS)

Current development branches:

  • Grappelli 2.15.2 (Development version for Django 3.2, see branch Stable/2.15.x)
  • Grappelli 2.14.5 (Development version for Django 3.1, see branch Stable/2.14.x)
  • Grappelli 2.13.5 (Development version for Django 2.2, see branch Stable/2.13.x)
  • Grappelli 2.10.5 (Development version for Django 1.11, see branch Stable/2.10.x)

Older versions are available at GitHub, but are not supported anymore.

Comments
  • Filter functionality on admin pages don't work unless actions = None on ModelAdmins

    Filter functionality on admin pages don't work unless actions = None on ModelAdmins

    Hi all,

    Unless actions = None in my ModelAdmin class definitions, grappelli raises and javascript exception and the filter functionality (with fields defined in list_filter) breaks. The dropdown button shows up but nothing drops down when you click on it.

    The error is "Uncaught TypeError: Object [object Object] has no method 'actions' " on the line $("tr input.action-select").actions(); (line 66 in the grappelli template).

    The relevant code snippet from the grappelli code

    Also, I think this might be similar to Issue #206.

    I'm using Django 1.4.1 and Grappelli 2.4.2

    discussion 
    opened by karansag 56
  • Autocomplete does not work with Django 3.2

    Autocomplete does not work with Django 3.2

    VERSIONS: Grappelli 2.15.1, Django 3.2 STATICFILES: WARNINGS, Details: I see a lot of errors with text like this

    Found another file with the destination path 'admin/js/autocomplete.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
    

    JAVASCRIPTS: ERROR Failed to load resource: the server responded with a status of 403 (Forbidden) CUSTOMIZATIONS: NONE

    I upgraded django from 2.2 to 3.2 and it broke the autocomplete on related fields it just always says 403 and gives the following error:

    Forbidden (Permission denied): /admin/autocomplete/
    Traceback (most recent call last):
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/utils/datastructures.py", line 76, in __getitem__
        list_ = super().__getitem__(key)
    KeyError: 'app_label'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/views/autocomplete.py", line 61, in process_request
        app_label = request.GET['app_label']
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/utils/datastructures.py", line 78, in __getitem__
        raise MultiValueDictKeyError(key)
    django.utils.datastructures.MultiValueDictKeyError: 'app_label'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
        response = get_response(request)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/sites.py", line 250, in wrapper
        return self.admin_view(view, cacheable)(*args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
        response = view_func(request, *args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
        response = view_func(request, *args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/sites.py", line 232, in inner
        return view(request, *args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/sites.py", line 417, in autocomplete_view
        return AutocompleteJsonView.as_view(admin_site=self)(request)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
        return self.dispatch(request, *args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
        return handler(request, *args, **kwargs)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/views/autocomplete.py", line 20, in get
        self.term, self.model_admin, self.source_field, to_field_name = self.process_request(request)
      File "/home/alex/Project/env/lib/python3.8/site-packages/django/contrib/admin/views/autocomplete.py", line 65, in process_request
        raise PermissionDenied from e
    django.core.exceptions.PermissionDenied
    [02/May/2021 20:11:33] "GET /admin/autocomplete/ HTTP/1.1" 403 135
    

    This ticket seems to be related to the issue https://code.djangoproject.com/ticket/32659?cversion=2&cnum_hist=2

    Downgrade to 3.1 fixes the issue.

    opened by FrozenAlex 36
  • get_filtered_queryset  or

    get_filtered_queryset or "'query_string'" should support ModelAdmin.queryset

    Similar to this user: http://stackoverflow.com/questions/17852308/how-to-filter-autocompletion-results-in-django-grapelli/17981530#17981530

    I need to restrict all FK/M2M lookups. In my case, I restrict them to the company division that entered the data. Similar to SAS.

    The existing "ForeignKey.limit_choices_to" (https://docs.djangoproject.com/en/1.5/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to) does not seem able to access anything in the "request" object or session storage.

    The ModelAdmin.queryset feature: https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.queryset

    Is passed the request object, which lets me easily restrict records using: qs.filter(site__id=request.session['site'].id)

    What I need is a non-hack way to either instruct Grappelli to use the admin specific model manager (or any custom manger the user cares to define), or a way to include request/session values in the filter.

    I have a pull request pending for "django_extensions" to fix this with their autocomplete function.

    Thanks in advance!

    discussion 
    opened by rcooke 34
  • Filter drop-down doesn't function due to Javascript error in Chrome, FF

    Filter drop-down doesn't function due to Javascript error in Chrome, FF

    I just installed django-grappelli 2.3.4 in combination with Django 1.4.0 alpha. All's fine, except for the filter drop-down box on the change list page. Chrome and Firefox report a Javascript error:

    Uncaught TypeError: Object #<Object> has no method 'actions'
    (anonymous function):8000/admin/msdb/incident/:59
    c.extend.readyjquery-1.4.2.min.js:26
    L
    

    The relevant bit of code is in templates/admin/change_list.html. A fix seems to be moving the block

    {% if action_form %}
      ...
    {% endif %}
    

    from line 19 down to line 65, right after {{ media.js }}. I believe this is because the actions.js script is loaded in the block contained by media.js, which comes after relevant Javascript code.

    Not sure if this is a result of Django code still being in alpha, but figured I'd report it.

    Another error occurrs at the same time by grp_collapsible in templates/admin/includes_grappelli/header.html:

    Uncaught TypeError: Object #<Object> has no method 'grp_collapsible'
    

    Don't know how to fix this one, though.

    opened by ndrsn 31
  • Use Twitter bootstrap instead of blueprint

    Use Twitter bootstrap instead of blueprint

    For the grids and styles, would be great to use twitter bootstrap instead of blueprint as it will come out with more themes in near future and is more actively updated.

    opened by bevenky 30
  • Grapelli 2.7.1's backoffice fails selecting records with checkboxes

    Grapelli 2.7.1's backoffice fails selecting records with checkboxes

    VERSIONS: Grappelli 2.7.1(stable from pip), Django 1.8.3, Python 2.7.9 STATICFILES: OK JAVASCRIPTS: OK? I'm not sure due to this failure (Tested in Firefox 40) CUSTOMIZATIONS: NONE *

    • ...unless adding tinymce.js through myapp/admin.py counts as a customization...

    The failure itself looks simple: if I try to select a model's record in admin panel clicking the checkboxes, it keeps saying "selected 0 of n" and doesn't let me perform DELETE operation through the admin's GUI. This issue happens with any kind of model; even the basic ones, like the users for example.

    Maybe I can try to figure out why this happens - (I mean, I feel comfortable with Python, HTML, CSS -not so comfortable with CSS, but I understand it xD-, JavaScript, jQuery -technically, it is a JavaScript's library :P- and SQL languages; and I have been dealing with Django framework for six months or more)... The problem is that I have no idea where are the functions that control the checkbox's state to start debugging (I mean, I know where to find the package and the source in my machine, but not which order should I follow to analyze the implied functions/classes, because I just don't know them yet)... however, I would try it out.

    PD: How do things work in case I want to self-assign this issue? I guess I would probably need permission or something...

    opened by SebasSBM 27
  • Use localized datepickers for date input fields in Grappelli

    Use localized datepickers for date input fields in Grappelli

    Hi,

    thank you for sharing & maintaining this great, hiqh-quality, useful Django package.

    I found some support for localized (i18n) datepickers in Grappelli, but they did not seem to work for me. So, I created this small patch. I'd be more than happy if you merged it.

    I used {% if LANGUAGE_CODE %} to test for i18n support, but I don't know if this is the best way.

    opened by mpasternak 26
  • ValueError: The file 'grappelli/jquery/i18n/ui.datepicker-en-us.js' could not be found

    ValueError: The file 'grappelli/jquery/i18n/ui.datepicker-en-us.js' could not be found

    VERSIONS: Grappelli 2.5.6, Django 1.6.10
    STATICFILES: ERROR
    CUSTOMIZATIONS: NONE
    

    Running ./manage.py collectstatic && ./manage.py.compress throws this:

    ValueError: The file 'grappelli/jquery/i18n/ui.datepicker-en-us.js' could not be found with <django.contrib.staticfiles.storage.CachedStaticFilesStorage object at 0x2d61550>.
    
    opened by msamoylov 23
  • [problem] Filter in 2.7.3

    [problem] Filter in 2.7.3

    I just upgraded to 2.7.3 from 2.7.1 and my filter stopped working. I get a javascript error: (index):63 Uncaught TypeError: $(...).actions is not a function

    image

    opened by mykljohn 21
  • Autocomplete question

    Autocomplete question

    First time to use Grappelli, so please bear with my very native question. I am intrigued by the autocomplete feature and added GRAPPELLI_AUTOCOMPLETE_SEARCH_FIELDS = { "dry_powder": { "PositionLevelData": ("Position__icontains",) } } into my settings. My understanding is now when I enter partial names of Position in the search field of the changelist page, my typein will be autocompleted. Yet I see nothing like that. Am I misunderstanding something or missing something? Thanks for the great work.

    opened by ghost 20
  • autocompletes for fk, m2m & generic relations

    autocompletes for fk, m2m & generic relations

    autocomplete-field which needs to work with

    • foreign keys
    • many-to-many relationships
    • generic relationships

    on both the change-form and the change-list. moreover, the search-icon is necessary as well (since with an autocomplete, one might not receive all possible items in rare cases).

    proposal 
    opened by sehmaschine 20
  • Multiple date hierarchies

    Multiple date hierarchies

    It is currently only possible to define exactly one date_hierarchy with Django. But it is sometimes useful to define more than one of these filters. Check if we can easily implement this.

    opened by sehmaschine 0
  • `change_list_filter_confirm` is using `admin_list.admin_list_filter` instead of `grp_tags.admin_list_filter`

    `change_list_filter_confirm` is using `admin_list.admin_list_filter` instead of `grp_tags.admin_list_filter`

    Packages: Django==3.2.2 django-grappelli==2.15.1

    The current change_list_filter_confirm contains: {% load i18n grp_tags admin_urls static admin_list %}

    Django is using the admin_list_filter template tag from Django's admin_list instead of Grapellisgrp_tags`.

    Looks like changing the order in the load tag fix the issue: {% load i18n admin_urls static admin_list grp_tags %}

    opened by pricco 3
  • Fix CSS to show full multi-select form element

    Fix CSS to show full multi-select form element

    Previously, the include added a height of 25px to the select[multiple] inputs, which made them un-usable. This avoids adding the height restriction to the multiple-input selects.

    Previous to fix:

    Screen Shot 2019-07-14 at 2 29 53 PM

    After fix:

    Screen Shot 2019-07-14 at 2 47 32 PM
    opened by liquidpele 5
  • Dynamic grappelli dashboard size based on columns from Dashboard class

    Dynamic grappelli dashboard size based on columns from Dashboard class

    Columns variable was ignored in template. While columns==2 my Django grappelli showed 3 columns and I wanted to make it 4. My solution works with 1,2,3,4,5 columns, any more and longer names will pop up out of boxes. columns use use 23 as bs size as 24 is rounded up to 25 in widthratio template tag.

    opened by orlra 5
Owner
Patrick Kranzlmueller
Patrick Kranzlmueller
fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin 1.5k Sep 26, 2022
Jazzy theme for Django

Django jazzmin (Jazzy Admin) Drop-in theme for django admin, that utilises AdminLTE 3 & Bootstrap 4 to make yo' admin look jazzy Installation pip inst

David Farrington 1.1k Sep 28, 2022
aiohttp admin is generator for admin interface based on aiohttp

aiohttp admin is generator for admin interface based on aiohttp

Mykhailo Havelia 17 Jul 29, 2022
📱 An extension for Django admin that makes interface mobile-friendly. Merged into Django 2.0

Django Flat Responsive django-flat-responsive is included as part of Django from version 2.0! ?? Use this app if your project is powered by an older D

elky 248 Sep 2, 2022
Disable dark mode in Django admin user interface in Django 3.2.x.

Django Non Dark Admin Disable or enable dark mode user interface in Django admin panel (Django==3.2). Installation For install this app run in termina

Artem Galichkin 5 Apr 13, 2022
Jet Bridge (Universal) for Jet Admin – API-based Admin Panel Framework for your application

Jet Bridge for Jet Admin – Admin panel framework for your application Description About Jet Admin: https://about.jetadmin.io Live Demo: https://app.je

Jet Admin 1.3k Sep 26, 2022
Modern responsive template for the Django admin interface with improved functionality. We are proud to announce completely new Jet. Please check out Live Demo

Django JET Modern template for Django admin interface with improved functionality Attention! NEW JET We are proud to announce completely new Jet. Plea

Geex Arts 3.3k Sep 25, 2022
django's default admin interface made customizable. popup windows replaced by modals. :mage: :zap:

django-admin-interface django-admin-interface is a modern responsive flat admin interface customizable by the admin itself. Features Beautiful default

Fabio Caccamo 1.2k Sep 21, 2022
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Sep 30, 2022
A flat theme for Django admin interface. Modern, fresh, simple.

Django Flat Theme django-flat-theme is included as part of Django from version 1.9! ?? Please use this app if your project is powered by an older Djan

elky 416 Sep 22, 2022
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Sep 24, 2022
An improved django-admin-tools dashboard for Django projects

django-fluent-dashboard The fluent_dashboard module offers a custom admin dashboard, built on top of django-admin-tools (docs). The django-admin-tools

django-fluent 327 Sep 15, 2022
A Django app for easily adding object tools in the Django admin

Django Object Actions If you've ever tried making admin object tools you may have thought, "why can't this be as easy as making Django Admin Actions?"

Chris Chang 498 Sep 29, 2022
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Sep 28, 2022
A Django admin theme using Twitter Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed apps.

django-admin-bootstrapped A Django admin theme using Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed ap

null 1.6k Sep 19, 2022
Extendable, adaptable rewrite of django.contrib.admin

django-admin2 One of the most useful parts of django.contrib.admin is the ability to configure various views that touch and alter data. django-admin2

Jazzband 1.2k Sep 28, 2022
Django application and library for importing and exporting data with admin integration.

django-import-export django-import-export is a Django application and library for importing and exporting data with included admin integration. Featur

null 2.5k Oct 3, 2022
:honey_pot: A fake Django admin login screen page.

django-admin-honeypot django-admin-honeypot is a fake Django admin login screen to log and notify admins of attempted unauthorized access. This app wa

Derek Payton 897 Oct 2, 2022
"Log in as user" for the Django admin.

django-loginas About "Login as user" for the Django admin. loginas supports Python 3 only, as of version 0.4. If you're on 2, use 0.3.6. Installing dj

Stavros Korokithakis 318 Sep 14, 2022