Flesh out support for license line items.

Review Request #14510 — Created July 16, 2025 and submitted

Information

Review Board
release-7.1.x

Reviewers

Line items in licenses provide additional information about a license,
which previously was limited to text strings with no icon when attached
to a license. Only RB.LicenseView subclasses could add more detailed
line items, and this required carefully formatting the HTML structure
for the row.

This change fleshes out the line items to make them more generally
useful. Now, LicenseInfo.line_items is a list of structured data that
contains content, an optional icon, and a flag indicating if the content
is HTML.

RB.LicenseView takes this and formats each line item as a detail row,
taking into account the icon and whether to show HTML.

License Providers are responsible for returning the line items for a
given LicenseInfo. By default, this returns the line items attached to
the license, but just like actions, they can customize this based on
other state (such as other licenses exposed by the provider).

Unit tests passed.

Used this to provide custom line items with HTML and icons in
Power Pack.

Summary ID
Flesh out support for license line items.
Line items in licenses provide additional information about a license, which previously was limited to text strings with no icon when attached to a license. Only `RB.LicenseView` subclasses could add more detailed line items, and this required carefully formatting the HTML structure for the row. This change fleshes out the line items to make them more generally useful. Now, `LicenseInfo.line_items` is a list of structured data that contains content, an optional icon, and a flag indicating if the content is HTML. `RB.LicenseView` takes this and formats each line item as a detail row, taking into account the icon and whether to show HTML. License Providers are responsible for returning the line items for a given `LicenseInfo`. By default, this returns the line items attached to the license, but just like actions, they can customize this based on other state (such as other licenses exposed by the provider).
650ffdb91866fd44f72b382f0999e88d0052c413

Description From Last Updated

'django.utils.safestring.SafeString' imported but unused Column: 5 Error code: F401

reviewbotreviewbot
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

chipx86
maubin
  1. Ship It!
  2. 
      
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-7.1.x (36655d5)