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)
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
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
Visually distinguish environments in Django Admin

django-admin-env-notice Visually distinguish environments in Django Admin. Based on great advice from post: 5 ways to make Django Admin safer by hakib

Yuri Shikanov 258 Nov 30, 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.4k Dec 29, 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

1.6k Dec 28, 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 Dec 27, 2022
With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials.

Django Hijack With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials. Docs See http://django

1.2k Jan 05, 2023
aiohttp admin is generator for admin interface based on aiohttp

aiohttp admin is generator for admin interface based on aiohttp

Mykhailo Havelia 17 Nov 16, 2022
A modern Python package manager with PEP 582 support.

A modern Python package manager with PEP 582 support.

Python Development Master(PDM) 3.6k Jan 05, 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
Nginx UI allows you to access and modify the nginx configurations files without cli.

nginx ui Table of Contents nginx ui Introduction Setup Example Docker UI Authentication Configure the auth file Configure nginx Introduction We use ng

David Schenk 4.3k Dec 31, 2022
WebVirtCloud is virtualization web interface for admins and users

WebVirtCloud is a virtualization web interface for admins and users. It can delegate Virtual Machine's to users. A noVNC viewer presents a full graphical console to the guest domain. KVM is currently

Anatoliy Guskov 1.3k Dec 29, 2022
A jazzy skin for the Django Admin-Interface (official repository).

Django Grappelli A jazzy skin for the Django admin interface. Grappelli is a grid-based alternative/extension to the Django administration interface.

Patrick Kranzlmueller 3.4k Dec 31, 2022
A new style for Django admin

Djamin Djamin a new and clean styles for Django admin based in Google projects styles. Quick start Install djamin: pip install -e git://github.com/her

Herson Leite 236 Dec 15, 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 Dec 29, 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 Dec 29, 2022
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery

StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery

3.3k Jan 01, 2023
GFPGAN is a blind face restoration algorithm towards real-world face images.

GFPGAN is a blind face restoration algorithm towards real-world face images.

Applied Research Center (ARC), Tencent PCG 25.6k Jan 04, 2023
A new style for Django admin

Djamin Djamin a new and clean styles for Django admin based in Google projects styles. Quick start Install djamin: pip install -e git://github.com/her

Herson Leite 236 Dec 15, 2022
Python books free to read online or download

Python books free to read online or download

Paolo Amoroso 3.7k Jan 08, 2023