Skip to content

result

django_spire.core.search.result

SearchResult dataclass

name instance-attribute

icon = None class-attribute instance-attribute

label = '' class-attribute instance-attribute

description = None class-attribute instance-attribute

url = '' class-attribute instance-attribute

action = SearchCommand.Action.OPEN_URL_CURRENT_TAB class-attribute instance-attribute

Source code in django_spire/core/search/result.py
@classmethod
def from_search(cls, search: Search, obj: models.Model) -> SearchResult:
    url = search.generate_detail_url(obj)

    if url is None:
        message = f'{search.__class__.__name__} does not have a detail url for search results.'
        raise ValueError(message)

    return cls(
        name=search.section_name,
        icon=search.icon,
        label=search.result_name(obj),
        description=search.result_description(obj),
        url=url,
    )

from_command classmethod

Source code in django_spire/core/search/result.py
@classmethod
def from_command(cls, search: Search, command: SearchCommand) -> SearchResult:
    return cls(
        name=search.section_name,
        icon=command.icon,
        label=command.name,
        description=command.description,
        url=command.url,
        action=command.action,
    )

from_list classmethod

Source code in django_spire/core/search/result.py
@classmethod
def from_list(cls, search: Search, url: str) -> SearchResult:
    return cls(
        name=search.section_name,
        icon='bi-list-columns',
        label=search.section_name,
        description='List Page',
        url=url,
    )

generate_tag_attributes

Source code in django_spire/core/search/result.py
def generate_tag_attributes(self) -> str:
    if self.action == SearchCommand.Action.OPEN_URL_CURRENT_TAB:
        return f'href="{self.url}"'
    elif self.action == SearchCommand.Action.OPEN_URL_NEW_TAB:
        return f'href="{self.url}" target="_blank"'
    elif self.action == SearchCommand.Action.DISPATCH_MODAL:
        return f'href="#" @click="Spire.modal.dispatchView(\'{self.url}\')"'
    else:
        return f'href="{self.url}"'