Skip to content

Commit 448a4c5

Browse files
committed
Allow MainMenu assets__foo__include=False style config
1 parent 6f37a9f commit 448a4c5

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

iommi/main_menu.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
evaluate_strict,
3535
)
3636
from iommi.path import decode_path_components
37+
from iommi.refinable import RefinableNamespace
3738
from iommi.struct import Struct
3839
from iommi.style import resolve_style
3940

@@ -89,7 +90,7 @@ def urlpatterns(self):
8990

9091
def bind(self, request):
9192
style = resolve_style(None)
92-
conf = Namespace(*style.resolve(self))
93+
conf = RefinableNamespace(*style.resolve(self))
9394

9495
template = conf.pop('template', 'iommi/main_menu/menu.html')
9596
if self.template is MISSING:
@@ -98,9 +99,10 @@ def bind(self, request):
9899
assets = {
99100
k: v.bind(request=request)
100101
for k, v in conf.pop('assets', {}).items()
102+
if v
101103
}
102104

103-
attrs = Namespace(self.attrs, conf.pop('attrs', {}))
105+
attrs = RefinableNamespace(self.attrs, conf.pop('attrs', {}))
104106

105107
assert not conf, f'Unknown configuration {conf} for `MainMenu`'
106108

iommi/style.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
from iommi.declarative.dispatch import dispatch
1818
from iommi.declarative.namespace import (
1919
EMPTY,
20-
Namespace,
2120
)
22-
from iommi.refinable import RefinableObject
21+
from iommi.refinable import (
22+
RefinableNamespace,
23+
RefinableObject,
24+
)
2325
from iommi.shortcut import get_shortcuts_by_name
2426

2527
DEFAULT_STYLE = 'bootstrap5'
@@ -45,7 +47,7 @@ def class_names_for(cls):
4547

4648
def recursive_namespace(d):
4749
if isinstance(d, dict):
48-
return Namespace({k: recursive_namespace(v) for k, v in items(d)})
50+
return RefinableNamespace({k: recursive_namespace(v) for k, v in items(d)})
4951
else:
5052
return d
5153

@@ -83,8 +85,8 @@ def __init__(
8385
self.icon_formatter = base.icon_formatter
8486
break
8587

86-
self.root = {k: v for k, v in items(Namespace(*(base.root for base in bases), root)) if v is not None}
87-
self.config = Namespace(*[x.config for x in bases], recursive_namespace(kwargs))
88+
self.root = {k: v for k, v in items(RefinableNamespace(*(base.root for base in bases), root)) if v is not None}
89+
self.config = RefinableNamespace(*[x.config for x in bases], recursive_namespace(kwargs))
8890

8991
for k, v in items(self.config):
9092
if k[0].islower():

0 commit comments

Comments
 (0)