Skip to main content

Manage front end dependencies in Django.

Project description

django-fe-manager

PyPI Gitlab pipeline status Gitlab coverage

Manage front end dependencies in Django

Usage

Create a FE_MANAGER variable in your project settings defining the modules that can be used in your project. An example:

FE_MANAGER = {
    'bootstrap': {
        'version': '4.0.0',
        'js': ['/static/js/bootstrap.bundle.min.js'],
        'css': ['/static/css/bootstrap.css', '/static/css/custom.css'],
        'dependencies': {'jquery'}
    },
    'jquery': {
        'version': '3.2.1',
        'js': ['/static/private/js/vendors/jquery-3.2.1.min.js']
    },
    'moment': {
        'version': '2.24.0',
        'js': ['https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js']
    },
    'chartjs': {
        'version': '2.9.3',
        'js': ['https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js'],
        'dependencies': {'moment'}
    }
}

In your base view load the module, declare your dependencies, declare a dummy block at the beggining and add the css and js output tags:

{% load fe_manager %}
{% fe_manager_add_module 'bootstrap' %}
{% fe_manager_add_module 'jquery' %}
{% block fe_manager %}{% endblock fe_manager %}
<!DOCTYPE html>
<html>
<head>
    <!-- Title and other HTML code... -->
    <!-- Output CSS -->
    {% fe_manager_output_css %}
</head>
<body>
    <!-- Content and other stuff... -->
    {% block content %}{% endblock content%}
    <!-- Output JS -->
    {% fe_manager_output_js %}
</body>
</html>

Every child view can now add its dependencies in the following way...

{% extends 'base.html' %}

{% load fe_manager %}

{% block fe_manager %}
{% fe_manager_add_module 'chartjs' %}
{% endblock fe_manager %}

{% block content %}
Content here!
{% endblock content %}

The plugin will take care of dependency ordering and outputting both JS and CSS to your base template!

0.0.3

  • Add some documentation

0.0.2

  • Fix packaging (utils package not being included previously).

0.0.1

  • Initial release on PyPi.

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-fe-manager-0.0.3.tar.gz (7.4 kB view details)

Uploaded Source

File details

Details for the file django-fe-manager-0.0.3.tar.gz.

File metadata

  • Download URL: django-fe-manager-0.0.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.4

File hashes

Hashes for django-fe-manager-0.0.3.tar.gz
Algorithm Hash digest
SHA256 759c55ede7228119b0eaf0a1f49420193927ff528e1fc5eca24319b932cc825f
MD5 c6a12229a558b4a973d7e72648512387
BLAKE2b-256 58640658670336b35fed044921928306a8d73c535c94bd5b49b243c950c8dd86

See more details on using hashes here.

Supported by

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