ツリー編集

目的・用途

本機能は、インデックスツリーの追加、編集、削除を担当している機能である。

インデックスツリー情報の公開設定、閲覧権限、投稿権限などを編集できる。

利用方法

1. システム管理者、リポジトリ管理者、サブリポジトリ管理者でログインする。

2.【Administration>インデックスツリー管理(Index Tree)>ツリー編集(Edit Tree)】画面を開く。

利用可能なロール

ロール システム管理者 リポジトリ管理者 コミュニティ管理者 登録ユーザー 一般ユーザー ゲスト(未ログイン)
利用可否 〇※ × × ×

※ サブリポジトリ管理者の場合は、管理対象のサブリポジトリに設定したインデックスをルートとしたインデックスツリーが表示される。

機能内容

1. インデックスツリーを追加する

【Administration > インデックスツリー管理 > ツリー編集(Edit Tree)】画面に移動する。

その後新しく作成するインデックスの親となるインデックスをRootIndex以下から選択する。

そして、Edit Treeエリア左上にある「追加」(Add)ボタンを押すことで、インデックスが新規登録される。

  • 「追加」(Add)ボタンを押す時に選択しているインデックスの最下行に、インデックス(New Index)を配置する。

    「Root Index」を選択している場合、インデックス一覧の最下行に配置する。

2. インデックスツリーを編集する

【Administration > インデックスツリー管理 > ツリー編集(Edit Tree)】画面にて編集したいインデックスを押下することでそのインデックスの編集画面が右に表示される。

なお、Root Indexは選択することができるが、編集することはできない。

インポート中はインデックスツリーの編集ができない。

  • 入力内容は以下の通りである。

    • 「インデックス」(Index)

      • 日本語と英語のインデックス名用のテキストボックスを設ける。

        日本語:サイトの表示言語が日本語の時に表示される。

        英語:サイトの表示言語が日本語以外の時に表示される。

      • 英語のインデックス名は必須項目とする。

      • デフォルト値:「New Index」

    • 「インデックスURL」(Index URL)

      • インデックスの固定URLを表示する。

        ※表示のみ。編集は行えない。
    • 「CNRI」(CNRI)

      • インデックスのCNRIが存在する場合、表示する。

        ※表示のみ。編集は行えない。
    • 「コメント」(Comment)

      • インデックスのコメントを入力する。

      • URLを表示する場合、次の形式で入力する。

        形式:

[[URL|表示名]]

