Skip to main content

SwampDragon-live is an extension to Django and SwampDragon which adds support for live updating Django template snippets on model changes.

Project description

[SwampDragon-live](https://github.com/mback2k/swampdragon-live) is an
extension to [Django](https://www.djangoproject.com/) and
[SwampDragon](http://swampdragon.net/) with SwampDragon-auth and django-redis
which adds support for live updating Django template snippets on model changes.

Installation
------------
Install the latest version from pypi.python.org:

pip install SwampDragon-live

Install the development version by cloning the source from github.com:

pip install git+https://github.com/mback2k/swampdragon-live.git

Configuration
-------------
Add the package to your `INSTALLED_APPS`:

INSTALLED_APPS += (
'swampdragon',
'swampdragon_live',
)

Example
-------
Make sure to use django-redis as a Cache backend named 'swampdragon-live' or 'default':

CACHES = {
'swampdragon-live': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://localhost:6379/0',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}

Make sure to add the following line to your Django settings file:

SWAMP_DRAGON_CONNECTION = ('swampdragon_auth.socketconnection.HttpDataConnection', '/data')

Load the required JavaScript template-tags within your Django template:

{% load swampdragon_tags %}
{% load swampdragon_live %}

Add the required JavaScript to your Django template:

{% swampdragon_settings %}
<script type="text/javascript" src="{{ STATIC_URL }}swampdragon/js/dist/swampdragon.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}swampdragon/js/live/swampdragon.live.js"></script>

Use the include_live template-tag instead of the default include template-tag,
with rows being a Django database QuerySet to listen for added, changed, deleted instances:

{% include_live 'table' 'includes/table_body.html' rows=rows perms=perms %}

Use the include_live template-tag instead of the default include template-tag,
with row being a single Django database Model instance to listen for changes:

{% include_live 'table-row' 'includes/row_cols.html' row=row perms=perms %}

Use the swampdragon_live variable within the included template to add the
required classes to the root-tag of this template, e.g. the first tag-node:

<tr class="{{ swampdragon_live }}">...</tr>

You can check if your template is being live rendered by a content pusher by
using the context variable `is_swampdragon_live` like this:

{% if is_swampdragon_live %}
<style onload="alert('Hello World!');"></style>
{% endif %}

A real-world example can be found in the Django project WebGCal:
* https://github.com/mback2k/django-webgcal/blob/master/webgcal/apps/webgcal/templates/show_dashboard.html
* https://github.com/mback2k/django-webgcal/tree/master/webgcal/apps/webgcal/templates/includes

License
-------
* Released under MIT License
* Copyright (c) 2015-2016 Marc Hoersken <info@marc-hoersken.de>

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

SwampDragon-live-0.0.7a0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

SwampDragon_live-0.0.7a0-py2-none-any.whl (10.6 kB view details)

Uploaded Python 2

File details

Details for the file SwampDragon-live-0.0.7a0.tar.gz.

File metadata

File hashes

Hashes for SwampDragon-live-0.0.7a0.tar.gz
Algorithm Hash digest
SHA256 3839c67b6d16973bf9232bb5df1b48232d6d014c3c05943b6474a6db1a3fefda
MD5 b9c2fb9534dd65bf191958e8eea7c53e
BLAKE2b-256 54f539c224f3221354c73fdda596857eb797fb20a4d3608b8f28cfa2401ca6b0

See more details on using hashes here.

File details

Details for the file SwampDragon_live-0.0.7a0-py2-none-any.whl.

File metadata

File hashes

Hashes for SwampDragon_live-0.0.7a0-py2-none-any.whl
Algorithm Hash digest
SHA256 7c13f2139bcd86f8a779855d77786a41fb66490af72e6311ec38b09ff0416e33
MD5 f07d0ca80218c52e0f2ea11dbfc1a71a
BLAKE2b-256 9abd747d8139909ee69008549fe9cf0d6ba5d7450cb6ed07309eb9bcb327737b

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