If you have a patron attribute type which is limited to a particular patron category the entry field will not appear on the patron entry form. The entry field for patron attribute types which have been limited by patron category are conditionally displayed based on the patron category. An error in the page's markup results in the patron category getting misreported, thus the JavaScript which shows and hides the entry fields incorrectly hides them.
Created attachment 31845 [details] [review] Bug 12981 - Patron attribute type limit by patron category not working on patron entry form To reproduce this bug: - Create a patron attribute type and limit it by patron category - Create a new patron with that category - Observe that there is no entry field for the patron attribute type you created for that patron category. Inspecting the source should show that the entry field has been hidden. The patron entry form tries to hide patron attribute type input fields based on the currently selected patron category. It does this based on the value of $("categorycode"). However, instead of pulling the data from the categorycode input in the body of the entry form, it pulls it from the patron search box at the top of the page. The value of that input is always empty because no category is preselected. This patch corrects the problem by changing the ID of the categorycode <select> in the body of the entry form and making corresponding changes to the JavaScript which depends on it. To test, apply the patch and load the patron entry form for a patron category to which a patron attribute type has been limited. That patron attribute entry field should appear correctly. Choose a different patron category from the "Category" dropdown. Confirm that the patron attribute entry field has been hidden.
I confirmed the behavior The patch works as described. Does it matter that I can change the category in order to make the attribute show, fill it in, change it again and hide the field, but still have the information save? It reuires a pretty deliberate staff action but you end up with an attribute showing that you can't edit
Created attachment 32345 [details] [review] Bug 12981 - Patron attribute type limit by patron category not working on patron entry form To reproduce this bug: - Create a patron attribute type and limit it by patron category - Create a new patron with that category - Observe that there is no entry field for the patron attribute type you created for that patron category. Inspecting the source should show that the entry field has been hidden. The patron entry form tries to hide patron attribute type input fields based on the currently selected patron category. It does this based on the value of $("categorycode"). However, instead of pulling the data from the categorycode input in the body of the entry form, it pulls it from the patron search box at the top of the page. The value of that input is always empty because no category is preselected. This patch corrects the problem by changing the ID of the categorycode <select> in the body of the entry form and making corresponding changes to the JavaScript which depends on it. To test, apply the patch and load the patron entry form for a patron category to which a patron attribute type has been limited. That patron attribute entry field should appear correctly. Choose a different patron category from the "Category" dropdown. Confirm that the patron attribute entry field has been hidden. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Created attachment 32503 [details] [review] [PASSED QA] Bug 12981 - Patron attribute type limit by patron category not working on patron entry form To reproduce this bug: - Create a patron attribute type and limit it by patron category - Create a new patron with that category - Observe that there is no entry field for the patron attribute type you created for that patron category. Inspecting the source should show that the entry field has been hidden. The patron entry form tries to hide patron attribute type input fields based on the currently selected patron category. It does this based on the value of $("categorycode"). However, instead of pulling the data from the categorycode input in the body of the entry form, it pulls it from the patron search box at the top of the page. The value of that input is always empty because no category is preselected. This patch corrects the problem by changing the ID of the categorycode <select> in the body of the entry form and making corresponding changes to the JavaScript which depends on it. To test, apply the patch and load the patron entry form for a patron category to which a patron attribute type has been limited. That patron attribute entry field should appear correctly. Choose a different patron category from the "Category" dropdown. Confirm that the patron attribute entry field has been hidden. Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Patch pushed to master. Thanks Owen!