上記のように入力すると、表示名をリンクで表示する。「|表示名」を省略した場合、URLをリンク形式で表示する。

  • 「公開」(Publish)

    • 「公開する」(Open to public)チェックボックスを設ける。

      • チェックを入れる際に、ポップアップが表示される。

      • ポップアップの「公開設定を有効化する(Open to public)」チェックボックスにチェックを入れ、「有効にする(Enable)」ボタンを押下することで、「公開する」チェックボックスにチェックが入る。

      • ポップアップの表示制御を以下のコンフィグファイルで行っている。下記変数の値をTrueに変更することで表示することができる。(初期値はFalseになっている)

        • パス:/root/weko/modules/weko-index-tree/weko_index_tree/config.py

        • 変数:WEKO_INDEX_TREE_SHOW_MODAL

    • チェックを入れた場合

      • インデックスの公開日の入力欄を表示させる。

      • 「子インデックスの公開日にも再帰的に反映させる」(Set the publication date of child indexes recursively)チェックボックスを表示させる。

        チェックを入れた場合、所属する子インデックスと子孫インデックスすべてに公開日の設定が再帰的に設定される。

  • 「インデックスリンク」(Index Link)

    • 「Enable」チェックボックスを設ける

      チェックを入れた場合、インデックスリンク検索が有効になっている時インデックスリンク検索の際にプルダウンに表示される。

    • インデックスリンクの表示を決めるテキストボックスを「日本語」と「英語」の二つとして設ける。

    • なお、「英語」は必須項目となっていて、初期値は「New Index」とする。インデックスリンクの仕様についてはUSER-1-3インデックス検索を参照すること。

    • 「表示範囲」(More Function)

      「公開する」(Limit the number of child indexes to show.)チェックボックスを設ける。チェックを入れた場合、初回表示個数を設定できる。デフォルト値が「5」とする。

    • 選択しているインデックスに子インデックスを登録しない場合、このチェックボックスは非活性とする。

  • 「RSSアイコン」(RSS Icon)

    「表示する」(Display)チェックボックスを設ける。

    • チェックを入れた場合、インデックスリストにRSSアイコンが表示される。

    • RSSの機能詳細はUSER-1-6 RSSを参照すること。

  • 「PDF Cover Page (JA)」(PDF Cover Page)

    「Enable」チェックボックスを設ける。

    このチェックボックスは【Administration>設定(Setting)>PDFカバーページ表示】画面にて「PDF Cover Page」エリアで「Enable」を選んでいると編集が可能になる。設定の詳細はADMIN-14-4 PDFカバーページ表示を参照すること。

    • チェックを入れる場合、PDFカバーページが作成される。

    • 編集が可能になっている場合、「Also reflect recursively on child index」チェックボックスが表示される。

      • チェックを入れて保存した場合、所属する子インデックスと子孫インデックスすべてにこのエリアのPDFカバーページの設定が再帰的に設定される。
  • 「ハーベスト公開」(Harvest Publish)

    「公開する」(Open to public)チェックボックスを設ける

    • チェックを入れる際に、ポップアップが表示される。

    • ポップアップの「公開設定を有効化する(Open to public)」チェックボックスにチェックを入れ、「有効にする(Enable)」ボタンを押下することで、「公開する」チェックボックスにチェックが入る。

    • ポップアップの表示制御を以下のコンフィグファイルで行っている。下記変数の値をTrueに変更することで表示することができる。(初期値はFalseになっている)

      • パス:/root/weko/modules/weko-index-tree/weko_index_tree/config.py

      • 変数:WEKO_INDEX_TREE_SHOW_MODAL

    • チェックを入れた場合、インデックスへのハーベスト要求に対して、所属するデータを提供できる。

  • 「ONLINE ISSN」(Online ISSN)

    インデックスにオンラインISSNの値を入力する。

    「このインデックス直下のアイテムの利用統計を集計する」(Aggregate usage statistics of items belonging to this index.)チェックボックスを設ける。

    • チェックを入れた場合、子インデックスへの再帰的な設定値反映および利用統計集計する。

      [注意!]

      ただし、WEKO3側で、ONLINE ISSN ごとに集計する機能は存在しない。

      利用統計通常は、インデックス単位でとる仕様である。

      将来的にONLINE ISSN ごとに集計するようになった場合に備えて移行をしておく。
  • 「閲覧権限」(Browsing Privilege)

    • ロール権限の設定には、

      「ロール権限あり」(Role Authorized)と「権限なし」(Unauthorized)エリアを設ける。

      • 「ロール権限あり」(Role Authorized)は、デフォルトとして、以下の権限が表示される。

        • Contributor

        • Authenticated User

        • Guest

      • 「子インデックスのロール権限にも再帰的に反映させる」(Set the base authorities of child indexes recursively)チェックボックスにチェックを入れることで、所属するすべての子インデックスと子孫インデックスにロール権限の設定が再帰的に設定される。

    • グループ権限の設定には、

      「グループ権限あり」(Group Authorized)と「権限なし」(Unauthorized)エリアを設ける。

      • 「グループ権限あり」(Group Authorized)は、デフォルトとして、登録されているグループが表示される。

      • 「子インデックスのグループ権限にも再帰的に反映させる」(Set the base authorities of child indexes recursively)チェックボックスにチェックを入れることで、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定される。

    • 学認mAP連携機能が有効な場合、閲覧権限の設定に学認mAPのグループ情報を利用できる。

      • グループIDのフォーマットが「jc__roles_」に従っている学認グループは、ロール権限として表示され閲覧権限を変更できる。

        • には機関のFQDNから".","-"を"_"に置換した値が設定される。

          • 例: abc-u.ac.jp → abc_u_ac_jp
        • 例外的に「jc_roles_sysadm」もロール権限として表示され閲覧権限を変更できる。

        • ロール権限に設定できるグループIDのフォーマット(プレフィックス、システム管理者用グループID)は、設定値 WEKO_ACCOUNTS_GAKUNIN_GROUP_PATTERN_DICT を変更することで、フォーマットを変更できる。

      • 上記以外のグループIDの場合はグループ権限として表示され、閲覧権限を変更できる。

        • ただし、学認mAPのグループ情報は内部的には全てロールとして扱われる。
      • 学認mAP連携機能でGakuNin mAPのグループ情報がWEKO3に追加された際、設定するmAPグループの閲覧権限のデフォルト値は、WEKO_INDEXTREE_GAKUNIN_GROUP_DEFAULT_BROWSING_PERMISSIONの真偽値から権限有無を決定する。

  • 「投稿権限」(Deposit Privilege)

    • ロール権限の設定には、

      「ロール権限あり」(Role Authorized)と「権限なし」(Unauthorized)エリアを設ける。

      • 「ロール権限あり」(Role Authorized)は、デフォルトとして、以下の権限が表示される。

        • System Administrator

        • Repository Administrator

        • Contributor

        • Community Administrator

        • Authenticated User : -98

        • Guest : -99

      • 「子インデックスのロール権限にも再帰的に反映させる」(Set the base authorities of child indexes recursively)チェックボックスにチェックを入れることで、所属するすべての子インデックスと子孫インデックスにロール権限の設定が再帰的に設定される。

    • グループ権限の設定には、

      「グループ権限あり」(Group Authorized)と「権限なし」(Unauthorized)エリアを設ける。

      • 「グループ権限あり」(Group Authorized)は、デフォルトとして、登録されているグループが表示される。

      • 「子インデックスのグループ権限にも再帰的に反映させる」(Set the base authorities of child indexes recursively)チェックボックスにチェックを入れることで、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定される。

    • 学認mAP連携機能が有効な場合、投稿権限の設定に学認mAPのグループ情報を利用できる。

      • グループIDのフォーマットが「jc__roles_」に従っている学認グループは、ロール権限として表示され投稿権限を変更できる。

        • には機関のFQDNから".","-"を"_"に置換した値が設定される。

          • 例: abc-u.ac.jp → abc_u_ac_jp
        • 例外的に「jc_roles_sysadm」もロール権限として表示され投稿権限を変更できる。

        • ロール権限に設定できるグループIDのフォーマット(プレフィックス、システム管理者グループID)は、設定値 WEKO_ACCOUNTS_GAKUNIN_GROUP_PATTERN_DICT を変更することで、フォーマットを変更できる。

      • ロール権限として利用できない学認グループは、すべてグループ権限として表示され、投稿権限を変更できる。

        • ただし、学認mAPのグループ情報は内部的には全てロールとして扱われる。
      • 学認mAP連携機能でGakuNin mAPのグループ情報がWEKO3に追加された際、設定するmAPグループの投稿権限のデフォルト値は、WEKO_INDEXTREE_GAKUNIN_GROUP_DEFAULT_CONTRIBUTE_PERMISSIONの真偽値から権限有無を決定する。

  • 「表示形式(検索結果)」(Display Format(Search Results))

    検索結果の表示形式を選択する。

    • 「一覧形式」(List)

      検索結果をアイテムの一覧で表示する。デフォルトはこの形式で設定されている。

      一覧形式の詳細はUSER-2-1 一覧形式表示を参照すること。

    • 「目次形式」(Table Of Contents)

      検索結果を見出しの一覧で表示する。

      目次形式の詳細はUSER-2-2 目次形式表示を参照すること。

  • インデックスサムネイル画像のアップロードエリア

  • 「送信」(Send)ボタンを押すと、編集したインデックスが保存される。

  • 親インデックスにサムネイルが登録されている場合、子インデックス作成時にサムネイルは引き継がれない。

  • サムネイルの添付可能な形式は「gif, jpg, jpe, jpeg, png, bmp」のみ。

    その他の形式を選択すると、「画像ファイル(gif, jpg, jpe, jpeg, png, bmp)以外のファイルはアップロードできません。」とエラーメッセージを表示する

  • サムネイルを登録後、「削除」ボタンを配置し、登録したサムネイルを削除できるようにする

    ※「削除」ボタン押下時に、メッセージ等は表示しない。「送信」ボタンを押下することでサムネイルの削除が反映されるようにする。

  • サムネイル画像は表示時の画面サイズに応じて縮小される。画像を拡大表示することはしない。

  • 必須項目を入力しない場合、インデックスが追加されずに、エラーメッセージがポップアップアラートで表示される。また、必須項目の直下にエラーメッセージも表示される。

    ポップアップアラートで表示されるエラーメッセージ:「必須入力項目を入力してください」

    該当項目下に表示されるエラーメッセージ:「英語で入力は必要です。」

  • エラーがない場合は「正常にインデックスを更新しました。(Index is updated successfully.)」というポップアップが表示される。

  • DOI(デジタルオブジェクト識別子)付与済アイテムがインデックスに存在した場合、インデックス状態の「公開」から「非公開」への変更を認めない。

    日本語:DOIが付与されているアイテムからのリンクがあるため、インデックスを非公開にすることはできません。

    英語:The index cannot be kept private because there are links from items that have a DOI.

  • DOI付与済アイテムがインデックスに存在した場合、ハーベスト状態の「公開」から「非公開」への変更を認めない。

    日本語:DOIが付与されているアイテムからのリンクがあるため、インデックスのハーベストを非公開にすることはできません。

    英語:Index harvests cannot be kept private because there are links from items that have a DOI.

