Commit graph

60 commits

Author SHA1 Message Date
pre-commit-ci[bot]
0648ad9a93 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2021-09-10 11:12:26 +00:00
Emil Stenström
a2f0e2246b Require get_context_data set to accept parameters. 2021-09-10 12:29:47 +02:00
Emil Stenström
fa3731422f Variables are never used in the tests. Remove them. 2021-09-10 11:46:09 +02:00
Real-Gecko
5fcabaa5ba Renamed get_context to get_context_data 2021-09-10 11:27:55 +02:00
Emil Stenström
5b9188cc9c Refactored Component class
# Conflicts:
#	README.md
#	pyproject.toml
2021-09-10 11:27:28 +02:00
rbeard0330
e3c9ac76ce
Fix infinite recursion bug (fixes #68) (#74)
* Add regression test for recursion bug, #68

* Only allow slots to access slot nodelists provided to their immediate parent component to prevent infinite recursions.

* Fix import ordering bug in test

* Add slot.super to docs

Remove unused imports

* Bump version

Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-07-06 11:56:49 -04:00
Emil Stenström
a5bd0cf2e3
Rework slot management to avoid nodelist copying (fixes #64)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-05-30 18:46:11 +02:00
rbeard0330
070b754d24 Improve slot handling to allow nested components, conditional slots, and slot.super (Fixes #33, #34, #37)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-05-26 00:59:46 +02:00
Emil Stenström
57a5aa0f4b
Only render dependencies that are used of a specific page (#52)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-03-24 22:47:48 +01:00
Emil Stenström
cc8db8056e Remove support for < Django 2.2. 2021-03-24 22:39:14 +01:00
Emil Stenström
97777d3318 Use simplified style to define Media. 2021-03-10 22:42:35 +01:00
Emil Stenström
b8f14404ac Allow simpler definition of Media class. 2021-03-10 22:36:42 +01:00
Emil Stenström
c0c5a94908 Rename duplicate ComponentRegistryTest.
Also move registry test to registry.
2021-03-10 12:25:28 +01:00
Emil Stenström
b9446c2818
Add support for calling register as a decorator (#38) 2021-02-27 16:38:16 +01:00
Dan Jacob
10a117ee88 Class decorator and test 2021-02-27 16:49:06 +02:00
Emil Stenström
d48502c40b Add test for calling component with positional name. 2021-02-20 23:58:00 +01:00
Emil Stenström
475bc8720f Add tests for components with dynamic template. 2021-02-20 10:04:10 +01:00
Emil Stenström
26f39c73f3 This is a difference between Django 3.0 and 3.1. 2021-02-15 21:22:07 +01:00
Emil Stenström
f188fab540 Remove unnessesary setup call. 2021-02-15 21:20:57 +01:00
Emil Stenström
07986c5216
Caching templates to allow for dynamic template generation
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-02-15 21:07:14 +01:00
rbeard0330
87f9994c81
Performance (+50%): Compile ComponentNode at creation, not render (#22)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-02-06 10:09:57 +01:00
rbeard0330
1ea86fc50d
Create cloned template for rendering so test instrumentation works.
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-01-31 23:18:04 +01:00
rbeard0330
2633c3f08f
Pass context into component tags by default, and let components disable with "only" (#20)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2021-01-25 12:31:54 +01:00
rbeard0330
979dc82eda
Fix bug where template with multiple component_block tags could raise KeyError (#19)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2020-12-30 08:01:57 +01:00
rbeard0330
93b8a7404a
Rework of context handling (#18)
Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2020-12-28 10:40:35 +01:00
rbeard0330
be0a75e2a3
Missing context variables and kwargs in component_block (#17)
* Fix issue with missing variables by binding template to context in Component.render method.
* Pass extra_context to Component.render()

Co-authored-by: rbeard0330 <@dul2k3BKW6m>
2020-12-14 18:25:36 +01:00
Emil Stenström
4c14675c3a Support specifying block names with single quotes.
Fixes #15
2020-12-08 23:41:10 +01:00
Emil Stenström
e9fba9538f Add trick to make tests pass on Django 1.11 too. 2020-12-08 23:33:36 +01:00
Emil Stenström
ec7b10f4db Django 3.1 no longer outputs type="text/javascript". 2020-11-10 21:54:15 +01:00
Bradley Stuart Kirton
2c644d4c06 Add pytest-cov
Apply black formatting
Add component_css_dependencies_tag and component_js_dependencies_tag tags
Add convenience methods render_css_dependencies and render_js_dependencies to component class
Create additional test cases
Add license to setup.py
Add pytest.ini config file
2020-07-10 13:07:51 +02:00
Emil Stenström
5f63a6a6bd Add test for component with undefined template method. 2020-06-07 17:07:24 +02:00
Emil Stenström
b2f61b61ad Fix flake8. 2020-06-07 08:45:54 +02:00
Emil Stenström
d1405dda13 Add slots to components that can be filled when using component. 2020-06-06 09:11:27 +02:00
Emil Stenström
b2726a6832 Contain all registry logic in helper methods. 2020-06-06 09:07:23 +02:00
Emil Stenström
9d48a8e93f Add test for passing two variables to template tag. 2019-11-24 11:17:17 +01:00
Emil Stenström
701e1e3ac2 Add test for more complex template that uses built-in django filter. 2019-11-24 11:10:14 +01:00
Emil Stenström
d91f014b4b Move test components into test cases. 2019-11-24 11:09:40 +01:00
Emil Stenström
40ebd6b936 Install isort and fix all imports. 2019-11-24 11:09:14 +01:00
Emil Stenström
f60b443f07 Add test for calling the component template tag with positional arg. 2019-11-24 10:55:57 +01:00
Emil Stenström
aa4a3092c8 Make test suite ignore insignificant differences in HTML and whitespace. 2019-11-24 10:55:30 +01:00
Emil Stenström
6949dc286f Add tests for defining multiple css and js files. 2019-11-24 10:33:14 +01:00
Emil Stenström
096057b33d Use built-in django form assets instead of custom logic. 2019-11-24 10:31:23 +01:00
Emil Stenström
ebb180c540 Use list instead of tuple to avoid errors with missing comma. 2019-11-23 19:26:16 +01:00
Emil Stenström
17eb54e18a Change test setup to make test run on Django 1.7. 2015-06-22 22:37:07 +02:00
Emil Stenström
7bc1096e94 Registering the same component twice only renders one dependency <link> and <script> tag. 2015-06-19 19:30:20 +02:00
Emil Stenström
9a91df7978 Add component tag. 2015-06-14 14:43:57 +02:00
Emil Stenström
57286f8389 Clear global component.registry before each test. 2015-06-14 14:43:43 +02:00
Emil Stenström
a2e829f8af Use single quotes for all templates, we might need double quotes inside later. 2015-06-14 14:43:11 +02:00
Emil Stenström
5cfd5d2ec7 Use simpler component name. 2015-06-14 14:42:34 +02:00
Emil Stenström
005460543b Make variable required. 2015-06-14 14:42:01 +02:00