Request-Driven List Extensions

This note audits every remaining web list-like page that is scheduled for the request-driven rollout in Epics 9 to 12. It records which shared primitives already fit, which pages need additional support, and which gaps are intentionally deferred until the actual page migration.

Shared Primitive Baseline

Epic 8 closes only the gaps that repeat across future cohorts:

Page Audit

Page Filters Sortable columns Parent scope Primitives reused Gap
Tag q only internal_name, description, timestamps None IndexListRequest, ListState, search form, sort link, pagination None. Existing primitives already fit.
Author q only internal_name, timestamps None Same flat-list baseline as Partner None. Existing primitives already fit.
Project q only internal_name, timestamps None Same flat-list baseline as Partner None. Existing primitives already fit.
Context q, optional is_default in later follow-up if desired internal_name, timestamps None Same flat-list baseline as Partner No Epic 8 gap. Any is_default filter is page-specific and can be declared directly in the future list definition.
Country q across id and internal_name id, internal_name, timestamps None Flat-list baseline Needs declarative multi-column search and reusable code-column rendering.
Language q across id and internal_name, optional default-state filter later id, internal_name, timestamps None Flat-list baseline Needs declarative multi-column search and reusable code-column rendering.
Glossary q across internal_name and description internal_name, description, timestamps None Flat-list baseline None. Existing primitives already fit.
User admin Admin request object, search, role/status filters Name, email, timestamps None ListState, sort links, pagination Deferred. Admin screens already use custom requests and are outside Epics 9 to 12. No Epic 8 infrastructure change required.
Role admin Admin request object, permission filters Name, timestamps None ListState, sort links, pagination Deferred. Same rationale as user admin.
ItemTranslation q, language_id, context_id, mandatory item_id name, updated_at, future language.internal_name, context.internal_name Item IndexListRequest, ListState, shared search and pagination Needs required scope-filter support, future related-column sort helpers, and parent-context header.
PartnerTranslation q, language_id, context_id, mandatory partner_id name, updated_at, future language.internal_name, context.internal_name Partner Same as ItemTranslation Needs required scope-filter support, future related-column sort helpers, and parent-context header.
CollectionTranslation q, language_id, context_id, mandatory collection_id name, updated_at, future language.internal_name, context.internal_name Collection Same as ItemTranslation Needs required scope-filter support, future related-column sort helpers, and parent-context header.
ItemItemLink q, mandatory item_id created_at, updated_at, optional target label Item IndexListRequest, ListState, pagination Needs required scope-filter support and parent-context header. Related target sorting is deferred until the page migration if it proves necessary.
AvailableImage q on comment or filename, optional future image-state filters created_at, updated_at None Flat-list baseline No Epic 8 gap. Search columns can be declared directly by the future list definition.
GlossarySpelling Minimal or no filters, mandatory glossary_id Language or created timestamp if later added Glossary ListState, pagination, future parent header Needs parent-context header and required scope-filter support if migrated into a request-driven index.
GlossaryTranslation Minimal or no filters, mandatory glossary_id Language or created timestamp if later added Glossary ListState, pagination, future parent header Needs parent-context header and required scope-filter support if migrated into a request-driven index.
ItemImage gallery Minimal filters, mandatory item_id Display order, created timestamp Item ListState, pagination, future parent header Needs parent-context header. Gallery-specific drag/drop or media presentation is deferred to Epic 12.
PartnerImage gallery Minimal filters, mandatory partner_id Display order, created timestamp Partner Same as ItemImage gallery Needs parent-context header.
PartnerTranslationImage gallery Minimal filters, mandatory partner_translation_id Display order, created timestamp Partner translation Same as ItemImage gallery Needs parent-context header.
CollectionImage gallery Minimal filters, mandatory collection_id Display order, created timestamp Collection Same as ItemImage gallery Needs parent-context header.

Gap Summary

Covered by Story 8.2

Covered by Story 8.3

Explicitly Deferred

Outcome

With these Epic 8 extensions in place, the remaining migrations can keep a single canonical request-driven list pattern. Future stories only need entity-specific list definitions, query services, controller preloads, and Blade views; they do not need new infrastructure branches.