Legacy django jet rebooted , supports only Django 3

Overview
https://travis-ci.com/b1go/django-jet-reboot.svg?branch=master

Django JET Reboot

Rebooting the original project : django-jet. Django Jet is modern template for Django admin interface with improved functionality.

We can't support old versions. We focus only on django >= 3.0 & Python >= 3.5.

Why Django JET?

  • New fresh look
  • Responsive mobile interface
  • Useful admin home page
  • Minimal template overriding
  • Easy integration
  • Themes support
  • Autocompletion
  • Handy controls

Screenshots

Screenshot #1 Screenshot #2 Screenshot #3

Installation

  • Download and install latest version of Django JET Reboot:
pip install django-jet-reboot
  • Add 'jet' application to the INSTALLED_APPS setting of your Django project settings.py file (note it should be before 'django.contrib.admin'):
INSTALLED_APPS = (
    ...
    'jet',
    'django.contrib.admin',
)
  • Make sure django.template.context_processors.request context processor is enabled in settings.py (Django 1.8+ way):
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]
  • Add URL-pattern to the urlpatterns of your Django project urls.py file (they are needed for related–lookups and autocompletes):
urlpatterns = patterns(
    '',
    path('jet/', include('jet.urls', 'jet')),  # Django JET URLS
    path('admin/', include(admin.site.urls)),
    ...
)
  • Create database tables:
python manage.py migrate jet
  • Collect static if you are in production environment:
python manage.py collectstatic
  • Clear your browser cache

Dashboard installation

Note

Dashboard is located into a separate application. So after a typical JET installation it won't be active. To enable dashboard application follow these steps:

  • Add 'jet.dashboard' application to the INSTALLED_APPS setting of your Django project settings.py file (note it should be before 'jet'):
INSTALLED_APPS = (
    ...
    'jet.dashboard',
    'jet',
    'django.contrib.admin',
    ...
)
  • Add URL-pattern to the urlpatterns of your Django project urls.py file (they are needed for related–lookups and autocompletes):
urlpatterns = patterns(
    '',
    path('jet/', include('jet.urls', 'jet')),  # Django JET URLS
    path('jet/dashboard/', include('jet.dashboard.urls', 'jet-dashboard')),  # Django JET dashboard URLS
    path('admin/', include(admin.site.urls)),
    ...
)
  • For Google Analytics widgets only install python package:
pip install google-api-python-client==1.4.1
  • Create database tables:
python manage.py migrate dashboard
  • Collect static if you are in production environment:
