Go to file
Martin Renvoize f4db130ad4
Bug 40136: (follow-up) Unify patron log entries when attributes change with patron data
Three issues were reported with patron action logging:

1. CREATE followed by extended_attributes() produced two log entries
   (CREATE for patron fields + MODIFY for attributes) instead of one.
2. MODIFY that changed both regular fields and patron attributes produced
   two separate MODIFY entries instead of one unified entry.
3. DELETE log did not include the patron's extended attribute values.

Fix:
- logaction() now explicitly returns the stored Koha::ActionLog object so
  callers can capture the action_id.
- Koha::Patron::store() saves the action_id of the CREATE or MODIFY log it
  writes into $self->{_patron_log_id}.
- Koha::Patron::extended_attributes() setter checks for _patron_log_id. If
  set, it calls _merge_attribute_log() to fold the attribute changes into
  the existing log entry (updating its info and diff JSON) instead of
  creating a new MODIFY entry. This covers both the CREATE and MODIFY cases.
- Koha::Patron::delete() now iterates extended_attributes before deletion
  and adds attribute.CODE keys to the patron_data snapshot, so the DELETE
  diff includes the removed attributes.
- New private helper _merge_attribute_log() decodes an existing action log
  entry's info/diff JSON, merges in the attribute change data using
  Struct::Diff, and saves the updated entry.
