Metadata-Version: 2.1
Name: django-includes
Version: 1.0.0
Summary: 
Author: Romain Dorgueil
Author-email: romain@makersquad.fr
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: django (>=4.2,<5.1)
Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
Requires-Dist: pyjwt (>2,<3)
Requires-Dist: pytz (>=2024.1)
Requires-Dist: requests (>=2.31,<3)
Description-Content-Type: text/x-rst

django-includes
===============

Experimental software. There is no tests, no documentation, use it are your own risks (or don't).

Currently testing that with django 2 and python 3.5+ only, which will be the only supported target.

Install
:::::::

* Add 'django_includes' to INSTALLED_APPS.
* Add DjangoIncludesExtension to Jinja2 environment.

.. code-block:: python

    from django_includes.jinja2 import DjangoIncludesExtension

    def environment(**options):
        env = Environment(**options)

        # your logic here

        env.add_extension(DjangoIncludesExtension)

        return env

* Use `{{ render_sync(request, 'mused.views.MusicGroupListView', musicgenre=object) }}` in templates.

Now, that's only the "synchronous render",

Install hinclude
::::::::::::::::

If you wanna use hinclude (a simple javascript that loads asynchronously some part of your page):

Add hinclude url to your project:

.. code-block:: python

    from django_includes.views import include_view

    urlpatterns += [
        path('hinclude/<token>', include_view, kwargs={'via': 'hinclude'}, name='hinclude')
    ]

Add hinclude to your layout

.. code-block:: html

    <html lang="en" xmlns:hx="http://purl.org/NET/hinclude">
    <head>
        <script src="{{ static('hinclude.js') }}"></script>

* Use `{{ render_hinclude(request, 'mused.views.MusicGroupListView', musicgenre=object) }}` in templates.

Note that this will use json web tokens to encode the parameters, using your django secret as a "seed" for encryption.
