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 tooltips

  • url: URL to the view

  • icon (optional): Bootstrap 5 icon name to use where appropriate

  • parent (optional): Parent place in the breadcrumbs hierarchy

  • current: 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.