This patch adds the new 'Middle name' field to the patron record.
To test:
1) Apply patches
2) Update database, restart all and clear the browser cache
3) Load a patron in the staff module
4) Confirm you can see and edit the new 'Middle name' field
5) Confirm the new middle name data displays on patron details
6) Confirm the new middle name data displays on patron search results
7) Confirm the new middle name data displays everywhere patron names are
displayed.
8) Confirm the new middle name data displays on the OPAC
9) Confirm the 'Middle name' field appears in the OPAC borrower
modification screens
10) Edit sysprefs `BorrowerMandatoryFields`, `BorrowerUnwantedFields`,
`SelfModificationBorrowerUnwantedField`, `PatronSelfModificationMandatoryField`,
`PatronSelfRegistrationBorrowerMandatoryField` and
`PatronSelfRegistrationBorrowerUnwantedField` to confirm you can make
the new field required or hidden.
11) Verify that DefaultPatronSearchFields contains the new field if you
already had 'firstname' in the field list
12) Enable PatronAutoComplete system preference
13) Type patrons surname into checkout or patron search but don't hit
return
14) Confirm the patrons middle name is displayed in the preview
15) Go to tools > patron lists and attempt to add a patron to a list
16) Patrons middle name should appear in the autocomplete here too
Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
And a few minor fixes when they where causing issues for
translatability.
And rephrased a string about password reset to have it identical to
other strings with the same meaning.
Simplified via wrapping strings with <span> to split to huge
concatenated strings with a lot of %s everywhere.
== Test plan ==
This patch needs mainly proof reading. Still it's possible to do some
basic testing to demonstrate that adding a <span> in an IF doesn't
break anything.
Pick in one of the 110 modified templates a string that you know how to
display. Otherwise:
1. acquisitions => vendor => basket => add to basket =>
search "from existing record" => add order
2. Cancel the order
3. You see without issue "Bibliographic record will not be deleted"
4. administration => Patron categories
5. Try to delete a used and unused category
6. You see as expected
Category XXXX is in use. Deletion not possible!
and
Confirm deletion of category XXXX
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
It appears that in my original submission ( Bug 9021 ),
I hid the SMS provider selector unless the SMS::Send
driver was set to "Email", but only on the OPAC,
not on the staff interface!
Test Plan:
1) Set SMSSendDriver to anything except "Email"
2) Note the SMS Provider pulldown shows in the patron editor
3) Apply this patch
4) Reload the page, SMS Provider id should now be gone
5) Set SMSSendDriver to "Email"
6) Reload the page, SMS Provider should now be shown
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Just modifying the hint provided in patrons' messaging preferences to
allow either + or 00 for international formats.
No test plan needed.
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds to the configuration of the date of birth field in the
patron entry form so that the calendar widget prohibits the selection of
a date in the future.
To test, apply the patch and open a patron record for editing. Try to
select a birth date in the future using the calendar widget. You should
be limited to a selection of today or before.
Confirm that clicking the "Yesterday" and "Today" shortcuts in the
calendar widget works correctly.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
borrower_data does not contain the borrowernumber, it is sent
separately.
Test plan:
1. Edit a patron record (for example: Henry Acevedo).
2. Note that the URL is http://127.0.0.1:8081/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=19
3. Change date of birth to yesterday.
4. Save.
5. Error message displayed above the Save and Cancel buttons:
The following fields are wrong. Please fix them.
- Patron's age is incorrect for their category. Ages allowed are 18-999.
6. Note that the URL is now http://127.0.0.1:8081/cgi-bin/koha/members/memberentry.pl
7. Fix date of birth (for example: change year to 2000).
8. Select Save.
=> Without this patch you get: "Patron not found. Return to search."
=> With this patch applied the patron's data is saved
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>
To test:
1 - Sign in as a superlibrarian
2 - Find a patron account with no password expiration set
3 - View member detials
4 - note expiration says 'Never'
5 - Edit patron
6 - Set patron expiration
7- Save
8 - View details, confirm password expiration shows correctly
9 - Sign in as non-superlibrarian
10 - Confirm you don't see expirationdate on details page
11 - Edit patron and confirm password expiration does not show
12 - Edit HTML and confirm you epxiration date not saved
<input type="text" name="password_expiration_date" value="2052-05-02">
Signed-off-by: Bob Bennhoff <bbennhoff@clicweb.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
To be nicer with translators.
Update the PO files for whichever languages will show how this is
useful.
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Rebased-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch removes the definition of translatable strings out of
templates and into the corresponding JavaScript file, using the new JS
i81n function.
Note: I was unable to trigger the confirmation message in the
check_form_borrowers function. I think the form is now structured in a
way that it is never triggered, thus a candidate for removal.
To test:
- Apply the patch and go to Patrons.
- Add or edit a patron.
- Select a date of birth at least one month in the past and confirm that
the patron's age is displayed in the hint below.
- Test multiple variations to confirm that the singular and plural of
'year' and 'month' display correctly. (e.g. 1 year 9 months, 2 years,
etc).
- Set some patron messaging preferences for the patron.
- Change the patron category.
- You should get a confirmation: "Change messaging preferences to
default for this category?"
TESTING TRANSLATABILITY
- Update a translation, e.g. fr-FR:
> cd misc/translator
> perl translate update fr-FR
- Open the corresponding .po file for JavaScript strings, e.g.
misc/translator/po/fr-FR-messages-js.po
- Locate strings pulled from
koha-tmpl/intranet-tmpl/prog/js/members.js for translation, e.g.:
msgid "%s years"
msgstr ""
- Edit the "msgstr" string however you want (it's just for testing).
- Install the updated translation:
> perl translate install fr-FR
- Switch to your newly translated language in the staff client
and repeat the test plan above. The translated strings should
appear.
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
We will use 'patron-search.inc' in the next patch
Signed-off-by: Séverine Queune <severine.queune@bulac.fr>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
To reproduce (memberentry.pl):
1) Head over to the patron details page, press edit button to open the
memberentry.pl page.
2) The error message should have appeared in your log file about
"File not found : default/js/locale_data.js".
3) Apply the patch.
4) Open the edit page again, ensure that the new error massage like
that didn't appear.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This patch modifies the patron entry form to correct a problem with the
write_age() function introduced by the switch to Flatpickr on this page
(Bug 28937).
Rather than selecting the element based on the sequence of elements on
the page, we should add an ID for direct selection.
To test, apply the patch and go to Patrons.
- Locate a patron record which has a date of birth saved.
- When you open that patron for editing, you should see their age
displayed below the date of birth input field, e.g. "Age: 23 years 9
months."
- Changing the date in the date of birth field should update the age
string correctly.
- Go to Patrons -> New patron.
- The date of birth field should have a hint showing the required date
format, e.g. "(DD.MM.YYYY)".
- When you select a date of birth using the Flatpickr calendar the age
string should be updated correctly.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch modifies templates so that instances of "cardnumber" are
replaced with "card number."
Some instances where the word "card" is used by itself have been updated
to "library card" to add some context.
To test, apply the patch and view the following pages:
- Circulation -> Built-in offline circulation interface -> Submit the
"Check out" form without entering number. Check the alert message
which appears.
- Go to Administration -> System preferences and enable the
AutoMemberNum system preference and use the BorrowerMandatoryField
preference to make card number mandatory.
- Go to Patrons -> New patron. The hint under the "Card number" field
should refer to "card number" instead of "cardnumber."
- Go to Tools -> Import patrons.
- Under the page heading, the note should read "If a card number
exists..."
- Under "Field to use for record matching" you should see a "Card
number" option in the menu.
- If you try to import a CSV with an invalid card number you'll see an
error message, "Card number X is not a valid card number."
- Under Tools -> Upload patron images, check the "image file" radio
button. The card number field label should read "Enter patron card
number."
- Log in to the OPAC as a patron whose card has been marked lost. Try to
place a hold. You should see a message containing "please take your
library card to the circulation desk"
- On the "your summary" page you should see a message, "Your library
card has been marked as lost or stolen."
- Try to check out an item to this patron in the self-checkout system.
You should be shown a message, "This library card has been declared
lost."
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
The guarantor template must be kept hidden, always.
Test plan:
Edit a patron with a guarantor, click the legend of the "patron
guarantor" block and confirm that the template is not shown
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch moves to using a data-start_for attribute to point the 'from'
flatpickr to the 'to' flatpickr.
We also fix the date validation issue in the onClose handler inline.
Test plan.
1. Check that the from/to datpicker combinations work on each of the
changed pages.
2. Look at the console for errors, there should be none
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch replaces the use of jQueryUI's datepicker on circulation and
patron-related pages.
The patch modifies Flatpickr's default configuration (in calendar.inc)
so that it has the following features:
- A Flatpickr input with a "futuredate" class will require that the
selected date be after today.
- The Flatpickr input field will be wrapped in a container to
facilitate better CSS styling.
- Generic handling of paired date fields is enabled using
".flatpickrfrom" and ".flatpickrto" field classes. This mimics the
same feature we have for jQueryUI datepickers using ".datepickerfrom"
and ".datepickerto".
This patch also removes an unused function which was repeated in three
templates: validate1.
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).
- Go to Circulation and check out to a patron.
- Open the Restrictions tab and click "Add manual restriction."
- In the "Expiration" field, test that the Flatpickr widget works
correctly and limits to dates after today.
- Enable the SpecifyDueDate preference if necessary.
- Test the behavior of the SpecifyDueDate controls: Setting a date,
clearing a date, session persistence.
- Enable the SuspendHoldsIntranet system preference if necessary.
- Check out to a patron with existing holds.
- Open the Holds tab and click the "Suspend" button for one of the
holds.
- In the modal window which appears, check that the Flatpickr
widget works correctly and limits to dates after today.
- At the bottom of the table of holds, test that the "Suspend all
holds" Flatpickr works correctly and limits to dates after
today.
- Perform this same test from the patron details page.
- Enable the BatchCheckouts system preference if necessary.
- Open a patron record and click "Batch check out" in the left-hand
sidebar menu.
- Test that the "Hard due date" Flatpickr works correctly as a date
and time picker.
- Go to Circulation -> Overdues.
- Test that the date due filters in the sidebar work correctly and
are linked, e.g. the "to" field cannot be before the "from" field.
- Perform the same test here: Circulation -> Holds to pull; and
here: Circulation -> Hold ratios.
- Enable the HouseboundModule system preference if necessary.
- Check out to or view details of a patron.
- Click "Housebound" in the sidebar menu.
- Save delivery day and frequency settings for that patron.
- Click "Add a new delivery."
- Test that the "Date" Flatpickr widget works correctly.
- Go to Patrons -> A patron record -> Edit.
- Test that Flatpickr widgets work on the following fields:
- Date of birth
- Registration date & Expiration date (linked).
- Patron restrictions -> Add manual restriction -> Expiration.
- View a bibliographic record and start the process of placing a hold.
- After selecting a patron, test the "Hold starts on" and "Hold
expires on" date fields. The fields should be linked and each
should limit to future dates.
- Confirm that the dates are saved correctly when you submit the
hold.
- Locate a bibliographic record with multiple holds and view the holds.
- In the table of holds, test each date field: Date, expiration, and
suspend-until.
- Test that Flatpickr's static "formatDate" method is working
correctly:
- Locate a bibliographic record's item so that there is text in both
the "Public note" and "Non-public note" field.
- Check that item out to a patron.
- After the page reloads the public and non-public notes should be
shown under the checkout title highlighted in red.
- Check for references to a "validate1" function. There should be none.
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Recent Firefox versions try to prefill userid and password with
logged in user credentials.
To test
1 - Log in staff as user foo password bar
2 - Save user and password in Firefox
3 - Log out
4 - Log in again, log in pop-up must be pre-filled
5 - Open Create a new patron form
6 - At least password field is pre-filled with logged in user's credentials
7 - Apply patch
8 - Redo 4 and 5
9 - Userid and password fields aren't prefilled
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
- Display the value in the patron detail page
- Adds support for BorrowerUnwantedField (staff)
- Removes unecessary code in opac/opac-memberentry.pl
Sponsored-by: CCSR ( http://www.ccsr.qc.ca )
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch adds the "Main Contact Method" field in the borrower
modification form.
This field is useful for reporting purposes, or to
know which contact method to use first when trying to contact a borrower.
Test plan:
0) Apply patch
1) updatedatabase.pl
2) In the staff client, edit a patron's contact info. There should be a new dropdown select to choose the main contact method
3) In the opac page, edit the personal details.There should be a new dropdown select to choose the main contact method.
4) Save the form. It should work.
Sponsored-by: CCSR ( http://www.ccsr.qc.ca )
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Swapped the order of the page titles to have the unique information
first, i.e. the name of the specific page displays first, and the name of the website (e.g. Koha) displays at the end.
To test:
1) Apply patch
2) Ensure each of the files in the members folder are swapped around
to display the most unique information first, and the website name is at the end
3) Ensure the pages displayed on the Staff Client that correspond to
these files also display the changes
Sponsored-by: Catalyst IT
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Henry Bolshaw <bolshawh@parliament.uk>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch removes the "size" attribute from <select> tags where the
value of the attribute is 1. The attribute is unnecessary because the
default value when the attribute is undefined is 1.
This will allow for more careful sizing of <select> tags without a size
attribute while preserving the desired behavior of <select> tags which
have a size greater than 1.
The patch modifies 83 files but makes the same minor corrections to
each. I think examining the diff is sufficent, or testing a
representative set of pages:
- Administration -> MARC frameworks -> MARC structure -> Edit tag:
The "Authorized value" select.
- Patrons -> New patron: The "Library" select.
- Reports -> Patrons with no checkouts: The "Into an
application" selects.
If anyone would like help testing any particular template I can
follow-up.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
I think the "breadcrumbs" ID is worth saving for past and future CSS
customization reasons.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Modified breadcrumbs to be accessible, in particular for a
screen-reader.
Made the block of breadcrumbs be a <nav aria label="Breadcrumb"
class="breadcrumb"> with an ordered list inside. The last breadcrumbs
also has aria-current="page" to specify that it is the current page.
To test:
1) Apply patch
2) Build scss file
3) Ensure each of the files in the members folder have breadcrumbs that
are in a <nav aria label="Breadcrumb" class="breadcrumb"> block
4) Ensure that there is an ordered list in the block of breadcrumbs
5) Ensure that the last breadcrumb has aria-current="page"
6) Ensure that the breadcrumbs on each page of the staff client
belonging to these files look the same as before, but the '>' symbol is
replaced with '/' and the last breadcrumb has bold text
7) Ensure that when the last breadcrumb is clicked it takes you to the
page you are currently on
Sponsored-by: Catalyst IT
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Do not show the empty dropdown with no options if borrowerRelationship
is disabled (empty) in the syspref.
To reproduce:
1) Go to system preferences and disable borrowerRelationship.
2) Create a new patron or modify the existing one.
3) Under "Guarantor Information" click on "Search to add" button.
After performing the search, select different patron to act as
guarantor.
4) Observe that there's empty dropdown for the relation type.
5) Apply the patch.
6) Repeat steps above.
7) Observe that dropdown is no longer there.
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
If patrons category is changed during add or edit password
minimum value doesn't change. This patch adds ajax call to
fix this.
To test:
1. Add password minimum length for patron
categories A and B.
2. Create a new patron with category A.
3. Change patrons category to B.
4. Note that password minimum value doesn't change
on hint text.
5. Apply patch.
6. Repeat patron creation, password minimum value
should now change correctly.
Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Hint for password minimum length should use minimum length
set for patron category not "minPasswordLength" value.
To test:
1. Set "minPasswordLength" e.g. 6
2. Set "Patron" category minimum password length e.g. 4
3. Create new a patron.
4. Note that hint after password input field reads "Minimum
password length: 6"
5. Apply patch.
6. Hint should now read "Minimum password length: 4".
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Sally <sally.healey@cheshiresharedservices.gov.uk>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
With AllowStaffToSetCheckoutsVisibilityForGuarantor and
AllowStaffToSetFinesVisibilityForGuarantor set to Allow, one can only see the
controls for these values in the patron record *after* the patron has been saved
with a guarantor. That makes a frustrating 2-step process. We should be able to
set those values regardless of whether or not there is currently a guarantor on
the account.
Test plan:
Create a guarantee and confirm that the 2 options "Show checkouts to
guarantors" and "Show fines to guarantors" are displayed
Select Yes, save
Confirm that the values have been correctly saved
Signed-off-by: Kelly McElligott <kelly@bywatersolutions.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
The "search to add" label on the button for adding guarantors is a bit
hard to translate and is inaccessable. This patch updated the button
label to "Add guarantor" to fix these issues.
To test:
1. Go to patrons
2. Add a new child patron
3. Observe the button with "search to add"
4. Save the patron
5. Edit the patron and observe the "search to add" button.
6. Apply patch.
7. Add a new patron
8. Observe new text on button.
9. Edit a child patron
10. Observe new text on button
11. Sign off
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
The SMS number help text in the OPAC follows a North American phone
number style. It should be more generic. To that end, this patch
makes the OPAC use the same help text for SMS numbers as
the staff interface
To test:
1) Apply the patch
2) Set "SMSSendDriver" to "Anything" in global system preferences
3) Go to the following link and note the help text by SMS number
http://localhost:8081/cgi-bin/koha/members/memberentry.pl?op=modify&destination=circ&borrowernumber=51
4) Go to http://localhost:8080/cgi-bin/koha/opac-messaging.pl
5) Note that the help text in both interfaces uses the same wording
Signed-off-by: Alexis Ripetti <alexis.ripetti@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch adds the capability to override minPasswordLenth and RequireStrongPassword settings by category
To test:
1. koha-shell kohadev
2. koha-mysql kohadev
3. drop database koha_kohadev;
4. create database koha_kohadev;
5. go to admin page and start webinstaller. There continue the steps until onboarding.
6. reach step 3 of onboarding and create a new administrator patron
CHECH => Password control woks as normal (Minimum length 3 and strong required)
7. finish Koha installation and enter admin with your new administrator
8. set minPasswordLength to 3 and RequireStrongPassword to “Don’t require”
9. Create a new category (CAT2 from now on.. CAT1 is the category you made in onboarding process) and set minimum password length to 8 and require strong password
10. Create two new patrons, one with CAT1(patron1) and one with CAT2 (patron2)
CHECK => In both cases, try different combinations of length and strength. For patron1 the only requirement is to have 3 letters, but for patron2 the minimum length will be 8 and will require strong password.
CHECK => Try changing patron category before saving. Password requirements will change with category change.
11. Edit CAT1 and set minimum password length to 5
12. Go to patron1 details page, and change password.
CHECH => Now password minimum length is 5, but still it doesn’t require strong password
13. Edit CAT1, leave blank minimum password length and set require strong password to yes.
14. Go to patron1 details page, and change password.
CHECH => Password minimum length is back to 3, but now strong password is required
15. Set minimum password length in CAT2 to 12.
16. Go to patron2 details page, and click to fill a random generated password
CHECK => generated password should be 12 characters length
17. Set PatronSelfRegistration to Allow in admin settings
18. Go to OPAC and fill self registration from.
CHECK => Play with patron category. For each change in category, password requirements are modified.
CHECK => Set CAT1 as patron category, set ‘aA1’ as password (or another valid password for CAT1) and before hitting submit button, change to CAT2. Form should enter invalid state, and CAT2 password requirements should be displayed as error in password input.
19. Create a patron for CAT1 and another for CAT2, leaving password blank
CHECK => For CAT1’s patron, generated password length is 8 (minimum length for generated passwords), but for CAT2’s patron should be 12
20. In admin set PatronSelfRegistrationVerifyByEmail to require
21. Fill self registration form again with CAT2 as category
CHECK => Password requirements works as previous case.
22. Leave password blank and click submit
23. select * from message_queue;
24. Copy the link in the message and paste it in OPAC
CHECH => Generated password is 12 characters long. (Copy user id for next steps)
25. In admin set OpacResetPassword to Allow
26. Go back to OPAC, reload and click on “Forgot password?” link
27. Paste user id and click submit
28. Repeat steps 23 and 24
CHECK => Info message says “Your password must contain at least 12 characters, including UPPERCASE, lowercase and numbers.”
CHECK => enter an invalid password and you’ll get the same message in warning.
29. Login OPAC with the last user and your newly created password
30. Go to “Change your password” option
CHECK => Info message says “Your password must contain at least 12 characters, including UPPERCASE, lowercase and numbers.”
CHECK => enter an invalid password and you’ll get the same message in below “New password” input.
31. prove t/db_dependent/AuthUtils.t t/db_dependent/Koha/Patron/Category.t
32. Sign off
Sponsored-by: Northeast Kansas Library - NEKLS
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patchset prevents a non-superlibrarian user from editing a
superlibrarians email address via memberentry. This is to prevent a
privilege escalation vulnerability whereby a user could update a
superlibrarians contact details to match their own and then request a
password reset via the OPAC.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Additional capitalization, punctuation, terminolgy and improvements to
text for system preferences:
- Punctuation (such as full stops at the end of sentences)
- Capitalization
- Terminology (staff interface, use of "Don't" instead of "Do not")
- Rearranged/rephrased for better readability
To test:
- Verify that the changes listed are consistent and make sense.
- Check that on the staff interface home page that the window title says
"Koha staff interface".
- Verify that in system preferences the name of the tab for Staff
interface displays correctly, and that clicking on it brings up the
staff interface preferences.
- For Patrons > CollapseFieldsPatronAddForm check that the edit and add
patron form works correctly (edit a patron, add a new patron, check that
labels display correctly).
Staff interface home page
-------------------------
- Change the page title in browser from "Koha staff client" to "Koha
staff interface".
Administration
--------------
Google OpenID Connect:
. GoogleOpenIDConnectAutoRegister: change "Don't Allow" to "Don't allow"
and change "users" to "patrons".
. GoogleOpenIDConnectDefaultBranch: move the input field to the end of
the sentence.
. GoogleOpenIDConnectDefaultCategory: move the input field to the end of
the sentence.
. GoogleOpenIDConnectDomain: reword to "Restrict Google OpenID Connect
to domain (or subdomain of this domain): ____. Leave blank for all
Google domains.".
Interface options:
. SendAllEmailsTo: add a full stop.
Share anonymous usage statistics:
. UsageStatsLibrariesInfo: change "Do not share" to "Don't share"; add a
full stop; for note "Don't share" should be "No".
. most preferences: for note "Don't share" should be "No" (don't share)
(for preferences UsageStatsCountry, UsageStatsGeolocation,
UsageStatsLibrariesInfo, UsageStatsLibraryName, UsageStatsLibraryType,
and UsageStatsLibraryUrl), various edits to make more readable and
consistent.
Authorities
-----------
General
. AuthorityControlledIndicators: change "biblio field" to "bibliographic
field".
. AutoCreateAuthorities: change "do not generate" to "don't generate".
Linker:
. CatalogModuleRelink: change "Do not" to "Don't".
. LinkerKeepStale: change "Do not" to "Don't".
. LinkerModule: change "Default" to "default".
. LinkerOptions: add a full stop.
. LinkerRelink: change "Do not" to "Don't".
Cataloguing
-----------
Display:
. MergeReportFields: change "example:" to "Example:"
Exporting:
. BibtexExportAdditionalFields and RisExportAdditionalFields: change
"Include following" to "Include the following"; add ":" at end of
sentence, change "specificy" to "specify", and add full stops at end of
complete sentences.
Interface:
. EnableAdvancedCatalogingEditor: format NOTE in bold.
Record structure:
. AlternateHoldingsField: change "(This" to "(this", change "; for
instance" to ", for example", remove full stop.
, MarcFieldForCreatorId: format NOTE in bold.
. SubfieldsToAllowForRestrictedBatchmod: change "pref" to "system
preference".
Circulation
-----------
Batch checkout:
. BatchCheckoutsValidCategories: add a full stop.
Checkin policy:
. CalculateFinesOnReturn: only bold "NOTE", not the whole sentence (x2).
. StoreLastBorrower: change "opacreadinghistory/AnonymousPatron" to "the
opacreadinghistory and AnonymousPatron".
. UpdateItemLocationOnCheckin: change note "for these locations only can
location and permanent_location differ," to "for these locations the
location and permanent_location can differ,"
. UpdateNotForLoanStatusOnCheckin: change "E.g.," to "For example,"
Checkout policy:
. AgeRestrictionMarker: change "E.g.," to ". For example,"
. AllFinesNeedOverride: change "system preference noissuescharge" to
"the noissuescharge system preference".
. AllowFineOverride: add "the" before "noissuescharge".
. AllowRenewalLimitOverride: change "with respect to" to "for".
. AutoRemoveOverduesRestrictions: change "Do not" to "Don't".
. DefaultLongOverdueChargeValue: change "user" to "patron".
. ItemsDeniedRenewal: change . "e.g.," to "For example:", format the
note the same as other notes with NOTE in bold.
. OnSiteCheckoutsForce: change "on-site" to "on-site checkout", "(Even"
to "(even", and "user" to "patron".
. RentalFeesCheckoutConfirmation: change "do not ask" to "don't ask".
. RestrictionBlockRenewing: change "If patron" to "If a patron", change
"Allow" and "Block" to "allow" and "block".
. UseTransportCostMatrix: "Transport" to "the transport".
Interface:
. AllowOfflineCirculation: change "Do not enable" to "Don't enable".
. ExportRemoveFields: add a full stop.
. ShowAllCheckins: change "Do not show" to "Don't show".
. UpdateTotalIssuesOnCirc: change "Do not" to "Don't".
Interlibrary loans:
. CirculateILL: add a full stop.
. ILLCheckAvailability: add a full stop.
Self check-in module (sci-main.pl):
. SelfCheckInModule: change "module. (available" to "module (available",
add a full stop.
Self check-out module (sco-main.pl):
. AutoSelfCheckAllowed: change "automatically login" to "automatically
log in".
. WebBasedSelfCheck: change "system. (available" to "system (available",
add a full stop.
Enhanced content
----------------
Novelist Select:
. NovelistSelectStaffView: change "staff" to "staff interface".
Babelthèque:
. Babeltheque_url_js: rewitten
. from "______ Defined the URL for the Babeltheque javascript file
(eg. http://www.babeltheque.com/bw_XX.js)"
. to "Use this URL for the Babelthèque javascript file: ________
(e.g. http://www.babeltheque.com/bw_XX.js)."
. Babeltheque_url_update: rewritten
. from "______ Defined the URL for the Babeltheque update
periodically (eq. http://www.babeltheque.com/.../file.csv.bz2)."
. to "Use this URL for the Babelthèque periodic update: _______ (e.g.
http://www.babeltheque.com/.../file.csv.bz2)."
I18N/L10N
---------
. dateformat and TimeFormat: Change "Note" to "NOTE" to be consistent
with other notes, change <b> tag to <strong> as it is more semantically
correct.
Logs
----
Debugging:
. DumpTemplateVarsIntranet: change "variable" to "variables" and "staff
intranet" to "staff interface".
. DumpTemplateVarsOpac: change "variable" to "variables".
Logging:
. AuthFailureLog: add full stop.
. AuthSuccessLog: add full stop.
OPAC
----
Appearance:
. BiblioDefaultView: change "bib" to "bibliographic".
. HighlightOwnItemsOnOPAC: change ". (Non-XSLT Only)" to " (non-XSLT
only).".
. OpacAdditionalStylesheet: change "specified" to "specific".
. OPACDisplay856uAsImage: change all options in the drop down list so
they start in lowercase.
. OpacHighlightedWords: change ";" to a full stop, add a full stop at
the end.
. OPACHoldingsDefaultSortField: add a full stop.
. OpacMaxItemsToDisplay: change "user" to "patron".
. OPACMySummaryHTML: change "user" to "patron".
. OpacSeparateHoldings: change "user's to "patron's".
. OpacStarRatings: change "user" to "patron" for the drop down option.
. OPACShowUnusedAuthorities: change "Do not show" to "Don't show".
. OPACUserSummary: change "user's to "patron's", change "fines" to
"charges".
. OPACXSLT*: change "Leave" to "leave".
. Remove empty row at bottom of appearance options.
Features:
. OpacBrowser: change "OPAC" to "the OPAC".
. OpacBrowseSearch: reword as "[Enable/Disable] interface for browsing
all holdings (Elasticsearch only)."
. OpacCloud: change "OPAC" to "the OPAC".
. OPACDetailQRCode: change "Don't enable" to "Disable".
. OPACFinesTab: change "Fines" to "charges", change "the My Accouunt" to
"their account". (Should now show as "..patrons to access the charges
tab on their account page on the OPAC."
. OpacHoldNotes: change "Do not allow" to "Don't allow", change "users"
to "patrons".
. OpacResetPassword: change "users" to "patrons", add full stop.
. SocialNetworks: change "in opac" to "on the OPAC".
Note: Also deleted lines with # in front of them for the OpacBrowser and
OpacCloud system preferences in the Policy section - these look like
duplicated entries to me (previously lines 600-611).
Policy:
. OPACFineNoRenewalsIncludeCredits: change "users" to "patrons".
Self registration and modification:
. PatronSelfRegistrationConfirmEmail: change "Do not require" to "Don't
require", change "users" to "patrons".
. PatronSelfRegistrationEmailMustBeUnique: change "Do not consider" to
"Don't consider".
. PatronSelfRegistrationPrefillForm: change "Do not display and prefill"
to "Don't display and prefill".
Patrons
-------
General:
. AllowPatronToControlAutorenewal: add full stop.
Notices and notifications:
. EnhancedMessagingPreferences: change "Staff" to "staff".
- FallbackToSMSIfNoEmail: change "Send" to "sending".
Patron forms:
. BorrowerUnwantedField: add full stop.
. CollapseFieldsPatronAddForm:
. Dropdown list changes:
.. "Organization/Patron identity" => "Patron identity".
.. "OPAC/Staff login" to "OPAC/Staff interface login".
. Requires changes to the memberentrygen.tt - check that the add and
edit form for a patron dispaly correctly:
.. change "Contact" to "Contact information".
.. change "Library set-up" to "Library setup".
.. change "OPAC/Staff login" to "OPAC/Staff interface login".
Patron relationships:
. PrefillGuaranteeField: change drop down list option "Main address -
street number" to "Main address - Street number" to match with format of
other entries.
Security:
. RequireStrongPassword: change "More" to "more".
Searching
---------
Search form:
. AdvancedSearchTypes: change "staff-side" to "staff interface".
. expandedSearchOption: change "staff" to "staff interface".
Serials
-------
. makePreviousSerialAvailable: change "Do not make" to Don't make";
"syspref" to "system preference".
. PreserveSerialNotes: change "Do not" to "Don't".
. RoutingListNote: change "Include following" to "Include the following"
Staff interface
---------------
Tab label and link:
. This tab was previously labelled "Staff client".
. Change tab label on the left hand side from "Staff client" to "Staff
interface".
. Change URL when selected from "preferences.pl?tab=staff_client" to
"preferences.pl?tab=staff_interface".
. Check that the link works as expected.
Appearance:
. IntranetFavicon: change "Staff" to "staff".
Tools
-----
Reports:
. NumSavedReports: change "Saved reports page" to "saved reports page".
Web services
------------
IdRef:
. IdRef: change "allows to request" to "allows requests for".
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
As this has been a little controversial, this patch undoes
the change to "None specified / Prefer not to say" to be
"None specified" again as before this patch set.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch adds "Other" as an option, and also changes the wording of
"None specified" slightly.
To test:
1) Apply the patch
2) Check that there is an "Other" radio button in the patron record, and
that the wording of "None specified" has changed to "None specified /
Prefer not to say".
3) Check that you can save changes to the gender of this patron record,
both on create and modify.
4) Check that these changes also work in the Opac Self-Registration
functionality.
Correct typos in previous commit
Signed-off-by: Devinim <kohadevinim@devinim.com.tr>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch reverses what I think was an unintended change made by Bug
14570 in which the non-patron guarantor fields are shown for all patron
types (not just child patrons) and grouped with the patron contact fields.
This patch creates a new "Non-patron guarantor" fieldset to show along
with "Patron guarantor" when adding or editing child patrons.
To test, apply the patch check that the BorrowerUnwantedField system
preference does not contain contactname, contactfirstname,
or relationship.
- Open an adult patron for editing. You should see no guarantor-related
fields.
- Open a child patron for editing. There should be two guarantor
sections: "Patron guarantor" and "Non-patron guarantor."
- Test that adding patron guarantors and non-patron guarantors works
correctly.
- Add "contactname|contactfirstname|relationship" to the
BorrowerUnwantedField system preference.
- Reload the child patron entry form. The non-patron guarantor
section should now be hidden.
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Christopher Brannon <cbrannon@cdalibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch updates another section of guarantor markup which should have
been updated with the others.
To test, apply the patch and locate an adult patron.
- Click "Add guarantee"
- Confirm that the part of the form for adding a guarantee looks
correct.
- Confirm that the new patron information is saved correctly.
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This patch makes some changes to the patron entry template to improve
the display of guarantor information.
To test, apply the patch and locate a patron with a "Child" type
category.
- Edit the patron's record
- Under "Guarantor information," click the "Search to add" button.
- Search for and select a patron.
- The guarantor information should be added to the patron edit
form. The information should be correct and well formatted.
- Click the "Remove" link. The guarantor information should be
removed.
- Search for an select a guarantor again and save the record.
- Edit the patron record again. The saved guarantor information should
look correct.
Looks great!
Signed-off-by: Caroline Cyr La Rose <caroline.cyr-la-rose@inlibro.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Note: I am not confident with this patch, I think it's not polished. I
will not have time to improve it to make it ready for 19.05.00
1. Conflict with bug 20443 (which would have make this change way much
easier!)
2. It does not work :) You will be able to submit the memberentry form
even if the patron attribute is marked as mandatory (??)
3. What about the OPAC?
4. What about repeatable fields? We certainly will need JS code here
5. What about the "Quick add" feature? (I had trouble in the past to not
introduce regression when we played with this template...)
Do not forget to run updatedatabase.pl and regenerate DBIC schema if you
want to play with this patchset.
Signed-off-by: David Nind <david@davidnind.com>
Bug 22844: (follow-up) Make the attribute mandatory when editing a patron
Previous patch forgot the most important, adding the required attribute
to the select/textarea
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
When a user creates a patron's guarantor on /cgi-bin/koha/members/memberentry.pl but doesn't select the relationship from a dropdown, the relationship defaults to first value, which in default sysprefs is "father". This may or may not be correct as this is not a conscious choice from the user.
The solution is to make the "Relationship" field mandatory when there is no empty entry in the system preferences, always starting with an empty option but not allowing the user to save an empty entry.
And if there is an empty option in sysprefs, it allows to save empty, as well as makes it default choice.
To reproduce with default system preferences:
1) Create a new patron who is assumed to have a guarantor or modify the existing one.
2) Under "Guarantor Information" click on "Search to add" button. After performing the search, select a user to act as guarantor. Don't use the dropdown menu to select a relationship. Save your changes.
3) Observe that relationship is set as "father".
4) Apply the patch.
5) Repeat steps 1 and 2.
6) Observe that it doesn't allow you to save the form until you pick a relationship type.
To reproduce with empty entry added to system preferences:
1) Add an empty entry to borrowerRelationship at /cgi-bin/koha/admin/preferences.pl?tab=patrons in Patron relationships section (example: "|father|mother").
2) Create a new patron who is assumed to have a guarantor or modify the existing one.
3) Under "Guarantor Information" click on "Search to add" button. After performing the search, select a user to act as guarantor. Don't use the dropdown menu to select a relationship. Save your changes.
4) Observe that relationship is set as "father".
5) Apply the patch.
6) Repeat steps 1, 2 and 3.
7) Observe when you save the empty entry it does set the relationship as empty.
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
There are 5 includes files per value of AddressFormat (us, de, fr).
The code is duplicated for each language, the only thing that changes is the order.
Wwith this patchset we are going to refactore them to avoid further regressions.
The idea is to remove all code that is duplicated and remove the need of
having 5*3 files. We are going to limit them to 5 files, 1 per use.
Note that we could go even further, for instance
member-display-alt-address-style and member-display-address-style are
quite identical.
Test plan (for the whole patchset):
- Create a patron with all the address, contact and alternate info filled
- Edit them and save
- Look at the patron's info (top left) in the patron module, and the
patron detail view.
- Play with the different values of AddressFormat
The order and the info must be displayed identically before and after
this patchset. No change is expected.
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Same as the precedent patch for patron's modification
Test plan is identical but with an existing patron
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This is still not ideal but brings a bit of enhancement.
One possible problem is that the patron creation will fail if the
streetnumber field is too long (borrowers.streetnumber is varchar(10).
Test plan:
0. Don't apply this patch
1. Create a new patron with a streetnumber longer than 10 characters
2. Save
=> The patron has not been created and the app explodes
The error is about extended_attributes and not meaningful
Can't call method "extended_attributes" on an undefined value at /kohadevbox/koha/members/memberentry.pl line 560
3. Apply the patch
4. Repeat 1. and 2
=> You get a warning on the interface and you still see the creation
form
5. Check the logs
=> The error is meaningful
"Data too long for column 'streetnumber'"
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
When using sort1/sort2 with authorised values to create a pull down
list, there will be no empty entry unless one is manually added to
the authorised values list.
This is not a good default behaviour, as it can easily
cause errors on patron creation. Without the empty entry, the first
alphabetic value is pre-selected and will be saved if not explicitly
changed. It also doesn't allow to mark sort1/sort2 as mandatory,
as the value is always 'set', the required message won't be triggered.
This adds an empty parameter to av-build-dropbox.inc to allow selectively
adding this empty entry without causing side-effects in other places
this include is used.
To test:
- Create authorised values for either Bsort1 or Bsort2 authorised
value category
- Create a new patron:
- you should see a pull down list on one and an input field for the other
- for the pull down list, there will be no empty entry and the first
alphabetic value will be preselected
- Make your sort1 and sort2 mandatory using BorrowerMandatoryField
- Verify there is still on empty entry
- Apply patch
- Repeat tests and verify that the behaviour is as expected
- There should now be an empty entry
- When the field is marked mandatory and empty is left, the required
warning will be shown.
Signed-off-by: David Roberts <david@koha-ptfs.co.uk>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>