Introduce {% fill %} replacing 'fill' func of 'slot' tag

Partial implementation fill-tags plus update tests

Implement {% fill %} tags. Next: update tests.

Bring back support for {%slot%} blocks for bckwrd-compat and implement ambig. resolution policy

Update tests to use fill blocks. Add extra checks that raise errors

Add new tests for fill-slot nesting

Update README. Editing still required

remove unused var ctxt after flake8 complaint

fix flake8 warning about slotless f-string

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Add new slot aliases in fill context. Clean up rendering logic in Component. Update docs.

fix flake8, isort, black errors

Refactor duplicated name validation

Add if_filled tag + elif_filled...else_filled...endif_filled for cond. slots

Fix mistake in do_if_filled() docstring

Upload templates for tests! D'oh

Incorporate PR feedback

Drop Literal type hint; Use isort off-on instead of skip in tests

Treat all fill,slot,if_filled,component names as variables

Reset sampleproject components

Add test for variable filled name

Update examples in docs
This commit is contained in:
lemontheme 2023-01-11 15:53:18 +01:00 committed by Emil Stenström
parent 714fc9edb0
commit a8dfcce24e
20 changed files with 1090 additions and 307 deletions

View file

@ -1,7 +1,7 @@
import glob
import importlib
import importlib.util
import sys
from importlib import import_module
from pathlib import Path
import django
@ -15,7 +15,7 @@ if django.VERSION < (3, 2):
def autodiscover():
from . import app_settings
from django_components.app_settings import app_settings
if app_settings.AUTODISCOVER:
# Autodetect a components.py file in each app directory
@ -30,7 +30,7 @@ def autodiscover():
import_file(path)
for path in app_settings.LIBRARIES:
import_module(path)
importlib.import_module(path)
def import_file(path):