This patch removes the older PatronLastActivity preference opting to
replace it by the new PatronLastActivityTriggers preference. The feature
can now be disabled by simply not selecting any triggers
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates the terminology on the cleanborrowers form to reflect
that 'activity' and not just 'connectivity' is tracked by
TrackLastPatronActivity.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This just updates 'Login to OPAC' to 'Login'.. we should squash this
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new syspref TrackLastPatronActivityTriggers to determine which actions should update borrowers.lastseen
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
adds the same feature to Authority Search as in the "normal" Z39.50 search, to display
arbitrary marc fields in the search results
1. apply patch
2. go to System preferences->Authorities preferences
3. the new option "AdditionalFieldsInZ3950ResultAuthSearch" shows up
4. enter the additional field numbers you want to see eg '001'
5. make an "Authority" search via Z39.50
6. the new new column "Additional fields" will display
7. sign off ;-)
Sponsored-by: Steiermärkische Landesbibliothek
Signed-off-by: Laura Escamilla <laura.escamilla@bywatersolutions.com>
Signed-off-by: Clemens Tubach <clemens.tubach@kit.edu>
Bug 28166: Removed comments and _add_rowdata
Bug 28166: (follow-up) Restore custom fields for biblios
To test:
1 - Add "245$a" to AdditionalFieldsInZ3950ResultSearch preference
2 - Cataloging -> new from z3950
3 - Search and see results have 'additional fields' including the title
4 - Apply other patches
5 - Restart all
6 - Repeat Z39 Additional fields are now blank
7 - Apply thi patch, restart all
8 - Repeat Z39 search. Additional fields are restored
Bug 28166: (QA follow-up) Fix rebase issue
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The OPAC advanced search fields need aria-labels to assist with screen reading. This patch adds labels to both the dropdown selects and the text inputs
Signed-off-by: joubu <xxx@example.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch corrects the markup of the item groups table which is found
under the "Item groups" tab on the bibliographip detail page in the
staff interface.
The patch also adds the "NoSort" class to the "actions" column to
prevent it from being sortable.
To test, apply the patch and make sure the "EnableItemGroups" system
preference is enabled.
- In the staff interface, locate a record with items and view the detail
page.
- Under the "Item groups" tab confirm that the table looks correct: The
heading labels should be centered bold text.
- You should see sorting indicators on the "Display order" and "Description"
headings but not on the last one.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch label creator templates so that title tags can be more easily
translated.
The patch also makes some minor changes to some templates to improve
consistency between page title, breadcrumb navigation, and page heading.
To test, apply the patch and confirm that the following pages have the
correct title tags:
- Cataloging -> Label creator home
- Manage -> Label batches
- Edit ->
- Click the "Add item(s)" button without entering any barcodes or
item numbers in the form.
- Test the search form and search results
- Manage -> Layouts
- Manage -> Label templates
- Manage -> Printer profiles
- New -> Label batch
- New -> Layout
- New -> Label template
- New -> Printer profile
- New -> Barcode range
- Cataloging -> Barcode image generator
- Cataloging -> Quick spine label creator
Signed-off-by: Salah Ghedda <salah.ghedda@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
0. Add budgets, vendors and baskets to acquisitions, if necessary
1. Go to Acquisitions
2. Click 'Search' next to the vendor search box
3. If you don't already have an open basket, create one by clicking New
> Basket
4. Click 'Add to basket'
5. Click 'From an external source'
6. Search for a title or author (I searched for Shakespeare in the
author field on the Library of Congress server)
7. To the right of a record (with a title) Click the arrow next to the
MARC button and choose Order
--> Notice that in the 'Catalog details' section, all labels are
followed by a colon except 'Title'
8. Apply the patch and refresh the page. Notice that ’Title’ now has a
colon.
9. Sign off and have a great day!
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Kelly <kelly@bywatersolutions.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds comments to the template to highlight the markup
structure.
This patch should have no effect on the page's appearance or
functionality.
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch reindents the staff interface catalog search results facets
template so that it has consistent indentation. These changes should
have no visible effect on the page.
To test, apply the patch and perform a catalog search in the staff
interface.The facets should look the same as always.
Viewing the diff while ignoring whitespace changes should show only
places where a line break was added.
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch removes the use of event attributes from the self checkout
and self check-in templates. These events are defined now along with the
other in-page JS.
To test you must have SelfCheckInModule and WebBasedSelfCheck
preferences enabled. And SelfCheckoutByLogin = cardnumber.
- Navigate to the self checkout interface
(/cgi-bin/koha/sco/sco-main.pl).
- When the page loads, cursor focus should be automatically placed in
the barcode field.
- Test the "munge history" feature from Bug 10016:
[1] Start a web-based self-check session.
[2] Enter a patron barcode.
[3] Allow the self-check session to time out.
[4] Use the back button. You should get the patron barcode
entry form; you should not be prompted to resubmit form input.
[5] Enter a patron barcode, perform some transactions, then
use the finish button.
[6] Next, use the back button. You should get the patron barcode
entry form.
- Test the updated checkout_confirm function by submitting the "magic"
barcode for checkout: __KOHA_NEW_CIRC__. The user's session should be
ended.
- Navigate to the self check-in interface
(/cgi-bin/koha/sco/sci-main.pl).
- Test the cursor focus and "munge history" feature on this page too.
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch modifies the item search results page so that user selections
are stored in local storage. This allows the user to make selections on
one page of search results, move to another, and continue to make
selections.
The patch also adds the option to send selected items to batch item
modification or batch item deletion.
Changes to the patron search results template have been made to make
some CSS classes more generic so they can be used by both pages.
To test, apply the patch and rebuild the staff interface CSS.
- Log in to the staff interface as a user with permission to perform
batch item modification and batch item deletion.
- Go to item search and perform a search which will return at
least two pages of results.
- On the search results page you should see a new search header
toolbar with some controls: "Select visible rows," "Clear
selection," "Export all results to" and "Batch operations"
(disabled).
- Without making any selections, confirm that the "Export all results
to" menu items work correctly to export all results to a CSV or a
barcode file.
- Confirm that the "Select visible rows" control works as expected,
selecting all checkboxes on the current page (and on no other pages)
- After selecting all checkboxes the search header controls should be
updated:
- The "Export all..." button should now show the number of
selections: "Export selected results (X) to..."
- The batch operations button should be enabled.
- There should be a new element labeled "Items selected: X" with a
"Clear" link.
- If you uncheck any checkboxes the controls should be updated,
showing the new count of selected records.
- Move to the next page of results and confirm that making selections
on this page works to increment all counters
- Confirm that the "Export selected.." options work and that your CSV
and barcode files now contain only the items you selected.
- Test the batch operations menu:
- Test that the controls correctly reflect the logged-in user's
permissions:
- With permission to batch modify items
- With permission to batch delete items
- With both; with neither
- Both menu options should take you to the correct page and the
list of submitted items should match your selections.
- Test that clicking the "Clear" button next to "Items selected" hides
the items selected box and reverts the "Export all" and "Batch
operations" buttons to their original state.
- Page through the search results to confirm that no checkboxes are
checked.
- Test that your search selections are really persistent:
- Navigate away from the page, return to item search, and perform
another search.
- The "Item selected" box should still show your previous
selections.
- Any items you previously selected which are also in this result
set should have a checked checkbox.
- Click the "Edit search" button from the item search results page
and new search with different parameters.
- The "Items selected" should still show your previous selections.
- Log out of Koha and back in. When you perform an item search now,
there should be no "Item selected"
- Go to Patrons and test patron searching. As you make selections the
"Patrons selected" box should be updated correctly and look correct,
matching the one on the item search page.
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Exactly like Bug 34251 for biblios :
When using the an authorities framework with all fields in the same tab, there is thrown a JS error in selectTab( "#tab0XX_panel" );
This is because no nav tabs are build in authorities/authorities.tt as BIG_LOOP has a length(size) of 1
Test plan :
1) Edit an authority framework, for example 'Meeting Name', to set all sufields in tab 0
You may use SQL : UPDATE auth_subfield_structure SET tab=0 WHERE authtypecode='MEETI_NAME'
Don't forget to restart memcached
2) Go to 'Authorities'
3) Click on 'New authority' then 'Meeting Name'
4) Check you don't see any JavaScript error
5) Check you can save
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Bug 35110: (follow-up) Fix comment in addbiblio.tt
Change comment in addbiblio.tt since any biblio framework may use only
one tab.
Also fixes indenting using 4 spaces.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: squashed because follow-up fixes code introduced by the same
author.
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Somewhere (perhaps after bug 29012) this feature has been broken
somehow.
The fact that we have two inputs for the date and the active one
is one level deeper, requires a few adjustments in the jquery
selectors etc. (Note that two Required lines were visible too.)
The corrected jquery constructs become a bit complexer now.
Test plan:
Enable AllowHoldDateInFuture + OPACAllowHoldDateInFuture.
Set circ rule for book to test with allows item level holds.
Set OPACMandatoryHoldDates to no hold dates.
Place hold on a book in OPAC. Check that More options is collapsed.
(If you force item level holds, it will open.)
Set OPACMandatoryHoldDates to Hold start date.
Refresh place hold page. More options is expanded now.
Click Place hold. You should see an alert and focus goes to start date.
Set OPACMandatoryHoldDates to Hold end date. Repeat place hold.
Set OPACMandatoryHoldDates to Both hold dates. Fill one. Place hold.
Bonus: Place hold on multiple biblios. Repeat former steps.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
I add a CSRF token as a parameter in the link for deleting a news
entry, which solves the problem.
TEST PLAN
1) Apply the patch
2) Go to "Tools > News > New entry"
3) "Display location" should be set to "Staff interface"
4) Fill in the fields
5) Return to the homepage
6) Delete the created news entry
7) The "Additional contents" page is displayed, and the deleted news
entry no longer appears
8) Return to the homepage; the news entry no longer displays
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Edit: adapted the template change to latest master inline
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1. In KTD use grep -rn --exclude=*.po "datexpiry" *
2. Notice that the four locations below are showing the typo:
1. git add koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt
2. git add misc/release_notes/release_notes_18_05_00.html
3. git add misc/release_notes/release_notes_18_05_00.md
4. git add t/db_dependent/Koha/Patrons/Import.t
3. Apply patch. Repeat step 1.
4. Notice that no results show. All instances of the typo have been fixed to dateexpiry.
5. Sign off and have a great day :)
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This updates the information messages that are displayed in Staff, OPAC and SCO
regarding renewals and if the item is up for automatic renewal or not.
Add issues.auto_renew to svc/checkouts endpoint response
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Currently the system preference intranetreadinghistory determines visibility of both circulation history and holds history tabs in the patron record. It would be helpful to allow the option of setting each of those independently.
Specifically, libraries have requested the option of being able to view the holds history in a patron record without having to enable viewing of the circulation history.
Test Plan:
1) Apply this patch
2) Restart all the things!
3) Run updatadatabase.pl
4) Verify the new syspref intranetReadingHistoryHolds has the same value
as the existing syspref intranetreadinghistory
5) Disable intranetreadinghistory, enable intranetReadingHistoryHolds
6) Verify you can view a patron's holds history but not reading history
Signed-off-by: Sam Lau <samalau@gmail.com>
JD amended patch:
* renamed syspref intranetReadingHistoryHolds => IntranetReadingHistoryHolds
* tidy
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Sometimes it's really helpful to see all orders for a basket, a
vendor or a standing order, including the cancelled ones.
Currently this is not possible, as we have search options for
every single status and one for "any except cancelled",
but no "Any status" option.
This patch adds the "Any status" option. The sometimes
appearing empty entry is updated to "Any status except cancelled"
as this is what it does.
Testing data:
* Requires multiple order lines with different order status
* Must include at least one order line with status 'cancelled'
To test:
* Go to acquisitions
* Open the advanced search page from the top search options:
Order search > config icon > Advanced search link
* Verify the status pull down looks as described above
* Apply patch
* Verify there is now an "Any status" option in the pull down
* Try searches for different status, including "Any status"
* Verify the results are as expected
* Create a new basket
* Create an order line by 'From an existing order (copy)'
* Verify the search form there also works as expected
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch renames the table in the columns configuration to match the id
used in the templates
It also adds a section for the moremember table to alllow config of each page as we do for issues
Lastly we add the table controls as they exist on the issues tables
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates the holds table on circulation and moremembers to use
table settings and hides the note column by default to preserve existing views
To test:
1 - Apply patch
2 - Enable system preferece 'OpacHoldNotes'
3 - Place a hold on the opac and enter a note
4 - Confirm it shows on the patron's page
5 - View the patron in staff client
6 - Ensure the holds note does not display on Holds tab in Checkout or Details view
7 - Go to Admin->Table settings->Circulation
8 - Under holds_table confirm 'notes' is hidden by default
9 - Uncheck the box
10 - Refresh patron pages and confirm hold note shows
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds the holds notes to the patron's account holds list
1 - Ensure system preference 'OpacHoldNotes' is enabled
2 - Place a hold on the OPAC and add a note
3 - Confirm the note displays on the Summary page Holds tab of 'Your account'
4 - In staff client, disable system preference 'OpacHoldNotes'
5 - View Holds on patron's account in opac
6 - Confirm the note no longer shows
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds the reservenotes column to svc holds, and ensures they display on
circulation and memeber details
To test:
1 - Enable system preference 'OpacHoldNotes'
2 - Place a hold for a ptron via the OPAC
3 - View the patron in the staff client
4 - Click on the 'Holds' tab
5 - Ensure you can see the hold note
6 - Click on the 'Circulation' tab on the left
7 - Click the 'Holds' tab and confirm you can view the note
Signed-off-by: Andrew Fuerste-Henry <andrewfh@dubcolib.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds the option to add titles to the cart or a list from the
view of a list's contents.
To test you should have at least one public list with titles added.
Apply the patch and go to the OPAC.
- View a public list.
- In the toolbar at the top of the table of titles you should see "Add
to cart" and "Add to list." The controls should be disabled.
- Check checkboxes for one or more titles on the list.
- The controls should now be enabled.
- Clicking the "Add to cart" button should add the selected titles to
the cart.
- If you are not logged into the OPAC, clicking the "Add to list" button
should trigger an alert, "You must be logged in..."
- Log in to the OPAC and view the list again.
- Confirm that the "Add to list" control should trigger a popup allowing
you to add your selected titles to an existing or a new list.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
No test plan.
Read the patch.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch does the following:
[1] Go back to four statuses: Cancelled, Filled, Waiting or Placed.
Placed is used as collective name for all other statuses: pending
(placed), processing (found==P) or transit (found==T). Placed before
anyway.
[2] Allow translation of these statuses in the template. Remove the sub
reservestatushuman.
[3] The output of changeifreservestatus is considerably shorter and less
ugly in the constructed sql statement.
Test plan:
[1] Use reservestatus as row, as column and only as filter (clicking few
statuses).
[2] Verify that the shown statistics meet your expectations.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a note and a link to the EnableItemGroups system
preference from the description of EnableItemGroupHolds.
To test:
1. Apply patch
2. Go to Administration > System preference
3. Search for EnableItemGroup
4. Read the description of EnableItemGroupHolds, make sure the grammar
and spelling are OK.
5. Click the link, it should bring you to EnableItemGroups
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
No real need anymore for showing a Default and Current language link.
They could be made with the language parameter (not lang), but just
changing the language allows you to test easily.
Would you really like to see Default when you added content for all
enabled languages? You can still add language=default to the URL.
Test plan:
Test the page URLs. Experiment with changing language in the regular
way and via URL parameter.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
In the design of additional contents the idea of a parent-child relation is implicitly present. You have a default page and translations.
But we do this in one table coming from the old news items.
Several reports show that we would be better off creating a parent table listing the main news items, CMS pages or HTML content. And a child table containing the title, content and lang.
Note that this first step is a prelimenary step to clean this area and make it more robust and extensible. More enhancements to come.
What is this patchset doing?
* DB changes
- Rename additional_contents.idnew with id
- Create a new table additional_contents_localizations(id, additional_content_id, title, content, lang) that will contain the translated contents
- Move the content to this new table
- Remove title, content and lang columns from additional_contents
- Replace the notice templates that are using ''<news>" (should only be ISSUESLIP) and remove support for this syntax. Also add a warning in case other occurrences of uses of the old syntax exist.
* CRUD
- We add a new Koha::AdditionalContentsLocalization[s] couple, and move some logic from Koha::AdditionalContent[s] to there. Note that, to prevent too much drastic changes in notice templates, and to make them easy to use, the different attributes of the content object is accessible from the translated content object (ie. Koha::AdditionalContentsLocatlization->library is available and return $self->additional_content->library). I think it's an elegant way to keep things simple.
- No changes expected for "NewsLog" logging
- Little behaviour changes for pages, see tools/page.pl changes. We are now passing the id of the content, and the desired language, instead of the mix of "page_id" or code and lang. Note that here we certainly need to rename "language" query param to not change the full interface language.
Test plan:
0. Preparation steps, use master
a. Create notice templates that are using "<< additional_contents.code >>". This won't be replaced, but we want the update process to alert us.
b. Create several news, additional contents, pages. Some with translated contents, some without.
c. Make sure ISSUESLIP has the "<news>" section. If you are using the sample data there is nothing to do here
d. Turn on NewsLogs
1. Apply the patches, restart_all, updatedatabase
=> Confirm that the new table is created and filled with the contents you had prior to the update
=> Confirm that additional_contents_localizations.updated_on has been kept to the previous values
=> Confirm that ISSUESLIP has been replaced properly
=> Confirm that you get a warning about the additional_contents
2. Create, update, delete news, html customs, pages
=> Confirm that the additional_contents_localizations.updated_on is only adjusted when required
=> Confirm that the logs are correctly created when NewsLogs is on
3. Check some items out, generate a slip
=> Confirm that the news are displayed at the bottom of the slip, and that the publication date is correctly formatted
4. Have several HTML customizations (like OpacNav, opacheader), in translated in different languages
=> Confirm that the default values is displayed when you are using the interface in a language without translation
=> Confirm that the translated version is picked when it exists
Notes for QA:
* I am not sure we really need the alert during the update DB process about the additional_contents leftover. We should not have them outside of ISSUESLIP.
Shouldn't it hurt?
* There is something ugly in sample_news.yml, the id is hardcoded. But how do we prevent that and keep translatability?
Sponsored-by: Rijksmuseum, Netherlands
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates the vendor edit form so that phone, email, and url
fields have an input type corresponding to the field's content.
To test, apply the patch and go to Acquisitions.
- Create or edit a vendor.
- In the form, check that each field looks correct:
- Company details ->
- Phone
- Fax
- Website
- Contact details
- Phone
- Alternative phone
- Fax
- Email
- Interfaces
- URI
- Account email
In a desktop browser the inputs won't display any differently, but if
you test the patch in a sandbox you can try it in a mobile device
browser to confirm that the onscreen keyboard changes based on the type
of input.
Signed-off-by: Émily-Rose Francoeur <emily-rose.francoeur@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lisette Scheer <lisette.scheer@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1. Apply patch, restart_all
2. Check some items out and prepare some reasons that would initiate a branchtransfer. According the schema it can be any of the following: 'Manual', 'StockrotationAdvance', 'StockrotationRepatriation', 'ReturnToHome', 'ReturnToHolding', 'RotatingCollection', 'Reserve', 'LostReserve', 'CancelReserve', 'TransferCancellation', 'Recall', 'RecallCancellation.
3. CHeck in some the items and notice the 'Transfer reason' column in the table. Make sure the reasons are acurate and make sense.
4. To go Table settings and find the 'checkedintable'. Make sure you can properly hide the column from the display.
Signed-off-by: AndrewA <andrew.auld@ptfs-europe.com>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch modifies the late orders page so that the table of
information contains a column for basket creation date. This will allow
administrators to configure the table to sort by default on basket
creation date if they wish.
To test, apply the patch and restart services.
- Go to Acquisitions -> Late orders.
- The table of late orders should include a column labeled "Basket date"
showing the basket creation date.
- The dates should be formatted correctly and the column should sort
correctly.
- Go to Administration -> Table settings and navigate to the settings
for the lateorders page.
- Try changing various settings for the table to confirm that everything
works correctly, including setting the default sort to use the basket
date column.
Signed-off-by: Emmi Takkinen <emmi.takkinen@koha-suomi.fi>
Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1 - Enable the advanced cataloging editor
2 - Edit record 369 in the advanced cataloging editor
3 - On load, get a notice that there were issues and to check logs
4 - Save record
5 - Close and reopen in editor
6 - Confirm warning is gone
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds an eval to the call for the record form metadata
If there is an error we catch it, display it, and attempt to strip bad characters from the record
To test:
1 - In koha testing docker attempt to view record 369 in the staff interface
2 - You see a warning about degraded view
3 - Attempt to edit the record
4 - Internal server error
5 - Apply patch, restart all
6 - Reload the editor
7 - Record successfully loads!
8 - You have a warning about encoding issues!
9 - Save the record
10 - No more warning!
11 - Edit again, no more warning!
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Install an ILL availability plugin (e.g. pubmed):
https://github.com/PTFS-Europe/koha-plugin-api-pubmed/releases/tag/1.1.1
3) restart plack:
koha-plack --restart kohadev
4) Create a new ILL batch, visit:
/cgi-bin/koha/ill/ill-requests.pl
5) Click '+New ILL requests batch'
6) Input a name, '42' on the cardnumber and pick a library. Click 'Continue'.
7) On the identifiers textarea, insert '123' and click 'Process identifiers'
8) After the metadata has been retrieved, click the bottom 'Add items to batch' button, click 'Finish and view batch'
10) Go back to ILL requests table, visit:
/cgi-bin/koha/ill/ill-requests.pl
11) On the top right of the table, click 'Columns' and enable Batch
12) Notice the batch column now shows correctly and is clickable
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The JavaScript in both OPAC and staff interface for submitting catalog
concerns contains English strings which are not properly wrapped with
the __() function to allow for translation. This patch fixes both
affected files.
The patch also modifies the dialog classes used in the staff interface
so that the messages are styled consistently.
To test, apply the patch and update a translation, e.g. fr-FR:
- perl misc/translator/translate update fr-FR
- Edit the updated po file for the language you chose, e.g.
misc/translator/po/fr-FR-messages-js.po, to fill in translated
strings for the two catalog concern entries. For example:
koha-tmpl/intranet-tmpl/prog/js/modals/add_catalog_concern.js:38
koha-tmpl/opac-tmpl/bootstrap/js/modals/catalog_concern.js:55
msgid "Your concern was sucessfully submitted."
msgstr ""
- Install the updated po file:
- perl misc/translator/translate install fr-FR
- Enable the translation if necessary under Administration -> System
preferences -> language.
- Enable the "opaclanguagesdisplay" preference if necessary.
- Enable the " CatalogConcerns" preference if necessary.
- Locate a bibliographic record in the staff interface and view the
detail page
- From the toolbar, choose New -> New catalog concern.
- Test submitting the form. When the form is submitted a message
should display on the page: "Your concern was sucessfully submitted"
- Perform the same test in the OPAC, where the "Report a concern" link
is in the right-hand sidebar menu of the bibliographic detail page.
- Perform the same tests, in both OPAC and staff interface, in your
translated language to confirm that the translations show up
correctly.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
* Changes text from "Place a hold on order" to the more common "Place hold"
* Adds permission check on reserveforothers.
* We were missing table cells in the footer rows of the table.
I would have liked to hide the column for someone missing permissions,
but I failed to get the datatable configuration right with the export
and column configuration settings.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Bug 32721: (QA follow-up) Rename fields to opac*
This patch updates the field names to reflect that they're OPAC
related.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Bug 32721: (QA follow-up) Fix rebase errors
We let some superflous template params creep back in during a rebase
somewhere.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patches addresses issues raised by the QA tests. It also adds a missed import of the Branches file in the document head
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Bug 32721: (QA follow-up) Add missing imports
Missing imports added in three template files
Exec flag added to atomic update file
Tinymce imports removed
A new bug will be created to move codemirror into an inc file at latest
version
Test plan as before
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Bug 32721: Tidy up - duplicate fetching of userjs and css
Currently UserJS and UserCSS is injected into the template as a parameter through Auth.pm but is then fetched using Koha.Preference() in the template. This patch tidies this up by removing the parameters from Auth.pm
Test plan as per first commit
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch allows for branch specific userJS and userCSS to be added through the libraries table. This works in conjunction with the global UserJS and UserCSS functionality and allows for multiple OPACs with different css and js options.
Test plan:
1) Add to apache conf (/etc/apache2/sites-available/kohadev.conf)
SetEnv OPAC_BRANCH_DEFAULT "FFL"
RequestHeader add X-Koha-SetEnv "OPAC_BRANCH_DEFAULT FFL"
2) In the container, run restart_all
3) Navigate to the OPACUserJS and OPACUserCSS system preferences and add the following: OPACUserJS - console.log('Hello from global sysprefs');, OPACUserCSS - 'body { background-color: black; }'
4) Refresh the OPAC and the background should be black and the message should be logged to the console in developer tools
5) Navigate to Administration > Libraries
6) On the Fairfield branch (if this does not exist you will need to create a branch with a code matching the code that you added to the apache conf file), click edit
7) At the bottom there should be two fields to add userjs and usercss, complete with Codemirror syntax checking
8) In userjs add console.log('Hello from branch level'); and in usercss add 'body { background-color: blue; } then save
9) Return to the OPAC and refresh
10) If you are logged out of the OPAC it should now be logging both the message from global and from the branch level and the background should be blue (if not you will need to log out)
11) Log back into the OPAC using a user that DOES NOT have a default branch matching the branch you added to the Apache conf
12) The OPAC should now revert to only showing the global message in the console with a black background
Sponsored-by: PTFS Europe
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1. From BorrowerUnwantedFields Hide Gone no address flag (gonenoaddress) and Lost card flag (lost).
2. Got to memberentrygen.tt and see that Patron restrictions is now hidden
3. Apply patch, now the Patron restrictions field should not be hidden.
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
The options defined for the OpacShowSavings system preference contain
HTML: "on patron's checkout history page (the system preference
<em>opacreadinghistory</em> must be enabled)". This text ends up in an
<option> tag, and even though the form is rendered using the
multiple-select plugin the HTML still won't render and should
be removed.
To test, apply the patch and restart all.
- Go to Administration -> System preferences and search for
"OpacShowSavings"
- Check the dropdown of options on the preference. The system
preference names referred to should now be single-quoted instead of
wrapped in visible <em> tags.
- Confirm that the preference still works correctly.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan, k-t-d:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Install an ILL availability plugin (e.g. pubmed):
https://github.com/PTFS-Europe/koha-plugin-api-pubmed/releases/tag/1.1.1
3) restart plack:
koha-plack --restart kohadev
4) Create a new ILL batch, visit:
/cgi-bin/koha/ill/ill-requests.pl
5) Click '+New ILL requests batch'
6) Input a name, '42' on the cardnumber and pick a library. Click 'Continue'.
7) On the identifiers textarea, insert '123' and click 'Process identifiers'
8) After the metadata has been retrieved, click the bottom 'Add items to batch' button, click 'Finish and view batch'
9) You should now be seeing 'View ILL requests for batch <batch_name>' with the request you just added.
10) Click the request id (or the 'Manage request' button)
11) Notice you can view the request correctly, the batch it belongs to shows correctly and is clickable
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
1) Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
2) Visit /cgi-bin/koha/ill/ill-requests.pl
3) Create 'New ILL request'
4) Select the request type, input cardnumber '42' and select a library
5) Hit 'Create'
6) Notice the request now creates successfully
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
Install FreeForm and enable ILLmodule, run:
bash <(curl -s https://raw.githubusercontent.com/ammopt/koha-ill-dev/master/start-ill-dev.sh)
Visit /cgi-bin/koha/ill/ill-requests.pl
Notice the table now renders correctly
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch corrects errors raised by the new stylelint configuration in
staff-global.scss. Many of the fixes were made automatically by using
the "--fix" option:
npx stylelint koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss
--fix
Some examples of errors found:
- Expected single space after ":"
- Expected single space after "("
- Expected single space before ")"
- Expected empty line before comment
- Expected no more than 1 empty line
- Expected a trailing semicolon
Manual fixes include replacing named colors with hex codes, combining
duplicate selectors, removing empty blocks, etc.
Some warnings remain: "Unexpected !important" requires more than a
quick fix, if we should choose to address them.
To test, apply the patch and rebuild the staff interface CSS:
https://wiki.koha-community.org/wiki/Working_with_SCSS_in_the_OPAC_and_staff_client
The changes affect CSS all around the staff interface, but there should
be no visible results of the patch. Everything should look correct.
The stylelint check should return only warnings about "!important"
npx stylelint koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss
Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch updates several templates in order to clarify labels in forms
and on table columns.
To test apply the patch and go to Administration -> Authority types ->
MARC structure.
- The second column should now be labeled "Tag description."
- Click "Edit" on one of the tags.
- The description fields should now be labeled "Description in staff
interface" and "Description in OPAC."
- Return to the list of tags and choose Actions -> Subfields for one of
the tags. The second column should read "Description."
- Click "Edit" on one of the subfields.
- The description fields should now be labeled "Description in staff
interface" and "Description in OPAC."
Go to Administration -> MARC bibliographic framework -> MARC structure.
- The second column should now be labeled "Tag description."
- Click "Edit" on one of the tags.
- The description fields should now be labeled "Description in staff
interface" and "Description in OPAC."
- Return to the list of tags and choose Actions -> Subfields for one of
the tags. The second column should read "Description."
- Click "Edit" on one of the subfields.
- The description fields should now be labeled "Description in staff
interface" and "Description in OPAC."
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
It's needed since bug 34369 to POST to the syspref route
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
In case the logged in user does not have manage_sysprefs we should no
display the form in the settings.
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To retrieve the sysprefs, instead of using the svc script. See bug
33606.
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To match what has been done on bug 33169 and bug 34418.
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Adjust code to match changes done by bug 32932.
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Bug 33417 has changed how we handle the toolbars in Vue apps, this patch
is adjusting the 'Preservation' module code on top of it, but also adds
to make it more flexible (see bug 34215).
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Do not stay on the show train view.
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If a AV category is renamed or deleted, the app will freeze with
"TypeError: av_match is undefined"
To prevent that we add an check to prevent the freeze and a warning in
the settings.
We could eventually add a FK on option_source, but the idea was to let
it flexible in case we want to add another source.
This bug can be considered a configuration error anyway.
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If items with different processings are in a train, there is only the "edit" action button.
It's missing "Remove" and "Copy".
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
We want opened, closed, sent, then finally received trains.
But ordering by desc for opened, and asc for the others.
Which means the last opened will be first, but the closed, send and received will display oldest first.
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Technical notes: Ideally we would have split TrainsFormAddItem to make some part
reusable, but it turned out into a complicated component that would have
been hard to maintain. It seems easier to have two different components.
Ideas to improve this area are welcome!
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
If a value is not in the AV list, or if it differs slightly, they would
like to force the modification of the value, without creating a new
authorised value.
Note that this could be a candidate for an option at the attribute
level if there are different needs (ie. for some attributes we don't
want to allow an other value).
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This is not working as it, but we are going to fix the problem when
working on the "Set default values for items added in batch to a train"
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
It does not seem useful to enforce it at lower level, it is not a
condition that will break the feature, but it does not feel correct to
allow the modification of this value
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit contains the main commit message
The description of the original need is described in documents attached by the sponsor on the bug report specifically "[En] Preservation module - Main principles".
The idea is to develop a whole new module to track the status of the documents that are sent for processings/treatments in order to preserve them (eg. covering).
This is a first step, more are certainly coming later.
The author and sponsors have worked for several months before providing this MVP version. The different discussion and needs can be found at https://tree.taiga.io/project/joubu-koha-preservation-module/kanban
Some ideas of the next steps are also listed.
The first iterations have been done using the classic .pl/.tt Koha style but we finally switched to a new Vue module, for more fun.
These patches made the following main changes:
New files
* Koha objects under Koha/Preservation
* REST API controllers under Koha/REST/V1/Preservation
* preservation/home.pl and preservation/home.tt
* Vue components under js/vue/components/Preservation
* tests under t/db_dependent/Koha/Preservation and t/db_dependent/api/v1/preservation_*
* Cypress tests under t/cypress/integration/Preservation
DB:
* 3 new sysprefs PreservationModule, PreservationNotForLoanWaitingListIn, PreservationNotForLoanDefaultTrainIn
* 1 new permission "preservation" (will be split into subpermissions later)
* 5 new tables:
- preservation_processings
- preservation_trains
- preservation_processing_attributes
- preservation_trains_items
- preservation_processing_attributes_items
Terminology and workflow:
*Processings* are the different treatments an item can receive during its stay in the preservation module
A *processing* is defined by a list of *attributes*. To make the module as easy to use for the librarians in charge of the preservation area a list of processings will be defined when the module will be set up. An *attribute* is a name and a value. That's it. However it also has a type, to define what the value is coming from: *free text*, *authorised value* or *database column*.
For instance if you are defining a processing that will handling the book cover you could have 3 *attributes*:
- first named "Barcode" that will be automatically filled with "items.barcode" (type *database column*"
- second attribute named "color" linked with a new PRES_COLOR authorised value category you would have previously defined with "red", "blue", "green", etc. (type *authorised value*)
- third attribute named "notes", because librarians like notes (type *free text*)
Important: Even if the attribute is linked with a DB column or AV category, the value will be automatically pre filled but will stay editable (could be a config option to restrict the edition, later, if needed).
The *status* of an item will change during the preservation process. First it will arrive in the preservation area and be on a *waiting list*. It is not processed already but is not available anymore for the patrons of the library. That's why we are going to use the "not for loan" (items.notforloan) value for this. This *waiting list* is a fictional concept, it simply lists all the items in the library with a specific *status*.
A *train* is... how they call that at the BULAC, a train (same in French!). And we quite like the word so we kept it. It is what it is: a list of items/waggons, one after each other. We could have picked "cart", "list", but the concepts were already used in different places. We are not strongly attached to the term and it can be modified (but it's spread all over the code already and will be tedious to modify!) if you have a very good suggestion :)
So, a *train* is where items are going after they have been sent to the waiting list. It's a stack of items that will be sent to a provider. When you create a new train you will be asked for the "Status for item added to this train", that will be the "not for loan" value to set to the items added to this train, and a "Default processing" that will be the processing used. But keep in mind that a train can have items that have different processings (specific case, will see later).
When all items have been added to a *train*, you can *close* it. You cannot add items anymore to it! Then you can *send* it, and finally *receive* it. They are just statuses to keep track of the dates, and filter trains by status.
However when a train is received you can *copy* an item to another (opened) train. It means that you have the item on hand but something went wrong, you are not happy with the work done by the supplier and want to send it back, so you create a new train (that can have different items, and it is the case where you will have items in a train that don't all have the same processing!).
Test plan:
A. Prerequisites
0. Just `reset_all` and jump to B, or:
1. Apache configuration
You will need to edit /etc/koha/apache-shared-intranet-git.conf and add the following lines after the RewriteRule for erm (line.24?)
RewriteCond %{REQUEST_URI} !^/cgi-bin/koha/preservation/.*.pl$
RewriteRule ^/cgi-bin/koha/preservation/.*$ /cgi-bin/koha/preservation/home.pl [PT]
The RewriteCond is only useful if you are testing the "print slips" bugs as well, but it cannot hurt to have it!
2. `yarn js:build` to regenerate the Vue app for the preservation module
3. `updatedatabase`
4. `restart_all`
B. Settings
0.
Create 2 different values for NOTLOAN, eg. 'In preservation' and 'In preservation external'
Create different authorised values for a new category, eg. PRES_COLORS: RED, BLUE, GREEN. Feel free to create more categories.
1. You can turn on the "PreservationModule" syspref and go to the Koha homepage to see a new "Preservation" link
2. You landed on the empty home page of the preservation, no worry! We need to fill this page with useful information! (see #2 on the kanban)
3. Go to settings
4. Set "Status for item added to waiting list" to "In preservation"
and "Default status for item added to train": "In preservation external"
Create a new processing and define some attributes. Ideally at least one of each type.
5. Go to "Waiting list" and add some items
6. Go to "Trains" and create several trains (at least 2). Notice that the "Status for item added to this train" value is set to the value defined in the settings, but can be modified. Notice that this status can be set when a train is created but it won't be possible to edit later.
7. Add items to a train. You can only add items that are already in the waiting list. Add values for the attributes. Notice that the attributes linked with a database column are automatically pre filled. Notice that attributes linked with an authorised value are displayed with a dropdown list but that a different value can be set (remember, this is a feature!). Notice that attributes can be multivalued.
8. Add other items to the waiting list, notice the "Add last X items to a train" link at the top of the waiting list table, click it
9. You can now add several items to a train, directly (for instance if you don't really need to pass through the waiting list). Values can be set for the batch, but attributes linked with a database column are not editable (they will be prefilled automatically)
10. Once you have a train with several items, look at the "show train" view and notice the item list. If all of them are using the same processing then a table is displayed, one column per attribute. However if at least one item of the train has a different processing then the items are not listed in a table.
11. Edit items and confirm that the values are correctly saved.
12. Close, send and receive a train
13. Once a train is closed you can no longer add items to it
14. Once a train is received notice that you can "copy" an item to another (opened) train
QA notes:
The patch is huge! New enhancements and improvements have been moved to separate bug reports but this cannot be split. We need a ground base to build on top.
The size is mainly coming from Vue components, Koha::Objects, REST API controllers and specs, and tests. Nothing hard ;)
More to come:
- See the kanban!
- Print slips (bug 33547 and bug 34030)
- Put something on the landing page!
- Link with the acquisition module (suppliers, funds, etc.)
Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: BULAC - http://www.bulac.fr/
Signed-off-by: Heather Hernandez <heather_hernandez@nps.gov>
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
1. Apply patches
2. sudo koha-upgrade-schema <instance>
3. Restart services
4. Set TaxRates syspref = 0.15
5. Create a new fund with amount = 1000
6. Add an order to a basket with the following values:
- Fund = Choose the fund from step #5
- Quantity = 1
- Vendor price = 10
- Tax rate = 15%
- Discount = 20%
- Retail price = 10.00
- Replacement cost = 10.00
- Actual cost = 10.00
- Ensure the basket belongs to a vendor with ("List prices" = "Don't include tax" and "Invoice prices" = "Don't include tax")
7. Go to the Acquisitions home page
8. Confirm the 'Ordered' column for the step #5 fund contains 9.20
9. Click on the 9.20 link and confirm the ordered.pl page that loads
also contains 9.20 as the 'Subtotal'
10. Change 'CalculateFundValuesIncludingTax' = 'Exclude'
11. On the Acquisitions home page confirm the 'Ordered' column now
contains 8.00
12. Click on the 8.00 link and confirm the ordered.pl page also contains
8.00 as the 'Subtotal'
13. Close your basket and receive your order - change the 'Actual costs'
= 8.00 (the $10 retail price less the 20% discount, tax exclusive)
14. Go to the Acquisitions home page and confirm the 'Spent' column now
contains 8.00
15. Click on the 8.00 link and confirm the spent.pl page also contains
8.00 as the 'Subtotal'
16. Change 'CalculateFundValuesIncludingTax' = 'Include'
17. Confirm the 'Spent' column on the Acquisitions home page now shows
9.20
18. Click on the 9.20 link and confirm the spent.pl page also contains
9.20 as the 'Subtotal'
Sponsored-by: Waikato Institute of Technology, New Zealand
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Sponsored-by: Waikato Institute of Technology, New Zealand
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
To test:
1. Apply patch
2. Have some values in borrowerRelationship.
3. Go to a patron details page and see both 'Show checkouts to guarantor:' and 'Show charges to guarantor:'
4. Now empty borrowerRelationship.
5. Visit the patron detail page again and you should no longer see either of those fields.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch divides the OPAC and staff options into separate optgroups
and adds Select2 for styling and filtering.
THe patch also corrects a few missed instances of "Intranet" in the list
of location options on the entry form.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffSerialsHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the point of sale page.
NOTE: This patch also removes the now defunct database update introduced
in the first patch of the series.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffPOSHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the point of sale page.
NOTE: All the blocks have been placed at the bottom of the home pages
respectively for consistency. However, in this case it doesn't look as
clean as the content above is a form.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffPatronsHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the patrons home page.
NOTE: This one may highlight an issue with Panels directly followed
by page-sections.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffListsHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the lists home
page.
NOTE: This one may highlight an issue with Panels directly followed by
page-sections.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffCataloguingHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the cataloguing home
page.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new `StaffAuthoritiesHome` block to the HTML
Customisations options. This allows for the addition of a block of
content in a page-section at the bottom of the authorities home
page.
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>