Skip to content

The suggestions listing

Every AI disclosure suggestion, in every status, lives under Reports, at /admin/reports/ai-disclosure-suggestions, behind its own access ai disclosure suggestions permission: restricted, because a row can carry a note a third-party module wrote, which the compliance report never shows.

The suggestions listing with rows

Suggestions are not created on this page, and no page creates them. The module ships no interface for writing one by hand: a suggestion exists because another module called the recorder API (the ai_disclosure.recorder service, documented in ai_disclosure.api.php), naming the entity, the grade it proposes and itself as the source. The only human action on a suggestion is deciding it, from the callout on the content's own form. If the table is empty and it should not be, check that the integrating module is actually calling it, and that the exposed filters below are not excluding what it wrote.

The suggestions listing with no rows to show

Columns and filters

Each row shows the entity type the suggestion is about, its language, the suggested grade, the source module that recorded it, the status (pending, accepted or dismissed), the note, the user recorded against it, and when it last changed. The exposed filters are status, grade and source. There is no default filter on status: accepted and dismissed rows have no other reading surface in the module, and hiding them by default would defeat the point of the page.

The "Entity" column shows the entity's label, linked to it: not a relationship, since a relationship joins to one entity type's table, and a suggestion can be about any fieldable entity type a site has. It checks access before showing anything: a user who cannot view the entity sees its raw entity ID instead of the label, the same as a suggestion pointing at an entity that has since been deleted. The entity ID itself is still available as a views field for a site that wants it in a view of its own. It is only absent from this shipped view.

The permission

access ai disclosure suggestions gates this table on its own, separately from access ai disclosure report: holding the report permission does not grant access here, and holding this one does not grant access to the report. A view built on the same ai_disclosure_suggestion table (this one, or a site's own) is gated the same way regardless of which permission the view itself is configured to require, because the note a row carries is not something the report's permission was ever meant to expose.

Uninstalling the module removes these views

Uninstalling AI Disclosure drops the ai_disclosure_suggestion table, so nothing that reads it can survive. The module deletes this listing itself, and Drupal removes any view a site built on that table, and any view on another base table that merely uses the relationship toward suggestions.

The second case is worth knowing before you build: a content view that adds the "AI disclosure suggestions" relationship is deleted with the module, not stripped of that one handler. It is Drupal's own behavior for a relationship whose provider is being removed, not a choice this module makes. Export a view you care about before uninstalling.