- Tests added to t/db_dependent/Koha/Patrons.t covering all three scenarios.

Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
2026-03-23 10:46:22 +01:00
.github/workflows Bug 40027: Use GitHub workflow to automatically close PRs opened on the Koha repo there 2025-10-06 09:15:26 -06:00
C4 Bug 40136: (follow-up) Unify patron log entries when attributes change with patron data 2026-03-23 10:46:22 +01:00
Koha Bug 40136: (follow-up) Unify patron log entries when attributes change with patron data 2026-03-23 10:46:22 +01:00
acqui Bug 39724: (follow-up) use the suggestion object in neworderempty.tt 2026-03-05 08:34:05 -07:00
admin Bug 23269: use REST API for patron_holds_table 2026-03-21 20:28:14 +00:00
api Bug 41107: Add /status/version API endpoint 2026-03-23 09:33:54 +01:00
authorities Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
basket Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
bin Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
bookings Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
catalogue Bug 39055: Change "op" to "login_op" when logging in to allow original op to flow through 2026-03-19 10:51:27 +00:00
cataloguing Bug 31717: Value builder unimarc_field_010.pl also use 214$c 2026-03-20 11:54:32 +00:00
circ Bug 23415: Add debt override support to circulation checkout page 2026-03-22 23:27:26 +01:00
clubs Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
course_reserves Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
debian Bug 38365: Add warning that intranet/staff interface is not ready for "enabled" mode yet 2026-03-16 11:57:32 +01:00
docs Bug 41319: Automate sponsor tracking from git trailers 2026-03-05 08:33:44 -07:00
erm Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
errors Bug 28146: Respect ReplytoDefault in error pages 2025-10-09 14:58:41 -06:00
etc Bug 38365: Add warning that intranet/staff interface is not ready for "enabled" mode yet 2026-03-16 11:57:32 +01:00
ill Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
installer Bug 41814: DBRev 25.12.00.032 2026-03-23 09:33:54 +01:00
koha-tmpl Bug 36698: Expand nested object values in diff table 2026-03-23 10:41:31 +01:00
labels Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
lib
…
members Bug 20956: (follow-up) Nest permissions data under 'permissions' key in MEMBERS/MODIFY log 2026-03-23 10:42:12 +01:00
misc Bug 23415: (QA follow-up) Fix spelling: oweing -> owing 2026-03-22 23:15:45 +01:00
offline_circ Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
opac Bug 41814: Add PatronAgeRestriction syspref and code 2026-03-23 09:16:52 +01:00
patron_lists Bug 32176: Remove duplicated code to select patron from autocomplete 2025-10-31 15:26:25 -06:00
patroncards Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
plugins Bug 25952: Skip invalid repositories when searching for plugins 2025-11-21 08:41:52 -07:00
pos Bug 41585: Fix cash refund payouts not appearing in register transactions 2026-03-21 17:26:44 +00:00
preservation Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
recalls Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
reports Bug 41715: Argument "YYYY-MM-DD" isn't numeric in numeric lt (<)... warnings in issues_stats.pl 2026-03-05 08:33:57 -07:00
reserve Bug 23269: (follow-up) Cleanup code 2026-03-21 20:28:14 +00:00
reviews Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
rotating_collections Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
serials Bug 36466: (follow-up) Use NULL for blank planned and published dates instead of today 2026-02-06 15:17:33 -07:00
services Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
sip2 Bug 37893: Fix http links 2025-11-18 11:21:20 -07:00
skel
…
suggestion Bug 42071: Add 'show' to options that load a single suggestion 2026-03-12 15:19:46 -06:00
svc Bug 23415: Add debt override support to circulation checkout page 2026-03-22 23:27:26 +01:00
t Bug 40136: (follow-up) Unify patron log entries when attributes change with patron data 2026-03-23 10:46:22 +01:00
tags Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
tools Bug 20956: (QA follow-up) Restore info pretty 2026-03-23 10:42:16 +01:00
virtualshelves Bug 40916: Fix another occurance 2025-10-06 09:15:22 -06:00
xt Bug 39055: Adjust xt tests to handle login_op 2026-03-19 10:51:48 +00:00
.codespell-ignore Bug 40950: Add 'falsy' programming idiom to codespell dictionary 2025-10-06 09:15:23 -06:00
.editorconfig
…
.git-blame-ignore-revs
…
.gitignore Bug 40838: Add generated bookings CSS assets to gitignore 2025-09-19 08:42:47 -06:00
.htaccess
…
.mailmap Bug 40041: (follow-up) Fix periods and add Robert Fox 2025-12-05 09:29:04 -07:00
.perlcriticrc
…
.perltidyrc
…
.prettierrc.js
…
.proverc.dist
…
.stylelintrc.json
…
INSTALL
…
Koha.pm Bug 41814: DBRev 25.12.00.032 2026-03-23 09:33:54 +01:00
LICENSE Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
MANIFEST.SKIP
…
Makefile.PL Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
README
…
README.md Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
README.robots
…
SECURITY.md Bug 40527: Initial draft of SECURITY.md 2025-10-09 14:58:41 -06:00
about.pl Bug 41319: Automate sponsor tracking from git trailers 2026-03-05 08:33:44 -07:00
app.psgi Bug 38365: Integrate CSP middleware into Plack apps 2026-03-16 11:57:12 +01:00
build-resources.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
changelanguage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
cpanfile Bug 40663: Update GD::Barcode::QRcode to v2.01 2025-09-05 15:10:34 -06:00
cypress.config.ts Bug 41362: Allow Cypress tests to use KOHA_USER and KOHA_PASS as override 2026-01-06 07:45:35 -07:00
eslint.config.mjs
…
fix-perl-path.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
gulpfile.js Bug 41327: Silence Sass deprecation warnings 2026-01-21 07:35:36 -07:00
help.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
kohaversion.pl
…
mainpage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
package.json Bug 41587: (follow-up) Fix js-yaml version conflict with resolutions override 2026-03-20 09:04:21 +00:00
rewrite-config.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
rspack.config.js Bug 41587: (follow-up) Clean Cypress plugin dist on rebuild to prevent stale sourcemaps 2026-03-20 15:16:28 +00:00
tsconfig.json
…
yarn.lock Bug 41587: (follow-up) Fix js-yaml version conflict with resolutions override 2026-03-20 09:04:21 +00:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit https://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

https://koha-community.org/

Koha Logo