Back to bug 17387

Who When What Removed Added
nick 2016-09-30 21:01:57 UTC CC katrin.fischer, nick
josef.moravec 2016-10-03 08:43:30 UTC CC josef.moravec
severine.queune 2017-06-09 11:43:22 UTC CC severine.queune
tmisilo 2017-12-01 20:26:59 UTC CC misilot
george 2017-12-01 21:03:43 UTC CC george
rocio 2018-04-05 17:47:56 UTC CC rocio
andrew 2023-02-02 20:48:41 UTC CC andrewfh
dcook 2023-02-02 22:52:37 UTC CC dcook
davewood 2023-04-14 09:22:21 UTC CC davewood
katrin.fischer 2023-06-30 08:28:58 UTC CC michaela.sieber
katrin.fischer 2023-06-30 17:12:35 UTC CC olli-antti.kivilahti
mspinney 2024-01-25 01:38:09 UTC CC mspinney
kebliss 2024-01-25 15:52:52 UTC CC kebliss
laura 2024-06-27 14:02:54 UTC CC laura
michaela.sieber 2024-08-27 11:19:13 UTC CC caroline.cyr-la-rose, clemens.tubach, hammat.wele
caroline.cyr-la-rose 2024-09-04 15:46:45 UTC CC philippe.blouin
rcoert 2024-10-02 21:38:13 UTC CC rcoert
enica 2024-10-10 13:59:02 UTC CC enica
mnero 2024-10-16 16:47:44 UTC CC mnero
lisette 2024-11-15 18:34:07 UTC CC lisette
jbalway 2025-02-27 21:46:49 UTC CC jbalway
hacheng 2025-04-25 09:52:36 UTC CC hacheng
martin.renvoize 2025-10-29 19:31:02 UTC Assignee gmcharlt jacob.omara
CC martin.renvoize
martin.renvoize 2025-10-29 19:31:11 UTC Status NEW ASSIGNED
martin.renvoize 2025-10-29 19:31:29 UTC URL https://github.com/Jacobomara901/Koha/tree/biblio/item-undelete
jacob.omara 2025-10-30 16:39:46 UTC Status ASSIGNED Needs Signoff
jacob.omara 2025-10-30 17:38:22 UTC Attachment #188670 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:25 UTC Attachment #188671 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:29 UTC Attachment #188672 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:32 UTC Attachment #188673 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:35 UTC Attachment #188674 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:39 UTC Attachment #188675 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:43 UTC Attachment #188676 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:46 UTC Attachment #188677 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:51 UTC Attachment #188678 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:38:59 UTC Attachment #188679 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:03 UTC Attachment #188680 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:12 UTC Attachment #188681 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:21 UTC Attachment #188682 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:34 UTC Attachment #188683 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:44 UTC Attachment #188684 Attachment is obsolete 0 1
jacob.omara 2025-10-30 17:39:53 UTC Attachment #188685 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:36 UTC Attachment #188686 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:39 UTC Attachment #188687 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:42 UTC Attachment #188688 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:46 UTC Attachment #188689 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:49 UTC Attachment #188690 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:52 UTC Attachment #188691 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:55 UTC Attachment #188692 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:50:58 UTC Attachment #188693 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:02 UTC Attachment #188694 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:05 UTC Attachment #188695 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:08 UTC Attachment #188696 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:11 UTC Attachment #188697 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:15 UTC Attachment #188698 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:18 UTC Attachment #188699 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:21 UTC Attachment #188700 Attachment is obsolete 0 1
sandboxes 2025-10-31 09:51:24 UTC Attachment #188701 Attachment is obsolete 0 1
michaela.sieber 2025-10-31 10:12:28 UTC Status Needs Signoff Signed Off
jacob.omara 2025-11-04 19:34:57 UTC Attachment #188780 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:01 UTC Attachment #188781 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:05 UTC Attachment #188782 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:08 UTC Attachment #188783 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:12 UTC Attachment #188784 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:15 UTC Attachment #188785 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:19 UTC Attachment #188786 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:22 UTC Attachment #188787 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:26 UTC Attachment #188788 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:30 UTC Attachment #188789 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:33 UTC Attachment #188790 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:37 UTC Attachment #188791 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:41 UTC Attachment #188792 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:44 UTC Attachment #188793 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:48 UTC Attachment #188794 Attachment is obsolete 0 1
jacob.omara 2025-11-04 19:35:51 UTC Attachment #188795 Attachment is obsolete 0 1
andrew 2025-11-04 21:29:13 UTC Status Signed Off Failed QA
jacob.omara 2025-11-05 15:39:08 UTC Attachment #189046 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:12 UTC Attachment #189047 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:16 UTC Attachment #189048 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:19 UTC Attachment #189049 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:23 UTC Attachment #189050 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:26 UTC Attachment #189051 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:30 UTC Attachment #189052 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:33 UTC Attachment #189053 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:37 UTC Attachment #189054 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:40 UTC Attachment #189055 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:44 UTC Attachment #189056 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:48 UTC Attachment #189057 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:51 UTC Attachment #189058 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:55 UTC Attachment #189059 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:39:58 UTC Attachment #189060 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:40:02 UTC Attachment #189061 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:40:06 UTC Attachment #189062 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:40:57 UTC Status Failed QA Signed Off
lucas 2025-11-05 15:49:25 UTC CC lucas
Status Signed Off Failed QA
jacob.omara 2025-11-05 15:59:23 UTC Attachment #189082 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:27 UTC Attachment #189083 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:31 UTC Attachment #189084 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:35 UTC Attachment #189085 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:38 UTC Attachment #189086 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:42 UTC Attachment #189087 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:46 UTC Attachment #189088 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:49 UTC Attachment #189089 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:53 UTC Attachment #189090 Attachment is obsolete 0 1
jacob.omara 2025-11-05 15:59:57 UTC Attachment #189091 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:01 UTC Attachment #189092 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:05 UTC Attachment #189093 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:09 UTC Attachment #189094 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:12 UTC Attachment #189095 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:16 UTC Attachment #189096 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:20 UTC Attachment #189097 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:24 UTC Attachment #189098 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:27 UTC Attachment #189099 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:00:31 UTC Attachment #189100 Attachment is obsolete 0 1
jacob.omara 2025-11-05 16:22:45 UTC Status Failed QA Signed Off
nick 2025-11-06 15:12:21 UTC QA Contact testopia nick
anneli.osterman 2025-11-14 06:53:54 UTC CC anneli.osterman
emmi.takkinen 2025-11-17 08:10:17 UTC CC emmi.takkinen
anneli.osterman 2025-11-25 05:46:17 UTC Blocks 41295
carthur 2025-12-03 17:17:01 UTC CC carthur
Chip.Halvorsen 2025-12-03 17:17:21 UTC CC Chip.Halvorsen
dmeininger591 2025-12-03 17:20:47 UTC CC dmeininger591
lisette 2026-01-09 15:39:01 UTC Keywords release-notes-needed
nick 2026-01-22 18:31:37 UTC Status Signed Off Failed QA
martin.renvoize 2026-02-28 16:37:43 UTC Text to go in the release notes , enabling authorised users to restore that data back into the
active catalogue.
### New Features
- A **Restore Deleted Records** page is accessible from the Cataloguing module home page are written to the **action log** (`RESTORE` action for both biblios
and items), providing an audit trail.
- Library group membership is taken into account during permission checks the deleted records tables.
Data in related tables (e.g. link tracker When a bibliographic record or item is deleted in Koha, the data is moved to the
`deletedbiblio`, `deletedbiblioitems`, prompting the user to restore the bibliographic record first.
- Restoring a **deleted bibliographic record** opens a modal listing any associated deleted
items associated biblio
data and pagination headers)
- `GET /api/v1/deletedbiblios` — list deleted bibliographic records (supports embedding
associated deleted items)
### New Permission
A new **`restore_deleted_records`** permission has been added as,
presenting two tables: one for deleted bibliographic records and one for deleted items.
- Each table displays key identifying information such as biblio ID, title, barcode, so staff are
only able to restore records within their permitted scope.
### New REST API Endpoints
New endpoints have been added to the Koha REST API to support programmatic restoration
of deleted records:
- `POST, holds history) that was cascade-deleted when
the record was removed **cannot** be recovered by this tool.
- A restored record will be re-inserted with its original biblio/item ID where possible.
- This feature does not constitute a full "soft, and `deleteditems` tables rather than being
permanently removed. This new feature exposes those tables through a dedicated staff
interface and REST API, with checkboxes allowing the user to select which items (if any) to restore
alongside the bibliographic record.
- Restored records are automatically **re-indexed** in the search engine (Zebra /
Elasticsearch) upon restoration.
- Restore actions a child of the
**Cataloguing** permissions group. Users must be granted this permission to access the
Restore Deleted Records page and to use the restore API endpoints.
### Important Notes
- Restoration is only possible for records still present in, and
the date the record was deleted.
- A **date range filter** in the sidebar allows staff to narrow results by deletion date.
- Restoring a **deleted item** whose parent bibliographic record is also deleted will
present a warning modal /api/v1/deleteditems/{item_id}/restore` — restore a single deleted item
- `POST /api/v1/deletedbiblios/{biblio_id}/restore` — restore a single deleted
bibliographic record
- `GET /api/v1/deleteditems` — list deleted items (supports embedding delete" or undo system — it is a targeted
recovery tool for data held in Koha's existing deleted-record tables.

Back to bug 17387