3. インデックスツリーを削除する

  • 削除したいインデックスを選択した状態で、「削除」(Delete)ボタンを押すと、確認ダイヤログを表示させる。

    削除処理中はインデックス操作ができなくなる。([追加]ボタン,[削除]ボタン,[送信]ボタンが非活性となる)

    確認メッセージ:

    日本語:「DELETEインデックス以下のインデックスおよびアイテムに対する処理を選択してください」

    英語:「Please choose processing about index and items!」

    • 「すべて削除」(Delete All)ボタンを押すと、インデックスを削除する。子インデックスおよびアイテムが、すべて削除される。

    • 「キャンセル」(Cancel)ボタンを押すと、確認ダイアログを閉じる。

    • 当該インデックスのみに所属するDOI付与済アイテムが存在した場合、インデックス自身の削除を認めない。

      日本語:DOIが付与されているアイテムからのリンクがあるため、インデックスを削除することはできません。

      英語:The index cannot be deleted because there is a link from an item that has a DOI.

    • 当該インデックス以外にもインデックス状態が「公開」かつハーベスト公開が「公開」のインデックスにリンクするDOI付与済アイテムが存在する場合、編集・削除の操作への制限はしない。

    • エラーがない場合は「正常にインデックスを削除しました。(Index is deleted successfully.)」というポップアップが表示される。その後、画面がリフレッシュされ、該当のインデックスは削除される。

  • ハーベスト設定で利用されているインデックスは削除できない。

  • アイテムインポート中はインデックスを削除できない。