python manage.py collectstatic
Comments
  • Fixed display issue reported in issue #27

    Fixed display issue reported in issue #27

    I reported issue #27 which turned out to be a wider problem in how tabs are displayed in change_form views and how select2 fields are displayed. It appears that all what was needed to fix this was the load order of jsi18n.js. The pull request moves jsi18n.js so that it loads after all the js files loaded by django.

    opened by cobia 4
  • module 'collections' has no attribute 'MutableSet'

    module 'collections' has no attribute 'MutableSet'

    When jet.dashboard URLs are included in the project URLs, the following AttributeError is raised:

      File ".../jet/dashboard/urls.py", line 10, in <module>
        from jet.dashboard import dashboard
      File ".../jet/dashboard/dashboard.py", line 11, in <module>
        from jet.ordered_set import OrderedSet
      File ".../jet/ordered_set.py", line 4, in <module>
        class OrderedSet(collections.MutableSet):
    AttributeError: module 'collections' has no attribute 'MutableSet'
    

    Django v. 4.0.2 Python v. 3.10

    The issue is Python 3.10:

    DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
    

    Thank you for maintaining this project!

    bug 
    opened by johnunar 3
  • Connection refused by localhost when trying to add a foreign key model inside a model

    Connection refused by localhost when trying to add a foreign key model inside a model

    I have 2 models, one has a foreign key pointing to the other model. When I press "Add item" in the first model, I can press the plus button next to the foreign key field to add another to that model, but when I click it, it says "Connection refused by localhost".

    `class Currency(models.Model): name = models.CharField(max_length=200, null=False, blank=False)

    class Item(models.Model): name = models.CharField(max_length=200, verbose_name="Megnevezés", blank=False) curr = models.ForeignKey(Currency, max_length=50, blank=False, on_delete=models.CASCADE) `

    screenshot: https://imgur.com/a/f1AFAY1

    Django version: 4.0.6 jet version: newest.

    opened by adhdisdev 2
  • Where do I get the $65 commercial license for Jet mentioned in this article?

    Where do I get the $65 commercial license for Jet mentioned in this article?

    Article: https://betterprogramming.pub/a-better-admin-for-your-django-app-b6302ae06847

    I'm want to use Jet Reboot on my commercial website and just wanted to know if I can with the current license or where I can buy the commercial license?

    Thank you for your time!

    opened by torrinworx 2
  • Custom Admin Page

    Custom Admin Page

    Hello,

    Thank you for making it great again!

    Could I ask if I want to have a custom admin page, how I can do that because I searched there is no changelist file to override.

    Thank you!

    opened by namicts 2
  • Migration fails when using UUID

    Migration fails when using UUID

    User model with a UUID instead of BIGINT, the migrations fail for PostgreSQL. tried django-jet-reboot==1.3.1/1.3.3 still fails.

    Error message: return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: cannot cast type integer to uuid LINE 1: ..." ALTER COLUMN "user_id" TYPE uuid USING "user_id"::uuid, AL...

    opened by iamalmiir 1
  • "Found another file with the destination path ..."

    Right after following install instructions for django-jet-reboot, I ran python manage.py collectstatic and got these messages:

    Found another file with the destination path 'admin\css\base.css'. 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.
    Found another file with the destination path 'admin\css\changelists.css'. 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.
    Found another file with the destination path 'admin\css\dashboard.css'. 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.
    Found another file with the destination path 'admin\css\fonts.css'. 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.
    Found another file with the destination path 'admin\css\forms.css'. 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.
    Found another file with the destination path 'admin\css\login.css'. 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.
    Found another file with the destination path 'admin\css\rtl.css'. 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.
    Found another file with the destination path 'admin\css\widgets.css'. 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.
    Found another file with the destination path 'admin\js\SelectFilter2.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.
    Found another file with the destination path 'admin\js\admin\DateTimeShortcuts.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.
    Found another file with the destination path 'admin\js\admin\RelatedObjectLookups.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.
    

    Is this normal or should I do something to address that?

    Thanks in advance.

    opened by VBobCat 1
  • href missing in compact sidebar if user only has view permission

    href missing in compact sidebar if user only has view permission

    Versions Django==4.1.3 django-jet-reboot=1.3.3

    Description

    If a django project is set up with JET_SIDE_MENU_COMPACT = True and a staff member has only a view access for a certain model, the href is missing from the sidebar item.

    Screenshot 2022-11-21 at 17 32 52

    In jet/utils/get_app_list the url only gets added to the model, if a user has change or add permission: https://github.com/assem-ch/django-jet-reboot/blob/master/jet/utils.py#L85

    I'd be happy to contribute and write a PR for this. But can someone tell me if it's as easy as I think or what should be done?

    Would modifying the existing code as following be ok?

    if perms.get('view', False) or perms.get('change', False) :
        try:
            model_dict['admin_url'] = reverse('admin:%s_%s_changelist' % info, current_app=admin_site.name)
        except NoReverseMatch:
            pass
    
    opened by cdelacombaz 1
  • docs: fix simple typo, dictinaries -> dictionaries

    docs: fix simple typo, dictinaries -> dictionaries

    There is a small typo in jet/dashboard/modules.py.

    Should read dictionaries rather than dictinaries.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    opened by timgates42 1
  • Migration does work with custom user-model

    Migration does work with custom user-model

    Hey,

    in the case that someone use a custom User model with a UUID instead of (Big)Integer as primary key, the migrations fail for (at least) a postgresql. As far as I see, the error comes from the migration fiels, which declare "user" as a PositiveIntegerField, first, and then alter "user" to ForeignKey. The cast for the second step won't work, if the User model has a non-integer field as its primary key.

    Squashing or regenerating of the migration fields should solve the problem.

    opened by patrickRauer 1
  • 127.0.0.1 refused to connect

    127.0.0.1 refused to connect

    Python interpreter: 3.8.7 Django version: 3.2.4 django-jet-reboot: 1.1.1

    Problem: Cannot add data using the add icon

    image While clicking the add icon the following page shows: image

    opened by PhurbaGyalzen 1
  • GeoDjango maps don't get displayed

    GeoDjango maps don't get displayed

    I'm having an issue with GeoDjango maps on the admin interface when using Django Jet Reboot. The maps are registered on the admin using django.contrib.gis.admin.OSMGeoAdmin, and they display correctly on the default admin interface. However, when using Django Jet Reboot, the map is just blank.

    Steps to reproduce

    1. Register the maps on the admin using OSMGeoAdmin
    2. View the maps on the default admin interface
    3. Switch to Django Jet Reboot and view the maps on the admin interface

    Expected behavior

    The maps should display correctly on the admin interface when using Django Jet Reboot, just like they do on the default admin interface.

    Actual behavior

    When using Django Jet Reboot, the maps are just blank on the admin interface.

    Additional information

    • Django version: 3.2.6
    • Django Jet Reboot version: 1.3.3

    If anyone has experienced this issue or has any suggestions for how to fix it, please let me know! Thank you in advance for any help.

    opened by DeeStarks 0
  • Bump qs from 6.4.0 to 6.4.1

    Bump qs from 6.4.0 to 6.4.1

    Bumps qs from 6.4.0 to 6.4.1.

    Changelog

    Sourced from qs's changelog.

    6.4.1

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] use safer-buffer instead of Buffer constructor
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] Clean up license text so it’s properly detected as BSD-3-Clause
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 486aa46 v6.4.1
    • 727ef5d [Fix] parse: ignore __proto__ keys (#428)
    • cd1874e [Robustness] stringify: avoid relying on a global undefined (#427)
    • 45e987c [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 90a3bce [meta] fix README.md (#399)
    • 9566d25 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • 74227ef Clean up license text so it’s properly detected as BSD-3-Clause
    • 35dfb22 [actions] backport actions from main
    • 7d4670f [Dev Deps] backport from main
    • 0485440 [Fix] use safer-buffer instead of Buffer constructor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Side menu link permissions

    Side menu link permissions

    Hello! Why you need change permissions to click in the changelist view of a model? I have a model user in the core app and I have a group with add and view permissions to this model but not change permissions and this group can't access to this view from the side menu but it can access to the changelist view if it clicks in the core app from the side menu it can click on the view of the users (or entering with the url). This is because of this piece of code:

    if perms.get('change', False):
    try:
    model_dict['admin_url'] = reverse('admin:%s_%s_changelist' % info, current_app=admin_site.name)
    except NoReverseMatch:
    pass
    

    Doesn't this perms.get("change", False) should be perms.get("view", False)?

    opened by covadonga99 0
  • TemplateSyntaxError appeared after downloading 1.3.3.

    TemplateSyntaxError appeared after downloading 1.3.3.

    Hi !

    As the title explains, I have a TemplateSyntaxError in my project. When I force my project to use the 1.3.2 version, this error does not happen anymore. image

    Does someone have any idea about that ?

    Thanks in advance !

    opened by MaximeVlnve 2
  • [Question] Makemigrations denied, what is the best practice to resolve?

    [Question] Makemigrations denied, what is the best practice to resolve?

    Trying to generate makemigration files from local.yml :

    docker-compose -f local.yml run --rm django python manage.py makemigrations

    1. Why jet and dashboard migration files went to /usr/local/lib/python3.10/site-packages folder and not to my local migrations folder as in the 0001_initial.py migration?

    Migrations for 'dashboard': /usr/local/lib/python3.10/site-packages/jet/dashboard/migrations/0003_alter_userdashboardmodule_id.py - Alter field id on userdashboardmodule Migrations for 'jet': /usr/local/lib/python3.10/site-packages/jet/migrations/0002_alter_bookmark_id_alter_pinnedapplication_id.py - Alter field id on bookmark - Alter field id on pinnedapplication Migrations for 'paf': arthur_paf/paf/migrations/0001_initial.py - Create model AddressImpSet - Create model BuildingName

    EDIT: it is trying to create it not does not exist:

    cat: /usr/local/lib/python3.10/site-packages/jet/dashboard/migrations/0003_alter_userdashboardmodule_id.py: No such file or directory

    cat: /usr/local/lib/python3.10/site-packages/jet/migrations/0002_alter_bookmark_id_alter_pinnedapplication_id.py: No such file or directory

    1. But using production.yml:

    sudo docker-compose -f production.yml run --rm django python manage.py makemigrations WARN[0000] The "MONGO_USERNAME" variable is not set. Defaulting to a blank string. WARN[0000] The "MONGO_PASSWORD" variable is not set. Defaulting to a blank string. WARN[0000] The "MONGO_HOST" variable is not set. Defaulting to a blank string. WARN[0000] The "MONGO_PORT" variable is not set. Defaulting to a blank string. [+] Running 1/1 ⠿ Container mongo Recreated 0.2s [+] Running 1/1 ⠿ Container mongo Started 0.4s DATABASE_URL inside entrypoint: mongodb://@mongo:27017/?authMechanism=SCRAM-SHA-1 Migrations for 'dashboard': /usr/local/lib/python3.10/site-packages/jet/dashboard/migrations/0003_alter_userdashboardmodule_id.py - Alter field id on userdashboardmodule Traceback (most recent call last): File "/app/manage.py", line 31, in execute_from_command_line(sys.argv) File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 446, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 414, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 460, in execute output = self.handle(*args, **options) File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 98, in wrapped res = handle_func(*args, **kwargs) File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/makemigrations.py", line 214, in handle self.write_migration_files(changes) File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/makemigrations.py", line 256, in write_migration_files with open(writer.path, "w", encoding="utf-8") as fh: PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.10/site-packages/jet/dashboard/migrations/0003_alter_userdashboardmodule_id.py'

    Why is it now saying permission error?

    Do we change chmod in /usr/local/lib to make it writable?

    opened by scheung38 1
Releases(1.3.0)
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.2k Jan 08, 2023
WordPress look and feel for Django administration panel

Django WP Admin WordPress look and feel for Django administration panel. Features WordPress look and feel New styles for selector, calendar and timepi

Maciej Marczewski 266 Nov 21, 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 326 Nov 09, 2022
Python books free to read online or download

Python books free to read online or download

Paolo Amoroso 3.7k Jan 08, 2023
BitcartCC is a platform for merchants, users and developers which offers easy setup and use.

BitcartCC is a platform for merchants, users and developers which offers easy setup and use.

BitcartCC 270 Jan 07, 2023
FLEX (Federated Learning EXchange,FLEX) protocol is a set of standardized federal learning agreements designed by Tongdun AI Research Group。

Click to view Chinese version FLEX (Federated Learning Exchange) protocol is a set of standardized federal learning agreements designed by Tongdun AI

同盾科技 50 Nov 29, 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 Dec 29, 2022
PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

PyTorch Implementation of Unsupervised Depth Completion with Calibrated Backprojection Layers (ORAL, ICCV 2021)

80 Dec 13, 2022
A cool, modern and responsive django admin application based on bootstrap 5

django-baton A cool, modern and responsive django admin application based on bootstrap 5 Documentation: readthedocs Live Demo Now you can try django-b

Otto srl 678 Jan 01, 2023
AaPanel - Simple but Powerful web-based Control Panel

Introduction: aaPanel is the International version for BAOTA panel(www.bt.cn) There have millions servers had installed BAOTA panel since 2014 in Chin

bt.cn 1.4k Jan 09, 2023
Passhunt is a simple tool for searching of default credentials for network devices, web applications and more. Search through 523 vendors and their 2084 default passwords.

Passhunt is a simple tool for searching of default credentials for network devices, web applications and more. Search through 523 vendors and their 2084 default passwords.

Viral Maniar 1.1k Dec 31, 2022
A user-friendly JSON editing form for Django admin

A user-friendly JSON editing form for Django admin

Bharat Chauhan 141 Dec 30, 2022
Python Crypto Bot

Python Crypto Bot

Michael Whittle 1.6k Jan 06, 2023
DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing

DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing

74 Dec 03, 2022
Awesome Video Datasets

Awesome Video Datasets

Yunhua Zhang 462 Jan 02, 2023
A curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code.

A curated list of the latest breakthroughs in AI by release date with a clear video explanation, link to a more in-depth article, and code

Louis-François Bouchard 2.9k Jan 08, 2023
Extends the Django Admin to include a extensible dashboard and navigation menu

django-admin-tools django-admin-tools is a collection of extensions/tools for the default django administration interface, it includes: a full feature

Django Admin Tools 731 Dec 28, 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 6 Nov 23, 2022
EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

EOD (Easy and Efficient Object Detection) is a general object detection model production framework.

383 Jan 07, 2023
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

1.6k Dec 28, 2022