Bugzilla – Attachment 185627 Details for
Bug 16631
Show groups/categories of reports to authorized staff
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16631: [DO NOT PUSH] Add schema files for reports_branches and adjust saved_sql table
0001-Bug-16631-DO-NOT-PUSH-Add-schema-files-for-reports_b.patch (text/plain), 12.77 KB, created by
Casey Conlin
on 2025-08-21 13:49:48 UTC
(
hide
)
Description:
Bug 16631: [DO NOT PUSH] Add schema files for reports_branches and adjust saved_sql table
Filename:
MIME Type:
Creator:
Casey Conlin
Created:
2025-08-21 13:49:48 UTC
Size:
12.77 KB
patch
obsolete
>From 2a254825a26b3a03e7ef7d0432f73765bb60ba3e Mon Sep 17 00:00:00 2001 >From: "Cameron E. Tidd" <ctidd@citlink.net> >Date: Sat, 26 Jul 2025 02:02:50 +0000 >Subject: [PATCH 1/2] Bug 16631: [DO NOT PUSH] Add schema files for > reports_branches and adjust saved_sql table >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This patch adds the reports_branches table to enforce library limits for reports, and adjusts the saved_sql table to point to reports_branches. > >Sponsored by: Ramapo Catskill Library System > >Test plan: >Confirm Initial Settings >1. Log in to Koha staff with un: koha pw: koha and set your library as Centerville if itâs not already. >2. Visit the Saved reports. >3. Three (3) previously created reports should be visible. > >Verify Patch Settings >4. Apply the patch, then Restart services. >5. Go to the System Preferences page (Click the More dropdown from the top nav bar, click Administration, click System Preferences). >6. Verify Reports is an option in the left side navigation bar, and that when clicked, you see the EnableFilteringReports option. >7. Enable EnableFilteringReports as described in step 6. >8. Go back to Saved reports as in Step 2. >9. Click Edit in the row menu for Report 1. >10. At the bottom of the Report 1 edit page, you should see a Library limitation select box. > >Verify the Library Limitation Settings are Persisted >11. Choose Centerville from the select box and click Update SQL. >12. Reload the page, or navigate away from the page and go back to the edit screen for Report 1. >13. Verify that Centerville is still in the Library limitation select box. >14. Add Fairfield in the Library limitation select box and click Update and run SQL. >15. Go back to editing Report 1. >16. Confirm the Library limitation select box has both Centerville and Fairfield selected. >17. Duplicate Report 1. >18. Confirm the Library limitation select box has both Centerville and Fairfield selected. >19. Click Save Report. >20. Confirm the Library limitation select box has both Centerville and Fairfield selected. > >Verify Reports are Filtered Based on Library Limitations >21. Go to Saved reports as in Step 2. >22. Click Edit for Report 2. >23. Add Fairfield in the Library limitation select box as the only choice and click Update and run SQL. >24. Go to Saved reports as in Step 2. >25. Confirm you do not see Report 2, and only Report 1 and Report 3. >26. In the upper right corner, click the drop down that says koha Centerville and click Set library to change your library. >27. Set your library to Fairfield. >28. Go to Saved reports as in Step 2. >29. Confirm you do not see Report 1, and only Report 2 and Report 3. > >Verify Disabling EnableFilteringReports Preference Shows All Reports >30. Disable EnableFilteringReports preference as in steps 5 to 7. >31. Go to Saved reports as in Step 2. >32. Confirm Report 1, Report 2, Report 3 are visible. >33. Click to edit Report 1 and verify there is no Library limitation select box. > >Verify Library limitations are Persisted When EnableFilteringReports is Toggled On or Off >34. Enable EnableFilteringReports preference as in steps 5 to 7. >35. Ensure your library is set to Fairfield as in step 26. >36. Go to Saved reports as in Step 2. >37. Confirm Report 1 is not visible, and Report 2 and Report 3 are visible. >38. Click to edit Report 2 and verify the Library limitation select box is at the bottom of the page and that it has Fairfield selected. > >Verify the Show all reports option shows all reports for the superlibrarian user >39. On the Saved reports page, click the checkbox so the Show all reports option is checked and click the Apply button. >40. Confirm the page reloads with all reports visible: Report 1, Report 2, and Report 3 should be visible. >41. Click the checkbox so the Show all reports option is unchecked and click the Apply button. >42. Confirm Report 1 is not visible, and Report 2 and Report 3 are visible. > >Verify the Show all reports and Limit reports options are available to users that are not superlibrarian but have the Manage Report Filters permission >43. Log out of the koha admin account. In the upper right corner, click the drop down that says koha Fairfield and click Log out. >44. Log in as a previously created staff user with report permissions. At the login screen use username staffWithPermission and password Password1 >45. Confirm the staff userâs library is Circleville in the upper right corner of the screen. >46. Go to Saved reports as in Step 2. >47. Confirm the checkbox for the Show all reports option is visible. >48. Click to edit Report 1. >49. Verify there is a Library limitation select box and that it can be edited. > >Verify the Show all reports and Limit reports options are not available to users that are not superlibrarian and do not have the Manage Report Filters permission >50. Log out of the koha admin account. In the upper right corner, click the drop down that says koha Circleville and click Log out. >51. Log in as a previously created staff user without report permissions. At the login screen use username staffNoPermission and password Password2 >52. Confirm the staff userâs library is Fairfield in the upper right corner of the screen. >53. Go to Saved reports as in Step 2. >54. Confirm the checkbox for the Show all reports option is not visible. >55. Confirm Report 1 is not visible, and Report 2 and Report 3 are visible. >56. Click to edit Report 2. >57. Verify there is no Library limitation select box at the bottom of the page. > >Run Unit Tests >58. Using Koha Testing Docker, in the Koha home directory run the command: ktd --shell to start the ktd shell. >59. Run command: reset_all to drop and recreate the koha database. >60. Run command prove t/db_dependent/Koha/Reports.t to run the test. >61. The new unit tests for the reports_branches tables are in this file. >62. All tests should pass. >63. Run command prove t/Koha/Auth/Permissions.t >64. Permissions unit tests in this file were updated. >65. All tests should pass > >Signoff >66. Sign off if the steps above checkout. >--- > Koha/Schema/Result/ReportsBranch.pm | 86 ++++++++++++++ > Koha/Schema/Result/SavedSql.pm | 220 ++++++++++++++++++++++++++++++++++++ > 2 files changed, 306 insertions(+) > create mode 100644 Koha/Schema/Result/ReportsBranch.pm > >diff --git a/Koha/Schema/Result/ReportsBranch.pm b/Koha/Schema/Result/ReportsBranch.pm >new file mode 100644 >index 0000000000..80472a5ff1 >--- /dev/null >+++ b/Koha/Schema/Result/ReportsBranch.pm >@@ -0,0 +1,86 @@ >+use utf8; >+ >+package Koha::Schema::Result::ReportsBranch; >+ >+# Created by DBIx::Class::Schema::Loader >+# DO NOT MODIFY THE FIRST PART OF THIS FILE >+ >+=head1 NAME >+ >+Koha::Schema::Result::ItemtypesBranch >+ >+=cut >+ >+use strict; >+use warnings; >+ >+use base 'DBIx::Class::Core'; >+ >+=head1 TABLE: C<itemtypes_branches> >+ >+=cut >+ >+__PACKAGE__->table("reports_branches"); >+ >+=head1 ACCESSORS >+ >+=head2 report_id >+ >+ data_type: 'varchar' >+ is_foreign_key: 1 >+ is_nullable: 1 >+ size: 80 >+ >+=head2 branchcode >+ >+ data_type: 'varchar' >+ is_foreign_key: 1 >+ is_nullable: 0 >+ size: 10 >+ >+=cut >+ >+__PACKAGE__->add_columns( >+ "report_id", >+ { data_type => "varchar", is_foreign_key => 1, is_nullable => 1, size => 80 }, >+ "branchcode", >+ { data_type => "varchar", is_foreign_key => 1, is_nullable => 0, size => 10 }, >+); >+ >+=head1 RELATIONS >+ >+=head2 branchcode >+ >+Type: belongs_to >+ >+Related object: L<Koha::Schema::Result::Branch> >+ >+=cut >+ >+__PACKAGE__->belongs_to( >+ "branchcode", >+ "Koha::Schema::Result::Branch", >+ { branchcode => "branchcode" }, >+ { is_deferrable => 1, on_delete => "CASCADE", on_update => "RESTRICT" }, >+); >+ >+=head2 itemtype >+ >+Type: belongs_to >+ >+Related object: L<Koha::Schema::Result::Itemtype> >+ >+=cut >+ >+__PACKAGE__->belongs_to( >+ "report_id", >+ "Koha::Schema::Result::Report", >+ { report_id => "report_id" }, >+ { is_deferrable => 1, on_delete => "CASCADE", on_update => "RESTRICT" }, >+); >+ >+# Created by DBIx::Class::Schema::Loader v0.07048 @ 2019-07-04 04:56:48 >+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:cBTswjKV8VWN1iueB+PygQ >+ >+# You can replace this text with custom code or comments, and it will be preserved on regeneration >+1; >diff --git a/Koha/Schema/Result/SavedSql.pm b/Koha/Schema/Result/SavedSql.pm >index 6f75ae3b31..88d54b52ef 100644 >--- a/Koha/Schema/Result/SavedSql.pm >+++ b/Koha/Schema/Result/SavedSql.pm >@@ -185,6 +185,221 @@ __PACKAGE__->add_columns( > > __PACKAGE__->set_primary_key("id"); > >+=head1 RELATIONS >+ >+=head2 reports_branches >+ >+Type: has_many >+ >+Related object: L<Koha::Schema::Result::ReportsBranch> >+ >+=cut >+ >+__PACKAGE__->has_many( >+ "reports_branches", >+ "Koha::Schema::Result::ReportsBranch", >+ { "foreign.report_id" => "self.id" }, >+ { cascade_copy => 0, cascade_delete => 0 }, >+); >+ >+ >+# Created by DBIx::Class::Schema::Loader v0.07051 @ 2025-07-26 01:58:59 >+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:w7XKvOV/ylS6Dq8tsUNmSg >+# These lines were loaded from '/kohadevbox/koha/Koha/Schema/Result/SavedSql.pm' found in @INC. >+# They are now part of the custom portion of this file >+# for you to hand-edit. If you do not either delete >+# this section or remove that file from @INC, this section >+# will be repeated redundantly when you re-create this >+# file again via Loader! See skip_load_external to disable >+# this feature. >+ >+use utf8; >+package Koha::Schema::Result::SavedSql; >+ >+# Created by DBIx::Class::Schema::Loader >+# DO NOT MODIFY THE FIRST PART OF THIS FILE >+ >+=head1 NAME >+ >+Koha::Schema::Result::SavedSql >+ >+=cut >+ >+use strict; >+use warnings; >+ >+use base 'DBIx::Class::Core'; >+ >+=head1 TABLE: C<saved_sql> >+ >+=cut >+ >+__PACKAGE__->table("saved_sql"); >+ >+=head1 ACCESSORS >+ >+=head2 id >+ >+ data_type: 'integer' >+ is_auto_increment: 1 >+ is_nullable: 0 >+ >+unique id and primary key assigned by Koha >+ >+=head2 borrowernumber >+ >+ data_type: 'integer' >+ is_nullable: 1 >+ >+the staff member who created this report (borrowers.borrowernumber) >+ >+=head2 date_created >+ >+ data_type: 'datetime' >+ datetime_undef_if_invalid: 1 >+ is_nullable: 1 >+ >+the date this report was created >+ >+=head2 last_modified >+ >+ data_type: 'datetime' >+ datetime_undef_if_invalid: 1 >+ is_nullable: 1 >+ >+the date this report was last edited >+ >+=head2 savedsql >+ >+ data_type: 'mediumtext' >+ is_nullable: 1 >+ >+the SQL for this report >+ >+=head2 last_run >+ >+ data_type: 'datetime' >+ datetime_undef_if_invalid: 1 >+ is_nullable: 1 >+ >+=head2 report_name >+ >+ data_type: 'varchar' >+ default_value: (empty string) >+ is_nullable: 0 >+ size: 255 >+ >+the name of this report >+ >+=head2 type >+ >+ data_type: 'varchar' >+ is_nullable: 1 >+ size: 255 >+ >+always 1 for tabular >+ >+=head2 notes >+ >+ data_type: 'mediumtext' >+ is_nullable: 1 >+ >+the notes or description given to this report >+ >+=head2 cache_expiry >+ >+ data_type: 'integer' >+ default_value: 300 >+ is_nullable: 0 >+ >+=head2 public >+ >+ data_type: 'tinyint' >+ default_value: 0 >+ is_nullable: 0 >+ >+=head2 report_area >+ >+ data_type: 'varchar' >+ is_nullable: 1 >+ size: 6 >+ >+=head2 report_group >+ >+ data_type: 'varchar' >+ is_nullable: 1 >+ size: 80 >+ >+=head2 report_subgroup >+ >+ data_type: 'varchar' >+ is_nullable: 1 >+ size: 80 >+ >+=head2 mana_id >+ >+ data_type: 'integer' >+ is_nullable: 1 >+ >+=cut >+ >+__PACKAGE__->add_columns( >+ "id", >+ { data_type => "integer", is_auto_increment => 1, is_nullable => 0 }, >+ "borrowernumber", >+ { data_type => "integer", is_nullable => 1 }, >+ "date_created", >+ { >+ data_type => "datetime", >+ datetime_undef_if_invalid => 1, >+ is_nullable => 1, >+ }, >+ "last_modified", >+ { >+ data_type => "datetime", >+ datetime_undef_if_invalid => 1, >+ is_nullable => 1, >+ }, >+ "savedsql", >+ { data_type => "mediumtext", is_nullable => 1 }, >+ "last_run", >+ { >+ data_type => "datetime", >+ datetime_undef_if_invalid => 1, >+ is_nullable => 1, >+ }, >+ "report_name", >+ { data_type => "varchar", default_value => "", is_nullable => 0, size => 255 }, >+ "type", >+ { data_type => "varchar", is_nullable => 1, size => 255 }, >+ "notes", >+ { data_type => "mediumtext", is_nullable => 1 }, >+ "cache_expiry", >+ { data_type => "integer", default_value => 300, is_nullable => 0 }, >+ "public", >+ { data_type => "tinyint", default_value => 0, is_nullable => 0 }, >+ "report_area", >+ { data_type => "varchar", is_nullable => 1, size => 6 }, >+ "report_group", >+ { data_type => "varchar", is_nullable => 1, size => 80 }, >+ "report_subgroup", >+ { data_type => "varchar", is_nullable => 1, size => 80 }, >+ "mana_id", >+ { data_type => "integer", is_nullable => 1 }, >+); >+ >+=head1 PRIMARY KEY >+ >+=over 4 >+ >+=item * L</id> >+ >+=back >+ >+=cut >+ >+__PACKAGE__->set_primary_key("id"); >+ > > # Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-21 13:39:29 > # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:198dNG9DGQzop+s5IHy7sw >@@ -214,3 +429,8 @@ sub koha_objects_class { > } > > 1; >+# End of lines loaded from '/kohadevbox/koha/Koha/Schema/Result/SavedSql.pm' >+ >+ >+# You can replace this text with custom code or comments, and it will be preserved on regeneration >+1; >-- >2.15.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16631
:
184422
|
184508
|
184509
|
184510
|
184511
|
184512
|
184513
|
184514
|
184515
|
184516
|
184517
|
184518
|
184519
|
184520
|
184521
|
184522
|
184525
|
184526
|
184657
|
184674
|
184686
|
184687
|
184688
|
184689
|
184690
|
184691
|
184692
|
184693
|
184694
|
184695
|
184845
|
184846
|
184847
|
184848
|
184859
|
184861
| 185627 |
185628