From 5daf04cc3d522f18ba4c13dfa9f64e4b128b6c5f Mon Sep 17 00:00:00 2001 From: wei-kuochen Date: Thu, 13 Mar 2025 16:37:02 +0900 Subject: [PATCH 1/3] weko#51254 change logic of index delete --- docs/howto/index/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/howto/index/README.md b/docs/howto/index/README.md index 85bbaca6..746a1bb4 100644 --- a/docs/howto/index/README.md +++ b/docs/howto/index/README.md @@ -25,25 +25,26 @@ with recursive child (depth, id, parent,index_name) as ( child.depth + 1, index.id, index.parent, - index.index_name + index.index_name, + is_deleted from index, child where index.parent = child.id) select depth, id,index_name from child order by depth; ``` ``` - depth | id | index_name --------+---------------+------------ - 0 | 1733503900136 | LV1 - 1 | 1733503930431 | LV2 - 2 | 1733503950790 | LV3 + depth | id | index_name | is_deleted +-------+---------------+------------+------------ + 0 | 1733503900136 | LV1 | f + 1 | 1733503930431 | LV2 | f + 2 | 1733503950790 | LV3 | f (3 rows) ``` 1733503900136 とその子インデックスを削除する。 ``` -DELETE FROM index WHERE id IN ( +UPDATE index SET is_deleted = 't' WHERE id IN ( with recursive child (depth, id, parent,index_name) as ( select 0, index.id, index.parent,index.index_name from index where index.id = '1733503900136' union all From f95fdf781863c4e183fff62a90902e93657b0182 Mon Sep 17 00:00:00 2001 From: wei-kuochen Date: Thu, 13 Mar 2025 16:37:37 +0900 Subject: [PATCH 2/3] weko#51254 change spec of sets --- docs/spec/base/admin/ADMIN_9_3.md | 2 +- docs/spec/base/user/USER_3_7.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/spec/base/admin/ADMIN_9_3.md b/docs/spec/base/admin/ADMIN_9_3.md index 40d467f7..891248f0 100644 --- a/docs/spec/base/admin/ADMIN_9_3.md +++ b/docs/spec/base/admin/ADMIN_9_3.md @@ -58,7 +58,7 @@ - Description:セットの説明を入れる - - Search Pattern + - Search Pattern: 検索パターン - 「保存(Save)」ボタンを押すと、設定されたセット内容をセット一覧に追加させ、メッセージをセット一覧に表示させる メッセージ:「レコードが正常に作成されました。(Record was successfully saved)」 diff --git a/docs/spec/base/user/USER_3_7.md b/docs/spec/base/user/USER_3_7.md index 3bb8f1fc..b0576184 100644 --- a/docs/spec/base/user/USER_3_7.md +++ b/docs/spec/base/user/USER_3_7.md @@ -379,8 +379,8 @@ - Description: 概要 - - Search Pattern: 検索パターン ※パスの区切りは/(スラッシュ) - 例 path:"1628576973067/1628576975817" + - Search Pattern: 検索パターン + 例 path:"1628576975817" 6\. Other Formats From b46a6ac1596a8c03e6267fcf8c0401fc698cf834 Mon Sep 17 00:00:00 2001 From: wei-kuochen Date: Thu, 13 Mar 2025 16:38:11 +0900 Subject: [PATCH 3/3] weko#51254 add logic of delete item version --- docs/spec/base/user/USER_3_1.md | 40 +++++++++++++++++++++++++++++++++ docs/spec/base/user/USER_3_3.md | 40 +++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/docs/spec/base/user/USER_3_1.md b/docs/spec/base/user/USER_3_1.md index 0941faf5..2ab6edc6 100644 --- a/docs/spec/base/user/USER_3_1.md +++ b/docs/spec/base/user/USER_3_1.md @@ -167,6 +167,46 @@ - 最新バージョンの\[Delete this version\]ボタンが押下された場合は、最新バージョンを論理削除し、ひとつ前のバージョンを最新バージョンに変更する。その後、バージョン更新を行うと、論理削除された次バージョンとして作成する(論理削除されたバージョンは欠番となる)。 + - 以下はバージョン削除の流れ: + + 1. 該当のバージョン削除を削除する + + 1. records_metadata にある資料の publish_status が -1(削除)に設定する + + 2. ESにある資料の publish_status 情報を更新する + + 3. 関するフィードバックメール情報を削除する + + 4. 該当のPIDの状態は DELETED に変更する + + 5. 関するバケットを削除する + + 2. (i)でバージョンを論理削除した後、現時点最新のバージョンを取得する + + 3. 削除されたバージョンは最新のバージョンでしたら、(ii)で取得したバージョンの資料はベースとして、 + + 1. 親PIDのmetadata情報を更新する(インデックス情報を更新しない) + + 2. 親PIDのフィードバックメール情報を更新する + + 3. 親PIDの状態は公開に変更する(DBとES) + + 4. 親PIDのアイテムリンクを更新する + + 4. 編集用のPIDが使っていない場合、(ii)で取得したバージョンの資料はベースとして、 + + 1. 編集用PIDのmetadata情報を更新する(インデックス情報を更新しない) + + 2. 編集用PIDのフィードバックメール情報を更新する + + 3. 編集用PIDの状態は公開に変更する(DBとES) + + 4. 編集用PIDのアイテムリンクを更新する + + 5. 削除されたバージョンのアイテムリンクを削除する + + - 親PID:バージョンが付いていないPID、編集用PID:「.0」ついているPID + - アイテムにDOIが付与されている場合、アイテムの削除を認めない。  日本語:アイテムにDOIが付与されているため、アイテムを削除することはできません。  英語:The item cannot be deleted because it has a DOI. diff --git a/docs/spec/base/user/USER_3_3.md b/docs/spec/base/user/USER_3_3.md index f7090913..b2c04e38 100644 --- a/docs/spec/base/user/USER_3_3.md +++ b/docs/spec/base/user/USER_3_3.md @@ -109,6 +109,46 @@ - 最新バージョン削除時は旧バージョンもすべて論理削除されること + - 以下はバージョン削除の流れ: + + 1. 該当のバージョン削除を削除する + + 1. records_metadata にある資料の publish_status が -1(削除)に設定する + + 2. ESにある資料の publish_status 情報を更新する + + 3. 関するフィードバックメール情報を削除する + + 4. 該当のPIDの状態は DELETED に変更する + + 5. 関するバケットを削除する + + 2. (i)でバージョンを論理削除した後、現時点最新のバージョンを取得する + + 3. 削除されたバージョンは最新のバージョンでしたら、(ii)で取得したバージョンの資料はベースとして、 + + 1. 親PIDのmetadata情報を更新する(インデックス情報を更新しない) + + 2. 親PIDのフィードバックメール情報を更新する + + 3. 親PIDの状態は公開に変更する(DBとES) + + 4. 親PIDのアイテムリンクを更新する + + 4. 編集用のPIDが使っていない場合、(ii)で取得したバージョンの資料はベースとして、 + + 1. 編集用PIDのmetadata情報を更新する(インデックス情報を更新しない) + + 2. 編集用PIDのフィードバックメール情報を更新する + + 3. 編集用PIDの状態は公開に変更する(DBとES) + + 4. 編集用PIDのアイテムリンクを更新する + + 5. 削除されたバージョンのアイテムリンクを削除する + + - 親PID:バージョンが付いていないPID、編集用PID:「.0」ついているPID + 3\. アイテムバージョンの表示/非表示を設定できる 【Administration \> アイテムタイプ管理 (Item Types) \>メタデータ (Meta)画面】から、アイテムタイプのバージョンの表示/非表示を設定できる