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)
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
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
Ajenti Core and stock plugins

Ajenti is a Linux & BSD modular server admin panel. Ajenti 2 provides a new interface and a better architecture, developed with Python3 and AngularJS.

Ajenti Project 7k Jan 07, 2023
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
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 administration website for Django

yawd-admin, a django administration website yawd-admin now has a live demo at http://yawd-admin.yawd.eu/. Use demo / demo as username & passowrd. yawd

Pantelis Petridis 140 Oct 30, 2021
Freqtrade is a free and open source crypto trading bot written in Python

Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money man

20.2k Jan 02, 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
A python application for manipulating pandas data frames from the comfort of your web browser

A python application for manipulating pandas data frames from the comfort of your web browser. Data flows are represented as a Directed Acyclic Graph, and nodes can be ran individually as the user se

Schlerp 161 Jan 04, 2023
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 Dec 31, 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
Lazymux is a tool installer that is specially made for termux user which provides a lot of tool mainly used tools in termux and its easy to use

Lazymux is a tool installer that is specially made for termux user which provides a lot of tool mainly used tools in termux and its easy to use, Lazymux install any of the given tools provided by it

DedSecTL 1.8k Jan 09, 2023
Tactical RMM is a remote monitoring & management tool for Windows computers, built with Django and Vue.

Tactical RMM is a remote monitoring & management tool for Windows computers, built with Django and Vue. It uses an agent written in golan

Dan 1.4k Dec 30, 2022
Material Design for Django

Django Material Material design for Django. Django-Material 1.7.x compatible with Django 1.11/2.0/2.1/2.2/3.0/3.1 Django-Material 1.6.x compatible wit

Viewflow 2.5k Jan 01, 2023
Video Visual Relation Detection (VidVRD) tracklets generation. also for ACM MM Visual Relation Understanding Grand Challenge

VidVRD-tracklets This repository contains codes for Video Visual Relation Detection (VidVRD) tracklets generation based on MEGA and deepSORT. These tr

25 Dec 21, 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
Allow foreign key attributes in list_display with '__'

django-related-admin Allow foreign key attributes in Django admin change list list_display with '__' This is based on DjangoSnippet 2996 which was mad

Petr Dlouhý 62 Nov 18, 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
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 configurable set of panels that display various debug information about the current request/response.

Django Debug Toolbar The Django Debug Toolbar is a configurable set of panels that display various debug information about the current request/respons

Jazzband 7.3k Dec 31, 2022