4. インデックスツリーを移動する。

  • インデックスの順序の変更と所属する親インデックスの変更はドラッグ&ドロップにより可能である。

    なお、Root Indexを動かすことはできない。アイテムインポート中はインエックスを移動できない。
  • 関連モジュール

    • weko_index_tree
    • weko_search_ui
    • weko_admin
  • インデックスツリー編集画面表示について

    • 【Administration>インデックスツリー管理>ツリー編集】画面を開く。そのとき、weko_index_tree.admin.indexメソッドを呼び出し、indexテーブルよりインデックスツリー情報を取得し、表示する。
  • インデックス追加について

    • 【Administration > インデックスツリー管理(Index Tree) > ツリー編集(Edit Tree)】画面にて追加ボタンを押下すると、weko_index_tree.rest.postメソッドにてweko_index_tree.api.createが呼び出される。

      それによって初期値が以下の表であるインデックスを生成され、indexテーブルに登録される。 インデックス作成時、識別可能なエンドポイントを作成する。 CNRIが有効である場合は、ハンドルを発行し、当該のエンドポイントの名前解決が可能な状態にする。
  • インデックスのキャッシュについて
No. キャッシュ名 有効期限 備考
1 indextree_view" + os.environ.get('INVENIOWEB_HOST_NAME') + "" + lang 無期限 ユーザ権限に基づく加工前のルートインデックスのツリー情報。

 ・キャッシュ名の[ホスト名(INVENIO_WEB_HOST_NAME)]、[言語(current_i18n.language)]は設定に応じて変わる

  例)index_tree_view_weko3.example.org_ja

ユーザ=認証あり:当該redisキャッシュを使用する。

ユーザ=認証なし:No2のredisキャッシュが存在しない場合、No2のredisキャッシュ生成のために当該redisキャッシュを使用する。
2 indexreset_tree_view" + os.environ.get('INVENIOWEB_HOST_NAME') + "" + lang 有効期限(秒) = 有効期限日時 - キャッシュ登録日時 非ログインユーザ向けに加工したMore表示が有効のルートインデックスのツリー情報

ツリー情報取得処理、詳細検索条件用の情報取得処理の改善用

・キャッシュ名の[ホスト名(INVENIO_WEB_HOST_NAME)]、[言語(current_i18n.language)]は設定に応じて変わる

例)index_reset_tree_view_weko3.example.org_ja

・有効期限の[有効期限日時]は、キャッシュ登録日の翌00時00分00秒とする

例)[キャッシュ登録日時]2025-04-01 23:59:00 [有効期限日時]2025-04-02 00:00:00 [有効期限]60秒

※公開日が未来日に設定されたインデックス情報は削除された状態でredisキャッシュに保存される。

そのため公開日を迎えたインデックスが表示されるように、日付が変わるタイミングで毎日キャッシュを削除する必要がある。

・ユーザ認証なしの権限に基づいた加工後のルートインデックスのツリー情報を保存する

