Skip to content

breadcrumb

django_spire.contrib.breadcrumb

__all__ = ['Breadcrumbs'] module-attribute

Breadcrumbs

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __init__(self, branch_slug: str | None = None):
    self.data: list[BreadcrumbItem] = []
    self.index: int = 0

data = [] instance-attribute

index = 0 instance-attribute

__add__

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __add__(self, other):
    self.data += other.data
    return self

__iter__

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __iter__(self):
    self.index = 0
    return self

__str__

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __str__(self) -> str:
    return str(self.data)

__len__

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __len__(self) -> int:
    return len(self.data)

__next__

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def __next__(self) -> BreadcrumbDict:
    if self.index >= len(self.data):
        raise StopIteration

    breadcrumb_item = self.data[self.index]
    self.index += 1
    return breadcrumb_item.to_dict()

add_base_breadcrumb

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def add_base_breadcrumb(self, model) -> None:
    if hasattr(model, 'base_breadcrumb'):
        self += model.base_breadcrumb()

add_breadcrumb

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def add_breadcrumb(self, name: str, href: str | None = None) -> None:
    breadcrumb_item = BreadcrumbItem(name=name, href=href)
    self.data.append(breadcrumb_item)

add_obj_breadcrumbs

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def add_obj_breadcrumbs(self, obj) -> None:
    # Expects a breadcrumb object to be returned from the object
    if hasattr(obj, 'breadcrumbs'):
        object_breadcrumbs = obj.breadcrumbs()
        self.data += object_breadcrumbs.data

add_form_breadcrumbs

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def add_form_breadcrumbs(self, obj) -> None:
    self.add_obj_breadcrumbs(obj)

    if obj.pk is None:
        self.add_breadcrumb(name=obj._meta.model._meta.verbose_name)
        self.add_breadcrumb(name='Create')
    else:
        self.add_breadcrumb(name='Edit')

remove

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def remove(self, index: int):
    del self.data[index]
    return self

reverse

Source code in django_spire/contrib/breadcrumb/breadcrumbs.py
def reverse(self):
    self.data.reverse()
    return self