ColumnHeaderIcon¶
ColumnHeaderIcon
¶
djadmin.dataclasses.ColumnHeaderIcon
Icon/button configuration for column headers in list views.
Column header icons allow plugins to add interactive elements to table column headers (e.g., sort indicators, help text, filters). This provides a flexible extension point for any plugin to enhance column headers without template changes.
Class Attributes
| Attribute | Type | Description |
|---|---|---|
icon_template |
- | Path to SVG icon template to render, or callable that returns path. |
url |
- | Optional URL to link to (if None, renders as span instead of link). Can be callable. |
title |
- | Tooltip text for the icon. Can be callable. |
css_class |
- | Additional CSS classes for the icon wrapper. |
order |
- | Sort order for icons (lower numbers appear first). Default: 10. |
condition |
- | Optional callable that receives (column, view, request) and returns True if the icon should be shown. Default: always show. |
identifier |
- | Optional unique identifier for this icon (for debugging/overriding). |
Examples
Sort indicator with URL¶
ColumnHeaderIcon( icon_template='djadmin/icons/sort-up.html', url='?ordering=name', title='Sort by name (ascending)', order=10, )
Dynamic icon based on state¶
ColumnHeaderIcon( icon_template=lambda col, view, req: ( 'djadmin/icons/sort-up.html' if req.GET.get('ordering') == col.field_name else 'djadmin/icons/sort.html' ), url=lambda col, view, req: f'?ordering={col.field_name}', title='Sort by this column', order=10, )
Help text icon¶
ColumnHeaderIcon( icon_template='djadmin/icons/question.html', title='Click for help', css_class='help-icon', order=20, )
Conditional icon (only for certain columns)¶
ColumnHeaderIcon( icon_template='djadmin/icons/filter.html', url='#filter-sidebar', condition=lambda column, view, request: column.filter is not None, order=5, )
Method Resolution Order
djadmin.dataclasses.ColumnHeaderIcon
Attributes
| Attribute | Value | Defined in |
|---|---|---|
__annotations__ |
{'icon_template': 'str | Callable[[Column, Any], str]', '... |
djadmin.dataclasses.ColumnHeaderIcon
|
__dataclass_fields__ |
{'icon_template': Field(name='icon_template',type='str | ... |
djadmin.dataclasses.ColumnHeaderIcon
|
__dataclass_params__ |
_DataclassParams(init=True,repr=True,eq=True,order=False,... |
djadmin.dataclasses.ColumnHeaderIcon
|
__hash__ |
None |
djadmin.dataclasses.ColumnHeaderIcon
|
__match_args__ |
('icon_template', 'url', 'title', 'css_class', 'order', '... |
djadmin.dataclasses.ColumnHeaderIcon
|
condition |
None |
djadmin.dataclasses.ColumnHeaderIcon
|
css_class |
|
djadmin.dataclasses.ColumnHeaderIcon
|
identifier |
None |
djadmin.dataclasses.ColumnHeaderIcon
|
order |
10 |
djadmin.dataclasses.ColumnHeaderIcon
|
title |
|
djadmin.dataclasses.ColumnHeaderIcon
|
url |
None |
djadmin.dataclasses.ColumnHeaderIcon
|
Methods
__eq__(self, other)
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Return self==value.
__init__(self, icon_template: 'str | Callable[[Column, Any], str]', url: 'str | Callable[[Column, Any], str] | None' = None, title: 'str | Callable[[Column, Any], str]' = '', css_class: 'str' = '', order: 'int' = 10, condition: 'Callable[[Column, Any], bool] | None' = None, identifier: 'str | None' = None) -> None
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Initialize self. See help(type(self)) for accurate signature.
__repr__(self)
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Source code
in repr.py
line 49
def __repr__(self):
return _generate_repr(self)
get_icon_template(self, column: 'Column', request) -> 'str'
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Get the icon template path (resolves callable if needed).
Args: column: The Column instance request: The HTTP request
Returns: str: Path to the icon template
Source code
in dataclasses.py
line 374
def get_icon_template(self, column: Column, request) -> str:
"""
Get the icon template path (resolves callable if needed).
Args:
column: The Column instance
request: The HTTP request
Returns:
str: Path to the icon template
"""
if callable(self.icon_template):
return self.icon_template(column, request)
return self.icon_template
get_title(self, column: 'Column', request) -> 'str'
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Get the title text (resolves callable if needed).
Args: column: The Column instance request: The HTTP request
Returns: str: The title/tooltip text
Source code
in dataclasses.py
line 404
def get_title(self, column: Column, request) -> str:
"""
Get the title text (resolves callable if needed).
Args:
column: The Column instance
request: The HTTP request
Returns:
str: The title/tooltip text
"""
if callable(self.title):
return self.title(column, request)
return self.title
get_url(self, column: 'Column', request) -> 'str | None'
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Get the URL for this icon (resolves callable if needed).
Args: column: The Column instance request: The HTTP request
Returns: str | None: The URL to link to, or None
Source code
in dataclasses.py
line 389
def get_url(self, column: Column, request) -> str | None:
"""
Get the URL for this icon (resolves callable if needed).
Args:
column: The Column instance
request: The HTTP request
Returns:
str | None: The URL to link to, or None
"""
if callable(self.url):
return self.url(column, request)
return self.url
should_display(self, column: 'Column', request) -> 'bool'
Defined in:
<class 'djadmin.dataclasses.ColumnHeaderIcon'>
Check if this icon should be displayed for the given column.
Args: column: The Column instance request: The HTTP request
Returns: bool: True if the icon should be displayed
Source code
in dataclasses.py
line 359
def should_display(self, column: Column, request) -> bool:
"""
Check if this icon should be displayed for the given column.
Args:
column: The Column instance
request: The HTTP request
Returns:
bool: True if the icon should be displayed
"""
if self.condition is None:
return True
return self.condition(column, request)
Fields
| Field | Type | Related To |
|---|---|---|
__dict__ |
getset_descriptor |
- |
__weakref__ |
getset_descriptor |
- |