Skip to content

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

  1. 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 -