ユーザ認証なしの場合に、当該redisキャッシュを使用する

5. 設定

WEKO_INDEXTREE_GAKUNIN_GROUP_DEFAULT_BROWSING_PERMISSION = False

WEKO_INDEXTREE_GAKUNIN_GROUP_DEFAULT_CONTRIBUTE_PERMISSION = False

インデックスツリー設定値
# 項目(日本語) DBキー デフォルト値 備考
1 なし id (現在の時間を元にしたもの) time.timeメソッドに1000を掛けた値
2 なし parent (親インデックスのID) rootindex下なら初期値0
3 インデックス index_name New Index
4 index_name_english New Index 必須事項
5 インデックスURL (インデックスの固定URL) ※表示のみ
6 CNRI (インデックスのCNRI) ※表示のみ
7 コメント comment None
8 公開 public_state false
9 public_date None yyyy/MM/dd HH:mm:ssの形式
10 recursive_public_state false
11 インデックスリンク index_link_enabled false
12 index_link_name None
13 index_link_name_english New Index 必須事項
14 表示範囲 more_check false
15 display_no 5 表示数
16 RSSアイコン rss_status false
17 PDFCoverPage coverpage_state false
18 recursive_coverpage_state None
19 ハーベスト公開 harvest_public_state true
20 ONLINE_ISSN online_issn None
21 biblio_flag None
22 閲覧権限 browsing_role 3,-98,-99 ロールID
23 recursive_browsing_role false
24 browsing_group (現在存在するすべてのグループを許可)
25 recursive_browsing_group false
26 投稿権限 contribute_role 1,2,3,4,-98,-99
27 recursive_contribute_role false
28 contribute_group (現在存在するすべてのグループを許可)
29 recursive_contribute_group false
30 表示形式 display_format 1(一覧形式を表す) 1:一覧形式, 2:目次形式
31 サムネイル image_name None 値に入るのはサムネイル画像のパスを表す文字列
  • インデックス編集について

    • 【Administration > インデックスツリー管理(Index Tree) > ツリー編集(Edit Tree)】画面にてインデックスを編集後、「送信」ボタンを押下することでweko_index_tree.rest.putメソッドを呼び出し、同フォルダのapi.pyのupdateメソッドでテーブルを更新する。それによって編集した箇所が上記の表の対応するテーブルキーでindexテーブルの値を更新する。
    • なおweko_index_tree.api.updateメソッド実行時、表の#8,16,21,23,25,27がtrueの場合、それに対応するメソッドが呼び出される。それによって対応する設定が編集されたインデックスの子以下で同じように適用され、indexテーブルを更新する。
  • インデックス削除について

    • 【Administration > インデックスツリー管理(Index Tree) > ツリー編集(Edit Tree)】画面にてインデックスを選択後、「削除」ボタンを押し、ポップアップの選択肢「すべて削除」を押下する。この操作によってweko_index_tree.rest.deleteにて同フォルダのutil.pyのperform_delete_indexメソッドが呼び出される。このメソッドによってindexテーブルから該当インデックスとその子インデックスを論理削除する。 また、インデックス追加時に作成したハンドルはインデックスの削除と同時に削除を実施する。
  • インデックス移動について

    • 【Administration > インデックスツリー管理(Index Tree) > ツリー編集(Edit Tree)】画面にてインデックスをドラッグアンドドロップすることで親インデックスの変更、または表示する順番の変更ができる。その変更をした際に、weko_index_tree.rest.putメソッドにて同フォルダのapi.pyのmoveメソッドが呼び出される。このメソッドによってindexテーブルのキー「parent」、「position」の値を変更する。
  • キャッシュについて

    • インデックスを作成、編集、削除、移動した際に、weko_index_tree.utils.save_index_trees_to_redisメソッドを用いて、インデックスツリーの日英の親子関係をredisに保存している。

更新履歴

日付 GitHubコミットID 更新内容
2023/08/31 353ba1deb094af5056a58bb40f07596b8e95a562 初版作成
2024/07/01 7733de131da9ad59ab591b2df1c70ddefcfcad98 v1.0.7対応
2024/08/27 f49b016c92ef98e0656947bf651ca1a2f3dbc286 v1.0.8
2025/01/23 - サブリポジトリ対応
2025/01/30 3530eae9075af6afc57b777d8c3137f038523610 学認mAP連携対応
2025/10/10 3581747ebfbda5f623e7b8da759293d2090c4112 インデックス公開ロック機能追加
2025/11/12 5254da1cf9caafb27a27f361ae36099da4f2c042 キャッシュ機能の改善

results matching ""

    No results matching ""