Places
The debusine.web.views.places.Place class represents metadata about
a view in the Debusine web interface. It contains its URL, and information and
methods needed to refer to the view as a web link, a breadcrumb, a button, an
item in the navbar, and so on.
Place instances are normally created by debusine.web.views.ui.UI
instances, and cached in the Django request.
Places can define parent places to form a navigational hierarchy, to be rendered in the UI as breadcrumbs.
All debusine.web.views.places.Place instances have as members:
title: text to use as user-visile content (page headers, button labels, link text, breadcrumbs, and so on)description(optional): description suitable for tooltipsurl: URL to the viewicon(optional): Bootstrap 5 icon name to use where appropriateparent(optional): Parent place in the breadcrumbs hierarchycurrent: True if the place corresponds to the current view other page content
Place subclasses can define more members as needed for the use cases they need to support.
Place values
Since place metadata is going to be rendered in various different UI
components, it is possible to provide variant values for its text,
description, and icon elements.
Variant values are tracked by PlaceValue elements, which can be
passed instead of strings to Place constructors.
Place widget methods
The Place class defines various as_* methods that can be rendered using
the {% widget %} template tag. This allows passing extra arguments from
templates, like selecting a specific variant for its values, or explicitly
passing labels or class attributes.
Place types
SitePlace
debusine.web.views.places.SitePlace represents a view that is not
about a Debusine resource, like the site homepage, about page, task status, and
so on.
It is the kind of Place that is generated automatically for views that do not provide full place metadata.
ResourcePlace
debusine.web.views.places.ResourcePlace represents a view about a
Debusine resource (see Resources).
It defines this extra member:
ui: UI helper for the resource instance
ResourceMainPlace
debusine.web.views.places.ResourceMainPlace represents the main
view for showing a Debusine resource (see Resources).
ResourceSubPlace
debusine.web.views.places.ResourceSubPlace represents a view that
shows or controls an aspect of a Debusine resource (see
Resources).
ResourceSettingsPlace
debusine.web.views.places.ResourceSettingsPlace represents a view
that is part of the settings menu for a Debusine resource.