mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-25 18:44:23 +00:00
Add documentation for htmx
This commit is contained in:
parent
3af5d96bf5
commit
ec7d45fd91
@ -327,6 +327,8 @@ class DetailFormView(SingleObjectMixin, FormView):
|
|||||||
|
|
||||||
|
|
||||||
class AllowFragment:
|
class AllowFragment:
|
||||||
|
"""Add `is_fragment` to templates. It's only True if the request is emitted by htmx"""
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
kwargs["is_fragment"] = self.request.headers.get("HX-Request", False)
|
kwargs["is_fragment"] = self.request.headers.get("HX-Request", False)
|
||||||
return super().get_context_data(**kwargs)
|
return super().get_context_data(**kwargs)
|
||||||
|
@ -200,6 +200,19 @@ Grâce à son architecture, il est extrêmement
|
|||||||
bien adapté pour un usage dans un site multipage.
|
bien adapté pour un usage dans un site multipage.
|
||||||
C'est une technologie simple et puissante qui se veut comme le jQuery du web moderne.
|
C'est une technologie simple et puissante qui se veut comme le jQuery du web moderne.
|
||||||
|
|
||||||
|
### Htmx
|
||||||
|
|
||||||
|
[Site officiel](https://htmx.org/)
|
||||||
|
|
||||||
|
En plus de AlpineJS, l’interactivité sur le site est augmenté via Htmx.
|
||||||
|
C'est une librairie js qui s'utilise également au moyen d'attributs HTML à
|
||||||
|
ajouter directement dans les templates.
|
||||||
|
|
||||||
|
Son principe est de remplacer certains éléments du html par un fragment de
|
||||||
|
HTML renvoyé par le serveur backend. Cela se mari très bien avec le
|
||||||
|
fonctionnement de django et en particulier de ses formulaires afin d'éviter
|
||||||
|
de doubler le travail pour la vérification des données.
|
||||||
|
|
||||||
### Sass
|
### Sass
|
||||||
|
|
||||||
[Site officiel](https://sass-lang.com/)
|
[Site officiel](https://sass-lang.com/)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
::: stock.models
|
|
@ -1 +0,0 @@
|
|||||||
::: stock.views
|
|
12
docs/tutorial/fragments.md
Normal file
12
docs/tutorial/fragments.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Pour utiliser HTMX, on a besoin de renvoyer des fragments depuis le backend.
|
||||||
|
Le truc, c'est que tout est optimisé pour utiliser `base.jinja` qui est assez gros.
|
||||||
|
|
||||||
|
Dans beaucoup de scénario, on veut pouvoir renvoyer soit la vue complète, soit
|
||||||
|
juste le fragment. En particulier quand on utilise l'attribut `hx-history` de htmx.
|
||||||
|
|
||||||
|
Pour remédier à cela, il existe le mixin [AllowFragment][core.views.AllowFragment].
|
||||||
|
|
||||||
|
Une fois ajouté à une vue Django, il ajoute le boolean `is_fragment` dans les
|
||||||
|
templates jinja. Sa valeur est `True` uniquement si HTMX envoi la requette.
|
||||||
|
Il est ensuite très simple de faire un if/else pour hériter de
|
||||||
|
`core/base_fragment.jinja` au lieu de `core/base.jinja` dans cette situation.
|
@ -66,6 +66,7 @@ nav:
|
|||||||
- Structure du projet: tutorial/structure.md
|
- Structure du projet: tutorial/structure.md
|
||||||
- Gestion des permissions: tutorial/perms.md
|
- Gestion des permissions: tutorial/perms.md
|
||||||
- Gestion des groupes: tutorial/groups.md
|
- Gestion des groupes: tutorial/groups.md
|
||||||
|
- Créer des fragments: tutorial/fragments.md
|
||||||
- Etransactions: tutorial/etransaction.md
|
- Etransactions: tutorial/etransaction.md
|
||||||
- How-to:
|
- How-to:
|
||||||
- L'ORM de Django: howto/querysets.md
|
- L'ORM de Django: howto/querysets.md
|
||||||
|
Loading…
Reference in New Issue
Block a user