Skip to content

feat(web): 分野逆参照をツリーペインでは現ドキュメントに絞る(案B)#12

Merged
kentalow merged 1 commit into
mainfrom
feat/subject-items-doc-scope
Jun 20, 2026
Merged

feat(web): 分野逆参照をツリーペインでは現ドキュメントに絞る(案B)#12
kentalow merged 1 commit into
mainfrom
feat/subject-items-doc-scope

Conversation

@kentalow

Copy link
Copy Markdown
Member

概要

CFSubject(分野)の「この分野を設定している項目」逆参照リストを、画面によってスコープを変える(案B):

  • 単独 /uri/{subject} ページ … テナント横断(全ドキュメント。従来どおり)
  • ツリー右ペイン(定義から分野を選択)… 現ドキュメント内のみ

背景

これまでツリー右ペインでは逆参照を非表示にしていた(ペインはドキュメントスコープ・横断リストは場違い・重い、という理由)。だが単一文書テナントではその難点が起きず、ツリーで分野をクリック→一覧が自然な動線。そこで「ペイン=現ドキュメントに絞る/ページ=テナント横断」に変更。ペインの一覧は必ず同ツリー内の項目になり(別文書へ飛ばない)、件数も小さく、クエリも軽い。横断テナントでも破綻しない。

実装

  • repo: list_items_by_subject / count_items_by_subjectdocument_id 引数(指定時その文書に限定)。
  • web.py: include_subject_items 廃止。スコープは _detail_extrasdoc を受け取るか否かで決定(ページ=doc None=横断/ペイン=その doc)。SSR deep-link (_render_tree_page) と HTMX フラグメント (_pane_fragment_response) の両ペイン経路で doc スコープ計算。fragment ルートに doc クエリ対応、subject_items.scope_doc で「もっと見る」もスコープ維持。
  • template: 「もっと見る」URL に &doc= を付与。
  • docs: web-ui.md にサーフェス別スコープ(案B)と、「どの情報がどの画面にどの条件で出るか」の総まとめ表を追加。

テスト(19件 / 全696 pass)

repo の document_id 絞り込み、_detail_extras の doc 有無スコープ、ペインフラグメントが現ドキュメント分を表示、横断時の絞り込み(doc A/B)、「もっと見る」URL に &doc= が乗る、bad doc → 400。

CFItemType / Concept / License への同種の逆参照は別 PRで対応予定(本 PR は CFSubject のスコープ精緻化のみ)。

🤖 Generated with Claude Code

ツリー右ペインで CFSubject を開いたとき「この分野を設定している項目」を
現ドキュメント内に絞って表示する。単独 /uri/ ページは従来どおりテナント横断。
スコープは _detail_extras が doc を受け取るか否かで決まる(ページ=doc None=
横断 / ペイン=その doc)。

- repo: list_items_by_subject / count_items_by_subject に document_id を追加
- web.py: include_subject_items を廃止し doc 有無でスコープ。_render_tree_page と
  _pane_fragment_response の両ペイン経路で doc スコープ計算。fragment ルートに
  doc クエリ対応、subject_items に scope_doc を持たせページングでスコープ維持
- template: subject_items.html の「もっと見る」URL に doc を付与
- tests: doc スコープ(repo / _detail_extras / ペイン表示 / fragment / もっと見る
  URL に doc / bad doc 400)。旧 pane 抑制テストを doc スコープ表示に置換
- docs: web-ui.md に「どの情報がどの画面にどの条件で出るか」の総まとめ表を追加、
  分野逆参照のサーフェス別スコープ(案B)を明記

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XXFogp18twGiPFBAZcqJw2
@kentalow kentalow merged commit 9ad7428 into main Jun 20, 2026
2 checks passed
@kentalow kentalow deleted the feat/subject-items-doc-scope branch June 20, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant