Skip to main content

Django app for viewing Python packages and their versions

Project description

Django Version Viewer

Version Viewer provides Django Admins (with appropriate permission) the ability to view the Python packages and versions used within the project.

This tool can be used in several ways. It provides:

  • a template tag which inserts a link onto a template. Clicking that link opens up a pop up modal displaying installed Python packages.
  • a DjangoCMS toolbar entry. When clicked, a popup will display installed Python packages.
  • a CSV export of installed Python packages.
  • a queryable endpoint that displays installed Python packages.

You may also configure which users have access to the link and endpoint.


Installation


To install the Django Version Viewer, simply:

pip install django-version-viewer

Add the following to INSTALLED_APPS in settings.py

INSTALLED_APPS = [
    'django_version_viewer'
]

Add django_version_viewer urls and extend admin/index.html

Django Version Viewer needs to extend the admin/index.html and append it's urls to your urls.py. In your urls.py add:

admin.site.index_template = 'admin/custom_index.html'
admin.autodiscover()

urlpatterns = [
    ...
    path('django_version_viewer/', include('django_version_viewer.urls')),
    ...
]

# Note that you can now make a GET request to the route `r'^django_version_viewer/'` to see
# a list of your app's installed pip dependencies returned in JSON.

In your templates/admin/ dir, create a custom_index.html.

<!-- custom_index.html -->
{% extends "admin/index.html" %}

{% load i18n pip_version_viewer_tags %}

{% block content %}
{% show_pip_package_versions %}
{{ block.super }}
{% endblock %}

Admin Integration

Django CMS integration

If Django CMS is installed, a new menu item will be added to the CMS Toolbar Page Menu that will allow opening the version viewer popup.

CMS Integration

Permissions

You can set your own access permissions on the template tag and route by defining your own Accessor class. This class must have a allow_access method that returns a boolean. By defualt, django_version_viewer only allows superusers access to the route and template tag.

# Django Version Viewer settings:
ACCESSOR_CLASS_PATH = 'mypathto.my.AccessorClass'

# the default class only allows superusers access
django_version_viewer.mixins.SuperuserAccessor

Running Tests

# in a virtualenv
pip install -e .[testing]
pip install Django==5.2.14
flake8 .
ENABLE_DJANGOCMS=False coverage run ./example22/manage.py test django_version_viewer

Project details


Download files

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

Source Distribution

django_version_viewer-2.1.9.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

django_version_viewer-2.1.9-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file django_version_viewer-2.1.9.tar.gz.

File metadata

  • Download URL: django_version_viewer-2.1.9.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for django_version_viewer-2.1.9.tar.gz
Algorithm Hash digest
SHA256 c75fbb59d09b8fa02823603ac71a2f8d85304020d0eadbf698582c8d49297222
MD5 b0fb6835a59a75f815c682ee715e4b9d
BLAKE2b-256 a26b597c32b4925f6ecb5620526635c8a385fac5c49685b7318cb30a54105004

See more details on using hashes here.

File details

Details for the file django_version_viewer-2.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for django_version_viewer-2.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c6daf68b48045126f4099b5ccb35ef6443c1c9606cd840b177a52ad7b591c3df
MD5 cdf297fa81c9d13338276c81a452f464
BLAKE2b-256 967991140ef5211fd2dea1bfb6e54a61cafc0b51197d71240fe4e0796122a3a4

See more details on using hashes here.

Supported by

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