ViewHistoryList
Overview
Paginated list view showing the history of one model instance as the actions that produced it. Each action groups the events it wrote, and each event lists its field changes with old and new values, in a table or card layout.
Theme entry: ViewHistoryList
Props
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| iconOverride | Object | null | A partial icon registry ({ [componentName]: { [iconName]: { component, props } } }) merged with inherited and default icon entries; scopes icon overrides to this component and its descendants. | |
| themeOverride | String|Object|Array | null | A partial theme object merged with the component's default theme; accepts a class string, class array, or theme object. | |
| app | string | yes | Django app label that owns the model. | |
| model | string | yes | Django model name used to resolve API endpoints and configuration. | |
| pk | string | yes | Primary key of the instance whose history is displayed. | |
| tableBreakpoint | string | "lg" | Tailwind breakpoint at which the layout switches from card to table view. | |
| hideMetaStrip | boolean | false | When true, hides the meta strip + layout toggle row above the grid. | |
| fields | array | ["recorded_at", "actor", "kind", "label", "model", "type", "field", "old", "new"] | Ordered list of column names to display. The history response defines the set: recorded_at, actor, kind, label, model, relation, type, field, old, and new. field is a table-only column; the card layout stacks each event's changes inside old and new. | |
| pageSizeOptions | array | [...DEFAULT_PAGE_SIZE_OPTIONS] | Rows-per-page options offered by the pagination footer; the final "all" entry loads every history page at once. | |
| defaultPageSize | number|string | DEFAULT_PAGE_SIZE | Initial rows-per-page (a number, or "all"). | |
| showTotalRecordNum | boolean | true | When true, displays the total number of actions in the pagination bar. |
Slots
| Name | Scoped | Description |
|---|---|---|
meta | yes | |
rows-per-page | yes | |
before-list | ||
empty | empty Replaces the dedicated history empty-state body. Receives no slot props. | |
meta-strip | yes | meta-strip Replaces the meta filter + layout-toggle strip above the grid. Receives { isTable, layoutOverride, setLayoutOverride } so consumer overrides can drive the layout state. |
meta-filters | meta-filters Renders the filter chip row inside the meta strip. Empty by default; bind from consumer state. Receives no slot props. | |
field(recorded_at) | yes | |
field(actor) | yes | |
field(kind) | yes | |
field(model) | yes | |
field(type) | yes | |
`field(${side})` | yes |
Source
client/lib/views/ViewHistoryList.vue